Clazz, or whatever, should provide MetaClass facilities. That is, it should be for creating, manipulating, etc Class instances. And, in java, an instance of java.lang.Class is a class. So j.l.Class is a type of MetaClass.
But that shouldn't open the door for naming everything else Meta. A property that applies to an instance of Clazz isn't a meta property, it's a class property. These are frequently called attributes, to distinguish them from properties, which apply to, and vary with, instances. If we use Attribute as the name of class properties, we need something to use for Property, in order not to conflict with ... nothing. There isn't a class j.l.Property. So Property is a decent name for describing object, as opposed to class, properties. Field, on the other hand, usually means an actual slot in the object. A field is never implemented virtually, the way a property might be. So Complex might have fields real and imaginary, but properties real, imaginary, radius and theta. [With radius and theta being read only. Don't make properties have side-effects] "Instance", which allows introspection and description of a particular object, tightening the interface of it's properties, is another metaclass. It describes a class of objects, of which the instance at hand is a member. It tightens the description of the properties to exact class of the instance's property. I'd be very wary of trying to work with methods at this level, since the only way to work with it would be to call it, which is likely to be disasterous, unless you have some knowledge the the method is idempotent. Like a getter. By this argument, Operation is only at the class level. This conflicts with the deprecated java.rmi.server.Operation, but that shouldn't bother anyone. So my list is Class side Clazz - describes and models Classes Attribute - class level properties. e.g. this class requires an ObjectPool. I think Berin's examples have shown a couple different styles. Some attach to the class as a whole, while some attach to Operation. Property - model of instance data, which might be indirected through methods and have no real backing Operation - model of the methods of a class. What's the signature, build a proxy for it, etc. Instance - this might be a Clazz? It's the detailed, narrowed, introspection of an instance. Delegate - a bound method reference - ties an Operation to an object. Take Avalon's implementation. On Tuesday 29 October 2002 09:58 am, [EMAIL PROTECTED] wrote: > > from: Victor Volle <[EMAIL PROTECTED]> > > Do we need Clazz at all? > > What is the difference between Clazz (Bean) and MetaClass? > > What is Clazz (Bean) responsible for? > > In the JDK the parallel is Class vs Object. In [beanutils] the parallel is > DynaClass vs DynaBean. Its the instantiated object. Thus Class or Clazz is > a bad name for it. Object, Instance or Bean are better names. > > > Summary: > > ============================ > > MetaClass, MetaField, MetaOperation > > ??? Field, Operation > > Attribute > > ============================ > > Problem with Field is that it is the same as reflection. I really want to > avoid that as it will make the API much more complex to use (needing to > qualify class names) > > Stephen -- To unsubscribe, e-mail: <mailto:commons-dev-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>