org.objectweb.jorm.mapper.fos.genclass
Class FosGenClassMapping

java.lang.Object
  extended byorg.objectweb.jorm.genclass.lib.GenClassMapping
      extended byorg.objectweb.jorm.mapper.fos.genclass.FosGenClassMapping
All Implemented Interfaces:
FosGenClassProp, GenClassProp, Loggable, PClassMapping, PClassMappingCtrl

public class FosGenClassMapping
extends GenClassMapping
implements FosGenClassProp


Nested Class Summary
 
Nested classes inherited from class org.objectweb.jorm.api.PClassMapping
PClassMapping.ReferenceConfigurator
 
Field Summary
protected  java.lang.String className
           
protected  java.lang.String dirName
           
protected  java.lang.String fieldName
           
protected  java.lang.String genClassLevel
           
 
Fields inherited from class org.objectweb.jorm.genclass.lib.GenClassMapping
binder, classPNC, elemClassMapping, elemFields, elemNameCoder, genClassMetaInfo, genClassPType, identifierFields, indexFields, jormClassName, logger, loggerFactory, mapper, projectName
 
Fields inherited from interface org.objectweb.jorm.api.PClassMapping
CLEANUP_DONOTHING, CLEANUP_REMOVEALL, CLEANUP_REMOVEDATA, CREATE_STRUCTURE_IF_NEEDED
 
Constructor Summary
FosGenClassMapping()
           
 
Method Summary
 void addAssociation(PClassMapping targetClass, int[] indexes)
          Adds an association [pclassmapping-> table of indexes] to the association table.
 void classDefined(PMappingStructuresManager pmsm)
          Register the class in the cluster.
 PBinding createPBinding()
          It creates a new PBinding.
 boolean exist(PBinding pb, java.lang.Object conn)
          It verifies if the DSI attached to a binding exists within the DS.
 java.util.HashMap getAssociationTable()
          Returns the map storing association between a pclassmapping on which is done a query and a table of int representing the fields numbers to select in the tuple to fill in the field of an instance of the class.
 PName getDecodedPName(TupleCollection tc, PName pname, boolean b)
          It returns the PName valid in the "good" binder according to the tuple collection.
 int[] getIndexesTable(PClassMapping targetClass)
          Returns the indexes table associated to the pclassmapping targetClass, null if not contained in the map.
 PNameIterator getPNameIterator(java.lang.Object conn, boolean withSubType, boolean prefetching, java.lang.Object txctx)
          It returns an iterator over all pname of persitent objects availlable in this class.
 PClassMapping[] getSubPCMs()
          Returns null in case of genclass.
 void init(PMappingCallback mapper, MetaObject metaclass)
          It intialises the class mapping.
 void init(PMappingStructuresManager pmsm)
          Register the mapping structures and the dependencies.
 boolean isConform(java.lang.String mappername)
          It specifies if the given kind of PMapper is supported by this PClassMapping.
 boolean match(java.lang.Object obj, boolean b)
          Returns true if the object obj matches (exactly) this class, else it returns false.
 void read(PBinding pb, java.lang.Object conn, PAccessor pa)
          It reads the data store instance designated by the PName of a binding and transfers each attribute value to the accessor object.
 void readFile(java.io.ObjectInputStream ois, FosAccess conn, java.lang.Object ctxt)
          Reads the content of a persistent object from the file represented by the given ObjectInputStream.
 PName resolve(java.lang.Object conn, PName pname)
          It returns the PName valid in the "good" binder.
 void setClassName(java.lang.String cn)
          Specifies the class within which the related generic class is defined.
 void setFieldName(java.lang.String fn)
          Specifies the field of the class which defines the related generic class.
 void setGenClassLevel(java.lang.String level)
          Specifies the level of names of the related generic class (e.g., for a set of lists, lists are level 0).
 void write(PBinding pb, java.lang.Object conn, PAccessor pa)
          It transfers each attribute value taken from the PAccessor object to the data store instance designated by the PName associated with a binding.
 void writeFile(java.io.ObjectOutputStream oos, FosAccess conn, java.lang.Object ctxt)
          Writes the content of a persistent object to the file represented by the given ObjectOutputStream.
 
Methods inherited from class org.objectweb.jorm.genclass.lib.GenClassMapping
configureRefFields, getClassName, getClassPNameCoder, getElemFields, getGenClassMapping, getGenClassMapping, getIdentifierFields, getIndexFields, getLogger, getLoggerFactory, getMetaInfo, getPBinder, getPMapper, getPNameCoder, getPNameCoder, getPNameIterator, getProjectName, getPType, read, read, setClassPNameCoder, setElemDesc, setGenClassMapping, setGenClassMapping, setIdentifierDesc, setIndexDesc, setLogger, setLoggerFactory, setPBinder, setPNameCoder, setPNameCoder, setProjectName, setPType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.jorm.genclass.api.GenClassProp
setElemDesc, setIdentifierDesc, setIndexDesc, setPType
 

Field Detail

className

protected java.lang.String className

fieldName

protected java.lang.String fieldName

genClassLevel

protected java.lang.String genClassLevel

dirName

protected java.lang.String dirName
Constructor Detail

FosGenClassMapping

public FosGenClassMapping()
Method Detail

init

public void init(PMappingCallback mapper,
                 MetaObject metaclass)
          throws PException
It intialises the class mapping. It especially assigns a mapper as well as a meta-object describing either a class or a generic class.

Specified by:
init in interface PClassMapping
Overrides:
init in class GenClassMapping
Parameters:
mapper - The mapper to be assigned to this class mapping.
metaclass - The meta-object describing the associated class. It may be null.
Throws:
PException

createPBinding

public PBinding createPBinding()
                        throws PException
It creates a new PBinding.

Specified by:
createPBinding in interface PClassMapping
Returns:
The new PBinding with lifecycle state set to LIFECYCLE_NOTBOUND.
Throws:
PException

getPNameIterator

public PNameIterator getPNameIterator(java.lang.Object conn,
                                      boolean withSubType,
                                      boolean prefetching,
                                      java.lang.Object txctx)
                               throws PException
It returns an iterator over all pname of persitent objects availlable in this class.

Specified by:
getPNameIterator in interface PClassMapping
Parameters:
conn - is the connection which permits to access to the support
withSubType - indicates if the subclass instances must be included into the iterator
prefetching - indicates if prefething must be activated during the query on the persistent support.
txctx - The transaction context that can be used in case of prefetching.
Returns:
the iterator over PName objects
Throws:
PExceptionProtocol - A problem occured during the request that is not related to I/O.
PExceptionIO - A problem occured during the request.
PException

isConform

public boolean isConform(java.lang.String mappername)
It specifies if the given kind of PMapper is supported by this PClassMapping.

Specified by:
isConform in interface PClassMapping
Parameters:
mappername - The name defining the PMapper kind.
Returns:
true if this kind of mapper is supported.

exist

public boolean exist(PBinding pb,
                     java.lang.Object conn)
              throws PException
Description copied from interface: PClassMapping
It verifies if the DSI attached to a binding exists within the DS.

Specified by:
exist in interface PClassMapping
Parameters:
pb - is the PBinding instance
conn - The connection that can be used to refer to the DS.
Returns:
It returns true if the DSI exists.
Throws:
PException

read

public void read(PBinding pb,
                 java.lang.Object conn,
                 PAccessor pa)
          throws PException
Description copied from interface: PClassMapping
It reads the data store instance designated by the PName of a binding and transfers each attribute value to the accessor object.

Specified by:
read in interface PClassMapping
Parameters:
conn - The connection that can be used to refer to the DS.
pa - The PAccessor used to access memory variables.
Throws:
PException

write

public void write(PBinding pb,
                  java.lang.Object conn,
                  PAccessor pa)
           throws PException
Description copied from interface: PClassMapping
It transfers each attribute value taken from the PAccessor object to the data store instance designated by the PName associated with a binding.

Specified by:
write in interface PClassMapping
Parameters:
conn - The connection that can be used to refer to the DS.
pa - The PAccessor used to access memory variables.
Throws:
PException

getSubPCMs

public PClassMapping[] getSubPCMs()
                           throws PException
Returns null in case of genclass.

Specified by:
getSubPCMs in interface PClassMapping
Returns:
the list of sub pcms or null if the class has no child
Throws:
PException

setClassName

public void setClassName(java.lang.String cn)
Description copied from interface: FosGenClassProp
Specifies the class within which the related generic class is defined.

Specified by:
setClassName in interface FosGenClassProp

setFieldName

public void setFieldName(java.lang.String fn)
Description copied from interface: FosGenClassProp
Specifies the field of the class which defines the related generic class.

Specified by:
setFieldName in interface FosGenClassProp

setGenClassLevel

public void setGenClassLevel(java.lang.String level)
Description copied from interface: FosGenClassProp
Specifies the level of names of the related generic class (e.g., for a set of lists, lists are level 0).

Specified by:
setGenClassLevel in interface FosGenClassProp

readFile

public void readFile(java.io.ObjectInputStream ois,
                     FosAccess conn,
                     java.lang.Object ctxt)
              throws java.lang.Exception
Reads the content of a persistent object from the file represented by the given ObjectInputStream.

Parameters:
ois - The ObjectInputStream representing the file from which to read.
conn - The connection used to access the File Object Store.
Throws:
java.lang.Exception

writeFile

public void writeFile(java.io.ObjectOutputStream oos,
                      FosAccess conn,
                      java.lang.Object ctxt)
               throws java.lang.Exception
Writes the content of a persistent object to the file represented by the given ObjectOutputStream.

Parameters:
oos - The ObjectOutputStream representing the file to which to write.
conn - The connection used to access the File Object Store.
Throws:
java.lang.Exception

getAssociationTable

public java.util.HashMap getAssociationTable()
Description copied from interface: PClassMapping
Returns the map storing association between a pclassmapping on which is done a query and a table of int representing the fields numbers to select in the tuple to fill in the field of an instance of the class. Example: Let's say we are instanciating D objects A(pk1, pk2, f1), B(f2), C(f3, f4), D(f5) _________A_______ B C____ D The prefetch query on A will be: Select pk1, pk2, f1, f2, f3, f4, f5 For D, the index table will be [1,2,3,5,6,7] because we need only pk1, pk2, f1, f3, f4, f5 to instanciate D objects The prefetch query on C will be: Select pk1, pk2, f1, f3, f4, f5 For D, the index table will be [1,2,3,4,5,6] because we need all the fields to instanciate D objects Then, the map returned for D will be: [ pclassmapping of A, [1,2,3,5,6,7]] [ pclassmapping of C, [1,2,3,4,5,6]]

Specified by:
getAssociationTable in interface PClassMapping

addAssociation

public void addAssociation(PClassMapping targetClass,
                           int[] indexes)
Description copied from interface: PClassMapping
Adds an association [pclassmapping-> table of indexes] to the association table. If the map already has an entry corresponding to the pclassmapping, this entry is replaced by the new one.

Specified by:
addAssociation in interface PClassMapping
Parameters:
targetClass - the PClassMapping on which is done the query
indexes - a table of int composed of the indexes of fields required

getIndexesTable

public int[] getIndexesTable(PClassMapping targetClass)
Description copied from interface: PClassMapping
Returns the indexes table associated to the pclassmapping targetClass, null if not contained in the map.

Specified by:
getIndexesTable in interface PClassMapping

resolve

public PName resolve(java.lang.Object conn,
                     PName pname)
              throws PException
Description copied from interface: PClassMapping
It returns the PName valid in the "good" binder.

Specified by:
resolve in interface PClassMapping
Parameters:
conn - The connection that can be used to refer to the DS.
Throws:
PException

match

public boolean match(java.lang.Object obj,
                     boolean b)
              throws PException
Description copied from interface: PClassMapping
Returns true if the object obj matches (exactly) this class, else it returns false.

Specified by:
match in interface PClassMapping
Throws:
PException

getDecodedPName

public PName getDecodedPName(TupleCollection tc,
                             PName pname,
                             boolean b)
                      throws PException
Description copied from interface: PClassMapping
It returns the PName valid in the "good" binder according to the tuple collection.

Specified by:
getDecodedPName in interface PClassMapping
Throws:
PException

init

public void init(PMappingStructuresManager pmsm)
          throws PException
Description copied from interface: PClassMapping
Register the mapping structures and the dependencies.

Specified by:
init in interface PClassMapping
Parameters:
pmsm - The PMappingStructuresManager in which mapping structures are registered.
Throws:
PException

classDefined

public void classDefined(PMappingStructuresManager pmsm)
                  throws PException
Description copied from interface: PClassMapping
Register the class in the cluster.

Specified by:
classDefined in interface PClassMapping
Parameters:
pmsm -
Throws:
PException