The commons-relabean (relational bean) framework

The relational bean framework is an extension of java bean framework to distinguish the properties of the bean as primitive properties or non-primitive properties ("relation"). That way it added another dimension which make the bean framework become "relational" (e.g. like as in entity-relation database design). It is useful for representation of relational model and providing mechanism for model discovery like java bean.

RelationalBeanModel

Since a relation exists only between two beans, it is not possible to talk about a relation without involving more than one bean. Thus a relation bean model contains a complete description of properties and relations of a set of interrelated beans. The RelationalBeanModel contains a set of beans that forms a the relational bean model and provides some function to navigate the model.

RelationalBeanModelDescriptor

The descriptor describe some meta information about the relational bean model for example, the name of the model and what is considered as primitive class and what is a relational bean class. It also provide information for the introspection mechanism for example the stop class for a particular class

RelationBeanModelIntrospector

The introspector provide a mechanism for introspecting the relational bean model given the RelationBeanModelDescriptor

RelationBeanInfo

The relational bean info contains description of (primitive) properties and relations of a bean class.

PropertyDescriptor

The property descriptor in relational bean framework extends from Sun's java bean PropertyDescriptor. It has the property type, and read or write method.

RelationDescriptor

The relation descriptor describe a relation of a bean. The type of relation could be either singular or composite (e.g. the relation type is a collection class). In both case, the relation has the type, read and write method. For composite relation, the relation can optionally have the memberType (which specific the type of object in the collection) and the add and remove method.

Usage