Stephen, good idea to have something concrete.
> I have checked into the [clazz] sandbox some classes. They represent the > basic ideas of where I was headed. > > They include a meta model > MetaBean > MetaProperty > MetaOperation > all extending MetaUnit 1. I do not like the name MetaBean, I would prefer Clazz or MetaClass, because "Bean" implies that I have to have getters and setters. I know that this is an important use case, but sometimes I am only interested in the operations (interfaces etc.). I do not like the name MetaProperty for the same reason. I would prefer Field (Berin) or Attribute (UML). The following is a list of differences to the model I have in mind (already implemented for some stuff i am working on): 2. In the method MetaBean#getMetaPropertyMap you return the map of properties, I am always afraid giving a way internal collections, because a client can modify them directly. I always prefer having adders and removers for elements, so the class (MetaBean) can keep track of its elements and do some bookkeeping. Or do you intend to always create a copy? 3. I still would like to be able to differentiaite between properties/operations declared in/for the current MetaBean and properties/operations declared in super classes and interfaces. 4. What about inner classes? 5. What about modifiers for MetaBean like abstract and static? 6. Can a MetaBean represent an interface? How do I differentiate? isInterface()? 7. What about having a getName() operation in MetaUnit? (why "unit"? what about MetaModelElement? "unit" sounds wrong for me, but I can not explain why). In MetaBean this could return Package+ShortClassName 8. MetaOperation: modifiers? 9. Should it be possible to differentiate between "normal" operations and constructors? Then something like isConstructor() would be helpful. Victor -- To unsubscribe, e-mail: <mailto:commons-dev-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>