org.objectweb.jorm.type.lib
Class PTypeSpacePAAH

java.lang.Object
  extended byorg.objectweb.jorm.type.lib.PTypeSpacePAAH
All Implemented Interfaces:
PTypeSpace, java.io.Serializable

public class PTypeSpacePAAH
extends java.lang.Object
implements PTypeSpace

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.objectweb.jorm.type.api.PTypeSpace
BIGDECIMAL, BIGINTEGER, BOOLEAN, BYTE, BYTEARRAY, CHAR, CHARARRAY, DATE, DOUBLE, FLOAT, INT, LONG, NULLSUPERCLASSNAMES, NULLSUPERTYPES, OBJBOOLEAN, OBJBYTE, OBJCHAR, OBJDOUBLE, OBJFLOAT, OBJINT, OBJLONG, OBJSHORT, PREDEFINEDPTYPES, REFTOP, SCALARPTYPES, SERIALIZED, SHORT, STRING
 
Constructor Summary
PTypeSpacePAAH()
           
 
Method Summary
 PType createPType(java.lang.String classname)
          It creates a new PType for a JORM class that has no inherited class.
 PType createPType(java.lang.String[] gcnames, PType ptype)
          It creates a new PType for a JORM generic class instance.
 PType createPType(java.lang.String[] gcnames, java.lang.String typename, java.lang.String[][] superclassnames)
          It creates a new PType for a JORM generic class instance.
 PType createPType(java.lang.String classname, java.lang.String[][] superclassnames)
          It creates a new PType for a JORM class.
 PType getPType(java.lang.String classname)
          It tries to retrieve a PType representing a JORM class with the given class name.
 PType[] getSubTypes(PType pt)
          Retrieves all subtypes of this PType defined within its PTypeSpace.
 boolean isa(PType pt1, PType pt2)
          It compares to PType representing JORM classes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PTypeSpacePAAH

public PTypeSpacePAAH()
Method Detail

createPType

public PType createPType(java.lang.String classname)
                  throws PExceptionTyping
It creates a new PType for a JORM class that has no inherited class.

Specified by:
createPType in interface PTypeSpace
Parameters:
classname - The name of the JORM class.
Returns:
The created PType or the existing one if it has the same definition (same name and same super types).
Throws:
PExceptionTyping - Raised when a PType with this class name exists with a different array of super types.

createPType

public PType createPType(java.lang.String classname,
                         java.lang.String[][] superclassnames)
                  throws PExceptionTyping
It creates a new PType for a JORM class. It is defined by its name and its inheritance hierarchy. For example, if "Engineer" inherits from "Employee" that inherits from "Person", then the following stands:
  • classname = "schm1.Engineer"
  • superclassnames = {{"schm1.Engineer", "schm2.Employee"}, {"schm2.Employee", "schm3.Person"}}
  • Specified by:
    createPType in interface PTypeSpace
    Parameters:
    classname - The name of the JORM class to be defined.
    superclassnames - The hierarchy of of classes inherited by the previous class (defined by classname) if any.
    Returns:
    The created PType or the existing one if it has the same definition (same name and same super types).
    Throws:
    PExceptionTyping - Raised when a PType with this class name exists with a different array of super types.

    createPType

    public PType createPType(java.lang.String[] gcnames,
                             PType ptype)
                      throws PExceptionTyping
    It creates a new PType for a JORM generic class instance. Such an instance may have a nested structure like "list>>", which means that:
  • gcnames = {"list", "array", "set"}
  • ptypename = INT
  • Specified by:
    createPType in interface PTypeSpace
    Parameters:
    gcnames - The array of names of the nested generic classes.
    ptype - The PType of the type of the elements contained within this generic class, which is one of those defined inside PREDEFINEDPTYPES.
    Returns:
    The created PType or the existing one if it has the same definition (same name and same element type).
    Throws:
    PExceptionTyping - Raised when a PType with this class name exists with a different inner PType

    createPType

    public PType createPType(java.lang.String[] gcnames,
                             java.lang.String typename,
                             java.lang.String[][] superclassnames)
                      throws PExceptionTyping
    It creates a new PType for a JORM generic class instance. Such an instance may have a nested structure like "list>>", which means that:
  • gcnames = {"list", "array", "set"}
  • typename = "schm1.Engineer"
  • superclassnames = {{"schm1.Engineer", "schm2.Employee"}, {"schm2.Employee", "schm3.Person"}}
  • Specified by:
    createPType in interface PTypeSpace
    Parameters:
    gcnames - The array of names of the nested generic classes.
    typename - The name of the type of the elements contained within this generic class.
    superclassnames - The hierarchy of of classes inherited by the previous class (defined by typename) if any.
    Returns:
    The created PType or the existing one if it has the same definition (same name and same element type).
    Throws:
    PExceptionTyping - Raised when a PType with this class name exists with a different inner PType

    getPType

    public PType getPType(java.lang.String classname)
    It tries to retrieve a PType representing a JORM class with the given class name.

    Specified by:
    getPType in interface PTypeSpace
    Parameters:
    classname - The name of a JORM class the PType is looking for.
    Returns:
    The relevant PType if one has been found or null if none found.

    getSubTypes

    public PType[] getSubTypes(PType pt)
    Retrieves all subtypes of this PType defined within its PTypeSpace.

    Specified by:
    getSubTypes in interface PTypeSpace
    Parameters:
    pt - The concerned PType.
    Returns:
    The array of PType containing all these subtypes.

    isa

    public boolean isa(PType pt1,
                       PType pt2)
    It compares to PType representing JORM classes. It verifies if the first one conforms to the second one.

    Specified by:
    isa in interface PTypeSpace
    Parameters:
    pt1 - The first JORM class PType.
    pt2 - The second JORM class PType.
    Returns:
    It returns true if pt1 conforms to pt2.