org.objectweb.jorm.metainfo.api
Interface Class

All Superinterfaces:
MetaObject, java.io.Serializable
All Known Implementing Classes:
BasicClass

public interface Class
extends MetaObject

A Class interface defines methods to describe a Class meta object. A Class is composed by a set of fields (primitive, reference class or reference generic class), a set of inherited classes, a mapping class, can be abstract or not and has a name.

Author:
X. Spengler

Method Summary
 void addAllInheritedClass(java.util.Map table)
          Constructs an Hashtable with inherited class
 void addInheritedClass(Class class_)
          Adds a new inherited class to the list of the inherited classes for the current class object.
 ClassMapping createClassMapping(java.lang.String mapperName, java.lang.String mappingName)
          Creates a new ClassMapping object for the current class.
 ClassRef createClassRef(java.lang.String fieldName, Class class_)
          Allows to obtain a new ClassRef from a field name an its class.
 GenClassRef createGenClassRef(java.lang.String fieldName, java.lang.String genName)
          Allows to obtain a new GenClassRef from a field name an its generic class.
 ScalarField createHiddenField(java.lang.String fieldName, PType type)
          Creates an hiddenfield for the current Class object.
 NameDef createNameDef()
          Creates a new NameDef object for the current Class object.
 PrimitiveElement createPrimitiveElement(java.lang.String fieldName, PType type)
          Allows to obtain a new PrimitiveElement from a class field name an its type.
 ClassMapping getClassMapping(java.lang.String mapperName, java.lang.String mappingName)
          Returns an existing ClassMapping object for the current class object.
 int getFieldRefNumber()
          Returns the number of fields which are references to classes.
 java.lang.String getFQName()
           
 ScalarField getHiddenField(java.lang.String fieldName)
          Retrieve the hiddenfield identified by its name in the current class.
 int getInheritedClassNumber()
          Returns the number of inherited classes for the current Class object.
 java.lang.String getName()
          Allows to know the name of the current class object.
 NameDef getNameDef(java.lang.String mappingName)
          Returns a NameDef object from a given mapperName and mappingName.
 TypedElement getTypedElement(java.lang.String fieldName)
          Allows to obtain an existing Field.
 boolean isAbstract()
          Allows to know if the current class is an abstract class or not.
 boolean isInherited()
          Tests if this class is inherited by another one.
 java.util.Iterator iterateAllField()
          Returns an iterator on existing class fields + fields from super classes.
 java.util.Iterator iterateAllHiddenField()
          Provides an iterator over the all the hiddenfield of the class including inherited fields.
 java.util.Iterator iterateClassMapping()
          Allows to know all the ClassMapping object used for the current class.
 java.util.Iterator iterateField()
          Returns an iterator on existing class fields.
 java.util.Iterator iterateHiddenField()
          Provides an iterator over the all the hiddenfield of the class excluding inherited fields.
 java.util.Iterator iterateInheritedClass()
          Allows to obtain all the inherited classes from the current class object.
 java.util.Iterator iterateNameDef()
          Returns an iterator on existing NameDef for the current Class.
 void setInherited()
          Specifies that this class is inherited by another one within the set of compiled ones.
 
Methods inherited from interface org.objectweb.jorm.metainfo.api.MetaObject
getParent, setParent
 

Method Detail

isAbstract

public boolean isAbstract()
Allows to know if the current class is an abstract class or not.
Returns:
true, if the current class is an abstract class, and false, if the current class is not abstract

getName

public java.lang.String getName()
Allows to know the name of the current class object.
Returns:
the string representation of the class name

getFQName

public java.lang.String getFQName()

getTypedElement

public TypedElement getTypedElement(java.lang.String fieldName)
Allows to obtain an existing Field. A TypedElement is a class field, and this method finds a field with its name (fieldName). This method is a generic method to return a TypedElement object.
Parameters:
fieldName - the name of the class field
Returns:
a field object. If the field does not exist, null is returned.

createNameDef

public NameDef createNameDef()
Creates a new NameDef object for the current Class object. Here we can define if the namedef is defined outside jorm or not. In the case where the namedef is already defined for the current class, the old one is used and returned.
Parameters:
nameDefName - the name of the nameDef read in the persistence description file
isSystem - true, the namedef is defined outside jorm, and false, the namedef is define inside jorm
Returns:
a new object used to describe the PName projection for the current Class

createHiddenField

public ScalarField createHiddenField(java.lang.String fieldName,
                                     PType type)
Creates an hiddenfield for the current Class object. An hidden field is used to map the pname of the class or the pname of a ref field. An hidden field is a scalarfield.
Parameters:
fieldname - the name of the hiddenfield
type - the ptype of the hiddenfield
Returns:
a new scalarfield object used to describe the hiddenfield

iterateAllHiddenField

public java.util.Iterator iterateAllHiddenField()
Provides an iterator over the all the hiddenfield of the class including inherited fields.
Returns:
the iterator embeding scalarfield object describing the hiddenfields.

iterateHiddenField

public java.util.Iterator iterateHiddenField()
Provides an iterator over the all the hiddenfield of the class excluding inherited fields.
Returns:
the iterator embeding scalarfield object describing the hiddenfields.

getHiddenField

public ScalarField getHiddenField(java.lang.String fieldName)
Retrieve the hiddenfield identified by its name in the current class.
Parameters:
fieldname - the name of the hiddenfield.
Returns:
the scalarfield object describing the hiddenfield or null if the field does not exist in the class.

iterateNameDef

public java.util.Iterator iterateNameDef()
Returns an iterator on existing NameDef for the current Class. This method returns an empty iterator if no namedef exists in this Class.
Returns:
an iterator on NameDef, or an empty iterator if no namedef is defined

getNameDef

public NameDef getNameDef(java.lang.String mappingName)
Returns a NameDef object from a given mapperName and mappingName. If the namedef does not exist, null is returned.
Parameters:
mappingName - the name of the mapping
Returns:
an existing namedef object if exists, either null

createPrimitiveElement

public PrimitiveElement createPrimitiveElement(java.lang.String fieldName,
                                               PType type)
Allows to obtain a new PrimitiveElement from a class field name an its type. A PrimitiveElement is a Class field. If the class field already exists, it is returned.
Parameters:
fieldName - the name of the primitive field
type - the PType of the primitive field
Returns:
a new PrimitiveElement object, or the existing one if already defined

createClassRef

public ClassRef createClassRef(java.lang.String fieldName,
                               Class class_)
Allows to obtain a new ClassRef from a field name an its class. A ClassRef object is a field which is represented by a reference to a Class. If the field already exists, it is returned.
Parameters:
fieldName - the name of the field
className - the string representation of the class which represents the reference of the field
Returns:
a new ClassRef object, or the existing one if already defined

createGenClassRef

public GenClassRef createGenClassRef(java.lang.String fieldName,
                                     java.lang.String genName)
Allows to obtain a new GenClassRef from a field name an its generic class. A GenClassRef object is a field which is represented by a reference to a generic class. If the field already exists, it is returned.
Parameters:
fieldName - the name of the field
genName - the GenClass object which represents the reference of the field
Returns:
a new GenClassRef object, or the existing one if already defined

iterateField

public java.util.Iterator iterateField()
Returns an iterator on existing class fields. If no field is defined, an empty iterator is returned. This iterator contains PrimitiveElements, ClassRef and GenClassRef objects. The top level object is TypedElement.
Returns:
an iterator on fields, or null if there is no defined field

iterateAllField

public java.util.Iterator iterateAllField()
Returns an iterator on existing class fields + fields from super classes. This iterator contains PrimitiveElement, ClassRef and GenClassRef objects.
Returns:
an iterator on all defined fields, plus fields from super

iterateInheritedClass

public java.util.Iterator iterateInheritedClass()
Allows to obtain all the inherited classes from the current class object. This iterator contains Class objects. In the case where there is no inherited class, an empty iterator is returned.
Returns:
an iterator on inherited classes (Class objets). If no object exists, an empty iterator is returned.

addInheritedClass

public void addInheritedClass(Class class_)
Adds a new inherited class to the list of the inherited classes for the current class object. If the class already exists, nothing is done.
Parameters:
class_ - the inherited class to add to inherited classes list

getInheritedClassNumber

public int getInheritedClassNumber()
Returns the number of inherited classes for the current Class object.
Returns:
the number of inherited classes

getClassMapping

public ClassMapping getClassMapping(java.lang.String mapperName,
                                    java.lang.String mappingName)
Returns an existing ClassMapping object for the current class object. If the ClassMapping object does not exist, null is returned.
Parameters:
mapperName - the name of the mapper class name
Returns:
a ClassMapping object. If the ClassMapping does not exist for the mapper, null is returned.

createClassMapping

public ClassMapping createClassMapping(java.lang.String mapperName,
                                       java.lang.String mappingName)
Creates a new ClassMapping object for the current class. This mapping is defined by the name of the mapper, and the name of the mapping. If the ClassMapping object already exists, the existing one is returned.
Parameters:
mapperName - the name of the class mapper
mappingName - the name of the class mapping
Returns:
a new ClassMapping object. This object is dependent from the mapper. In the case the ClassMapping exists, it is returned.

iterateClassMapping

public java.util.Iterator iterateClassMapping()
Allows to know all the ClassMapping object used for the current class. If no ClassMapping object are defined, an empty iterator is returned.
Returns:
an Iterator object on ClassMapping object. If there is no object, an empty iterator is returned.

addAllInheritedClass

public void addAllInheritedClass(java.util.Map table)
Constructs an Hashtable with inherited class
Parameters:
table - the hashtable to build

getFieldRefNumber

public int getFieldRefNumber()
Returns the number of fields which are references to classes.
Returns:
the number of fieldRef

setInherited

public void setInherited()
Specifies that this class is inherited by another one within the set of compiled ones.

isInherited

public boolean isInherited()
Tests if this class is inherited by another one.