org.objectweb.jorm.metainfo.api

Interface Class

All Superinterfaces:
MetaObject, Serializable

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
addClassProject(String projectName, ClassProject classProject)
Adds a ClassProject object.
void
addSubClass(Class class_)
Adds a new class to the list of the derived classes for the current class object.
void
addSuperClass(Class class_)
Adds a new inherited class to the list of the inherited classes for the current class object.
ClassProject
createClassProject(String projectName)
Creates a new ClassProject object.
ClassRef
createClassRef(String fieldName, Class class_)
Allows to obtain a new ClassRef from a field name an its class.
GenClassRef
createGenClassRef(String fieldName, String genName)
Allows to obtain a new GenClassRef from a field name an its generic class.
ScalarField
createHiddenField(String fieldname, PType type, int size, int scale)
Creates an hiddenfield for the current Class object.
NameDef
createNameDef()
Creates a new NameDef object for the current Class object.
PrimitiveElement
createPrimitiveElement(String fieldName, PType type, int size, int scale)
Allows to obtain a new PrimitiveElement from a class field name an its type.
Collection
getAllFields()
Returns an iterator on existing class fields + fields from super classes.
Collection
getAllHiddenFields()
List
getAncestors()
ClassMapping
getClassMapping(String projectName, String mapperName)
Returns a ClassMapping object.
ClassProject
getClassProject(String projectName)
Returns a ClassProject object.
Collection
getClassProjects()
Returns a collection of ClassProject objects.
String
getConstantValue(String fieldName)
Obtains the value of a constant PrimitiveElement, defined either in the current class or in one of its ancestors.
String
getFQName()
Gets the fully qualified name (including the package name) associated with this class.
int
getFieldRefNumber()
Returns the number of fields which are references to classes.
Collection
getFields()
Returns an iterator on existing class fields.
String
getFileName()
Allows to retrieve the file name of this class MO.
ScalarField
getHiddenField(String fieldname)
Retrieve the hiddenfield identified by its name in the current class.
Collection
getHiddenFields()
Expression
getInheritanceFilter(NameDef nd)
Object
getInheritanceNamingKey(NameDef nd)
int
getInheritedClassNumber()
Returns the number of inherited classes for the current Class object.
String
getName()
Allows to know the name of the current class object.
NameDef
getNameDef(String projectName)
Returns a NameDef object from a given mapperName and mappingName.
Collection
getNameDefs()
PType
getPType()
Collection
getSubClasses()
Allows us to obtain all classes derived from the current class object.
Class
getSuperClass(String fqcn)
Retrieves a super class whith its name.
Collection
getSuperClasses()
Retrieves the collection of super classes
TypedElement
getTypedElement(String fieldName)
Allows to obtain an existing Field.
boolean
isAbstract()
Allows to know if the current class is an abstract class or not.
boolean
isPolymorphic()
Returns true if the class is polymorphic, i.e.
ClassProject
removeClassProject(String projectname)
Removes a ClassProject instance.
TypedElement
removeTypedElement(String fieldName)
Removes a typed element.
void
setAbstract(boolean isAbstract)
void
setConstantValue(String fieldName, String cv)
Defines the value of a constant PrimitiveElement, defined either in the current class or in one of its ancestors.
void
setFileName(String filename)
Allows to assign the file name of this class MO.
void
setInheritanceFilter(NameDef nd, Expression filter)
void
setInheritanceFilter(NameDef nd, String filter)
void
setInheritanceNamingKey(NameDef nd, Object key)

Methods inherited from interface org.objectweb.jorm.metainfo.api.MetaObject

getParent, setParent

Method Details

addClassProject

public void addClassProject(String projectName,
                            ClassProject classProject)
Adds a ClassProject object.

Parameters:
projectName - a project name, classProject a ClassProject object.


addSubClass

public void addSubClass(Class class_)
Adds a new class to the list of the derived 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


addSuperClass

public void addSuperClass(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


createClassProject

public ClassProject createClassProject(String projectName)
Creates a new ClassProject object.

Parameters:
projectName - the name of the project.

Returns:
a new ClassProject object, or an existing one.


createClassRef

public ClassRef createClassRef(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
class_ - the class meta-object which represents the reference of the field

Returns:
a new ClassRef object, or the existing one if already defined


createGenClassRef

public GenClassRef createGenClassRef(String fieldName,
                                     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


createHiddenField

public ScalarField createHiddenField(String fieldname,
                                     PType type,
                                     int size,
                                     int scale)
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
size - is the

Returns:
a new scalarfield object used to describe the hiddenfield


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. associated.

Returns:
a new object used to describe the PName projection for the current Class


createPrimitiveElement

public PrimitiveElement createPrimitiveElement(String fieldName,
                                               PType type,
                                               int size,
                                               int scale)
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


getAllFields

public Collection getAllFields()
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


getAllHiddenFields

public Collection getAllHiddenFields()

Returns:
a collection of hidden field of the class including inherited fields.


getAncestors

public List getAncestors()


getClassMapping

public ClassMapping getClassMapping(String projectName,
                                    String mapperName)
Returns a ClassMapping object.

Parameters:
projectName - a project name, mappername a mapper name.

Returns:
a ClassMapping object.


getClassProject

public ClassProject getClassProject(String projectName)
Returns a ClassProject object.

Parameters:
projectName - a project name.

Returns:
a ClassProject object.


getClassProjects

public Collection getClassProjects()
Returns a collection of ClassProject objects.

Returns:
a collection.


getConstantValue

public String getConstantValue(String fieldName)
Obtains the value of a constant PrimitiveElement, defined either in the current class or in one of its ancestors.

The constant value is represented by a String.

Parameters:
fieldName - the existing PrimitiveElement

Returns:
the constant value as a String


getFQName

public String getFQName()
Gets the fully qualified name (including the package name) associated with this class.

Returns:
the string representation of the fully qualified class name


getFieldRefNumber

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

Returns:
the number of fieldRef


getFields

public Collection getFields()
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


getFileName

public String getFileName()
Allows to retrieve the file name of this class MO.

Returns:
The file name.


getHiddenField

public ScalarField getHiddenField(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.


getHiddenFields

public Collection getHiddenFields()

Returns:
a collection of hidden field of the class WITHOUT inherited fields.


getInheritanceFilter

public Expression getInheritanceFilter(NameDef nd)
            throws ExpressionException

Returns:
the filter expression (Medor expression) permitting to known if instance of the parent class is in fact an instance of the current persistent class. The filter uses the field name (composite field in case of a composite or the field class name). If the current class has no parent, then this method return null;


getInheritanceNamingKey

public Object getInheritanceNamingKey(NameDef nd)

Returns:
the key matching to the current class. This value is the result of the inheritance filter evaluation.


getInheritedClassNumber

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

Returns:
the number of inherited classes


getName

public String getName()
Allows to know the name of the current class object.

Returns:
the string representation of the class name


getNameDef

public NameDef getNameDef(String projectName)
Returns a NameDef object from a given mapperName and mappingName. If the namedef does not exist, null is returned.

Parameters:
projectName - the name of the class project

Returns:
an existing namedef object if exists, either null


getNameDefs

public Collection getNameDefs()

Returns:
a collection of NameDef object


getPType

public PType getPType()

Returns:
the PType of the persistent class


getSubClasses

public Collection getSubClasses()
Allows us to obtain all classes derived from the current class object. This collection contains Class objects. In the case where there is no derived class, an empty collection is returned.

Returns:
a collection on derived classes (Class objets). If no object exists, an empty collection is returned.


getSuperClass

public Class getSuperClass(String fqcn)
Retrieves a super class whith its name.

Parameters:
fqcn - is the fully qualified class name of the super class

Returns:
a Class meta object instance if the specified class name is a super class of the current class. A null value if the specified class name is not a super class of the current class.


getSuperClasses

public Collection getSuperClasses()
Retrieves the collection of super classes

Returns:
a collection of Class meta objects.


getTypedElement

public TypedElement getTypedElement(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.


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


isPolymorphic

public boolean isPolymorphic()
Returns true if the class is polymorphic, i.e. it has subclasses or superclasses

Returns:
true if the class is polymorphic


removeClassProject

public ClassProject removeClassProject(String projectname)
Removes a ClassProject instance.

Parameters:
projectname - is the name of removed ClassProject

Returns:
The removed ClassProject


removeTypedElement

public TypedElement removeTypedElement(String fieldName)
Removes a typed element.

Parameters:
fieldName - is the name of the field to be removed

Returns:
the removed element or null if the field has not been found.


setAbstract

public void setAbstract(boolean isAbstract)


setConstantValue

public void setConstantValue(String fieldName,
                             String cv)
Defines the value of a constant PrimitiveElement, defined either in the current class or in one of its ancestors.

The constant value is represented by a String.

Parameters:
fieldName - the existing PrimitiveElement
cv - the constant value


setFileName

public void setFileName(String filename)
Allows to assign the file name of this class MO.

Parameters:
filename - The file name.


setInheritanceFilter

public void setInheritanceFilter(NameDef nd,
                                 Expression filter)

Parameters:
filter - is the filter expression (Medor expression) permitting to known if instance of the parent class is in fact an instance of the current persistent class. The filter uses the field name (composite field in case of a composite or the field class name).


setInheritanceFilter

public void setInheritanceFilter(NameDef nd,
                                 String filter)

Parameters:
filter - is the filter expression (Medor expression as string) permitting to known if instance of the parent class is in fact an instance of the current persistent class. The filter uses the field name (composite field in case of a composite or the field class name).


setInheritanceNamingKey

public void setInheritanceNamingKey(NameDef nd,
                                    Object key)