org.apache.cayenne.map
Class ObjEntity

java.lang.Object
  extended by org.apache.cayenne.map.Entity
      extended by org.apache.cayenne.map.ObjEntity
All Implemented Interfaces:
Serializable, EventListener, ObjEntityListener, CayenneMapEntry, XMLSerializable
Direct Known Subclasses:
EOObjEntity

public class ObjEntity
extends Entity
implements ObjEntityListener

ObjEntity is a mapping descriptor for a DataObject Java class. It contains the information about the Java class itself, as well as its mapping to the DbEntity layer.

See Also:
Serialized Form

Field Summary
protected  boolean _abstract
           
protected  Map<String,String> attributeOverrides
           
protected  CallbackMap callbacks
           
protected  String className
           
protected  String clientClassName
           
protected  String clientSuperClassName
           
protected  String dbEntityName
           
protected static Collection<String> DEFAULT_GENERIC_CLASSES
          A collection of default "generic" entity classes excluded from class generation.
protected  List<EntityListener> entityListeners
           
protected  boolean excludingDefaultListeners
           
protected  boolean excludingSuperclassListeners
           
static int LOCK_TYPE_NONE
           
static int LOCK_TYPE_OPTIMISTIC
           
protected  int lockType
           
protected  Expression qualifier
           
protected  boolean readOnly
           
protected  boolean serverOnly
           
protected  String superClassName
           
protected  String superEntityName
           
 
Fields inherited from class org.apache.cayenne.map.Entity
attributes, dataMap, name, OUTER_JOIN_INDICATOR, PATH_SEPARATOR, relationships
 
Constructor Summary
ObjEntity()
           
ObjEntity(String name)
           
 
Method Summary
 void addAttributeOverride(String attributeName, String dbPath)
           
 void addEntityListener(EntityListener listener)
          Adds a new EntityListener.
 void clearDbMapping()
          Clears all the mapping between this obj entity and its current db entity.
 void encodeAsXML(XMLEncoder encoder)
          Prints itself as XML to the provided XMLEncoder.
 Attribute getAttribute(String name)
          Returns a named attribute that is either declared in this ObjEntity or is inherited.
 ObjAttribute getAttributeForDbAttribute(DbAttribute dbAttribute)
          Returns ObjAttribute of this entity that maps to dbAttribute parameter.
 SortedMap<String,ObjAttribute> getAttributeMap()
          Returns a SortedMap of all attributes that either belong to this ObjEntity or inherited.
 Collection<ObjAttribute> getAttributes()
          Returns a Collection of all attributes that either belong to this ObjEntity or inherited.
 CallbackMap getCallbackMap()
          Returns an object that stores callback methods of this entity.
 String getClassName()
          Returns the name of DataObject class described by this entity.
 String getClientClassName()
          Returns the name of ClientDataObject class described by this entity.
 ObjEntity getClientEntity()
          Returns an ObjEntity stripped of any server-side information, such as DbEntity mapping.
 String getClientSuperClassName()
          Returns a fully-qualified name of the client-side super class of the DataObject class.
 DbEntity getDbEntity()
          Returns a DbEntity associated with this ObjEntity.
 String getDbEntityName()
          Returns the name of the underlying DbEntity.
 Map<String,String> getDeclaredAttributeOverrides()
           
 Collection<ObjAttribute> getDeclaredAttributes()
          Returns a Collection of all attributes that belong to this ObjEntity, excluding inherited attributes.
 int getDeclaredLockType()
          Returns the type of lock used by this ObjEntity, regardless of what locking type is used by super entities.
 Expression getDeclaredQualifier()
          Returns a qualifier that imposes a restriction on what objects belong to this entity.
 Collection<ObjRelationship> getDeclaredRelationships()
          Returns a Collection of all relationships that belong to this ObjEntity, excluding inherited attributes.
 EntityListener getEntityListener(String className)
           
 List<EntityListener> getEntityListeners()
          Returns an unmodifiable list of registered EntityListener objects.
 Class<?> getJavaClass()
          Returns Java class of persistent objects described by this entity.
 int getLockType()
          Returns the type of lock used by this ObjEntity.
 Collection<String> getPrimaryKeyNames()
          Returns the names of DbAtributes that comprise the primary key of the parent DbEntity.
 Collection<ObjAttribute> getPrimaryKeys()
          Returns an unmodifiable collection of ObjAttributes representing the primary key of the table described by this DbEntity.
 Relationship getRelationship(String name)
          Returns a named Relationship that either belongs to this ObjEntity or is inherited.
 ObjRelationship getRelationshipForDbRelationship(DbRelationship dbRelationship)
          Returns ObjRelationship of this entity that maps to dbRelationship parameter.
 SortedMap<String,ObjRelationship> getRelationshipMap()
          Returns an unmodifiable map of relationships sorted by name.
 Collection<ObjRelationship> getRelationships()
          Returns an unmodifiable collection of Relationships that exist in this entity.
 String getSuperClassName()
          Returns a fully-qualified name of the super class of the DataObject class.
 ObjEntity getSuperEntity()
          Returns a "super" entity in the entity inheritance hierarchy.
 String getSuperEntityName()
          Returns an entity name for a parent entity in the inheritance hierarchy.
 boolean isAbstract()
           
 boolean isClientAllowed()
          Returns true if this entity is allowed to be used on the client.
 boolean isExcludingDefaultListeners()
          Returns true if the default lifecycle listeners should not be notified of this entity lifecycle events.
 boolean isExcludingSuperclassListeners()
          Returns true if the lifeycle listeners defined on the superclasses should not be notified of this entity lifecycle events.
 boolean isGeneric()
          Returns whether this entity is "generic", meaning it is not mapped to a unique Java class.
 boolean isReadOnly()
          Returns true if this ObjEntity represents a set of read-only objects.
 boolean isServerOnly()
          Returns true if this entity is not available on the client.
 boolean isSubentityOf(ObjEntity entity)
          Returns true if this entity directly or indirectly inherits from a given entity, false otherwise.
 PathComponent<ObjAttribute,ObjRelationship> lastPathComponent(Expression path, Map aliasMap)
          Convenience method returning the last component in the path iterator.
 void objAttributeAdded(AttributeEvent e)
          Deprecated. since 3.0 ObjEntity no longer implements ObjAttributeListener
 void objAttributeChanged(AttributeEvent e)
          Deprecated. since 3.0 ObjEntity no longer implements ObjAttributeListener
 void objAttributeRemoved(AttributeEvent e)
          Deprecated. since 3.0 ObjEntity no longer implements ObjAttributeListener
 void objEntityAdded(EntityEvent e)
          New entity has been created/added.
 void objEntityChanged(EntityEvent e)
          ObjEntity property changed.
 void objEntityRemoved(EntityEvent e)
          Entity has been removed.
 void objRelationshipAdded(RelationshipEvent e)
          Deprecated. since 3.0 ObjEntity no longer implements ObjRelationshipListener
 void objRelationshipChanged(RelationshipEvent e)
          Deprecated. since 3.0 ObjEntity no longer implements ObjRelationshipListener
 void objRelationshipRemoved(RelationshipEvent e)
          Deprecated. since 3.0 ObjEntity no longer implements ObjRelationshipListener
 void removeEntityListener(String className)
          Removes a listener matching class name.
 Iterable<PathComponent<ObjAttribute,ObjRelationship>> resolvePath(Expression pathExp, Map aliasMap)
          Returns an Iterable instance over expression path components based on this entity.
 Iterator<CayenneMapEntry> resolvePathComponents(Expression pathExp)
          Processes expression pathExp and returns an Iterator of path components that contains a sequence of Attributes and Relationships.
 void setAbstract(boolean isAbstract)
          Sets whether this entity is abstract only.
 void setClassName(String className)
          Sets the name of the DataObject class described by this entity.
 void setClientClassName(String clientClassName)
          Sets the name of the ClientDataObject class described by this entity.
 void setClientSuperClassName(String clientSuperClassName)
          Sets a fully-qualified name of the client-side super class of the ClientDataObject class.
 void setDbEntity(DbEntity dbEntity)
          Sets the DbEntity used by this ObjEntity.
 void setDbEntityName(String string)
          Sets the name of underlying DbEntity.
 void setDeclaredLockType(int i)
          Sets the type of lock used by this ObjEntity.
 void setDeclaredQualifier(Expression qualifier)
          Sets a qualifier that imposes a limit on what objects belong to this entity.
 void setExcludingDefaultListeners(boolean excludingDefaultListeners)
           
 void setExcludingSuperclassListeners(boolean excludingSuperclassListeners)
           
 void setReadOnly(boolean readOnly)
           
 void setServerOnly(boolean serverOnly)
          Sets whether this entity is available on the client.
 void setSuperClassName(String superClassName)
          Sets a fully-qualified name of the super class of the DataObject class.
 void setSuperEntityName(String superEntityName)
          Sets an entity name for a parent entity in the inheritance hierarchy.
 Expression translateToDbPath(Expression expression)
          Transforms an Expression to an analogous expression in terms of the underlying DbEntity.
 Expression translateToRelatedEntity(Expression expression, String relationshipPath)
          Transforms an Expression rooted in this entity to an analogous expression rooted in related entity.
 
Methods inherited from class org.apache.cayenne.map.Entity
addAttribute, addRelationship, clearAttributes, clearRelationships, getAnyRelationship, getDataMap, getName, getParent, lastPathComponent, removeAttribute, removeRelationship, resolvePathComponents, setDataMap, setName, setParent, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LOCK_TYPE_NONE

public static final int LOCK_TYPE_NONE
See Also:
Constant Field Values

LOCK_TYPE_OPTIMISTIC

public static final int LOCK_TYPE_OPTIMISTIC
See Also:
Constant Field Values

DEFAULT_GENERIC_CLASSES

protected static final Collection<String> DEFAULT_GENERIC_CLASSES
A collection of default "generic" entity classes excluded from class generation.

Since:
1.2

superClassName

protected String superClassName

className

protected String className

dbEntityName

protected String dbEntityName

superEntityName

protected String superEntityName

qualifier

protected Expression qualifier

readOnly

protected boolean readOnly

lockType

protected int lockType

_abstract

protected boolean _abstract

serverOnly

protected boolean serverOnly

clientClassName

protected String clientClassName

clientSuperClassName

protected String clientSuperClassName

entityListeners

protected List<EntityListener> entityListeners

callbacks

protected CallbackMap callbacks

excludingDefaultListeners

protected boolean excludingDefaultListeners

excludingSuperclassListeners

protected boolean excludingSuperclassListeners

attributeOverrides

protected Map<String,String> attributeOverrides
Constructor Detail

ObjEntity

public ObjEntity()

ObjEntity

public ObjEntity(String name)
Method Detail

encodeAsXML

public void encodeAsXML(XMLEncoder encoder)
Prints itself as XML to the provided XMLEncoder.

Specified by:
encodeAsXML in interface XMLSerializable
Since:
1.1

getClientEntity

public ObjEntity getClientEntity()
Returns an ObjEntity stripped of any server-side information, such as DbEntity mapping. "clientClassName" property of this entity is used to initialize "className" property of returned entity.

Since:
1.2

getJavaClass

public Class<?> getJavaClass()
Returns Java class of persistent objects described by this entity. For generic entities with no class specified explicitly, default DataMap superclass is used, and if it is not set - CayenneDataObject is used. Casts any thrown exceptions into CayenneRuntimeException.

Since:
1.2

getEntityListeners

public List<EntityListener> getEntityListeners()
Returns an unmodifiable list of registered EntityListener objects. Note that since the order of listeners is significant a list, not just a generic Collection is returned.

Since:
3.0

addEntityListener

public void addEntityListener(EntityListener listener)
Adds a new EntityListener.

Throws:
IllegalArgumentException - if a listener for the same class name is already registered.
Since:
3.0

removeEntityListener

public void removeEntityListener(String className)
Removes a listener matching class name.

Since:
3.0

getEntityListener

public EntityListener getEntityListener(String className)
Since:
3.0

getCallbackMap

public CallbackMap getCallbackMap()
Returns an object that stores callback methods of this entity.

Since:
3.0

getLockType

public int getLockType()
Returns the type of lock used by this ObjEntity. If this entity is not locked, this method would look in a super entity recursively, until it finds a lock somewhere in the inheritance hierarchy.

Since:
1.1

getDeclaredLockType

public int getDeclaredLockType()
Returns the type of lock used by this ObjEntity, regardless of what locking type is used by super entities.

Since:
1.1

setDeclaredLockType

public void setDeclaredLockType(int i)
Sets the type of lock used by this ObjEntity.

Since:
1.1

isGeneric

public boolean isGeneric()
Returns whether this entity is "generic", meaning it is not mapped to a unique Java class. Criterion for generic entities is that it either has no Java class mapped or its class is the same as DataMap's default superclass, or it is CayenneDataObject.

Since:
1.2

isClientAllowed

public boolean isClientAllowed()
Returns true if this entity is allowed to be used on the client. Checks that parent DataMap allows client entities and also that this entity is not explicitly disabled for the client use.

Since:
1.2

isAbstract

public boolean isAbstract()

setAbstract

public void setAbstract(boolean isAbstract)
Sets whether this entity is abstract only.


isServerOnly

public boolean isServerOnly()
Returns true if this entity is not available on the client.

Since:
1.2

setServerOnly

public void setServerOnly(boolean serverOnly)
Sets whether this entity is available on the client.

Since:
1.2

getDeclaredQualifier

public Expression getDeclaredQualifier()
Returns a qualifier that imposes a restriction on what objects belong to this entity. Returned qualifier is the one declared in this entity, and does not include qualifiers declared in super entities.

Since:
1.1

getSuperEntityName

public String getSuperEntityName()
Returns an entity name for a parent entity in the inheritance hierarchy.

Since:
1.1

setDeclaredQualifier

public void setDeclaredQualifier(Expression qualifier)
Sets a qualifier that imposes a limit on what objects belong to this entity.

Since:
1.1

setSuperEntityName

public void setSuperEntityName(String superEntityName)
Sets an entity name for a parent entity in the inheritance hierarchy.

Since:
1.1

getClassName

public String getClassName()
Returns the name of DataObject class described by this entity.


setClassName

public void setClassName(String className)
Sets the name of the DataObject class described by this entity.


getClientClassName

public String getClientClassName()
Returns the name of ClientDataObject class described by this entity.

Since:
1.2

setClientClassName

public void setClientClassName(String clientClassName)
Sets the name of the ClientDataObject class described by this entity.

Since:
1.2

getSuperClassName

public String getSuperClassName()
Returns a fully-qualified name of the super class of the DataObject class. This value is used as a hint for class generation. If the entity inherits from another entity, a superclass is the class of that entity.


setSuperClassName

public void setSuperClassName(String superClassName)
Sets a fully-qualified name of the super class of the DataObject class. This value is used as a hint for class generation.

An attempt to set superclass on an inherited entity has no effect, since a class of the super entity is always used as a superclass.


getClientSuperClassName

public String getClientSuperClassName()
Returns a fully-qualified name of the client-side super class of the DataObject class. This value is used as a hint for class generation. If the entity inherits from another entity, a superclass is the class of that entity.

Since:
1.2

setClientSuperClassName

public void setClientSuperClassName(String clientSuperClassName)
Sets a fully-qualified name of the client-side super class of the ClientDataObject class. This value is used as a hint for class generation.

An attempt to set superclass on an inherited entity has no effect, since a class of the super entity is always used as a superclass.

Since:
1.2

getSuperEntity

public ObjEntity getSuperEntity()
Returns a "super" entity in the entity inheritance hierarchy.

Since:
1.1

getDbEntity

public DbEntity getDbEntity()
Returns a DbEntity associated with this ObjEntity.


setDbEntity

public void setDbEntity(DbEntity dbEntity)
Sets the DbEntity used by this ObjEntity.

Setting DbEntity on an inherited entity has no effect, since a class of the super entity is always used as a superclass.


getPrimaryKeys

public Collection<ObjAttribute> getPrimaryKeys()
Returns an unmodifiable collection of ObjAttributes representing the primary key of the table described by this DbEntity. Note that since PK is very often not an object property, the returned collection may contain "synthetic" ObjAttributes that are created on the fly and are not a part of ObjEntity and will not be a part of entity.getAttributes().

Since:
3.0

getAttribute

public Attribute getAttribute(String name)
Returns a named attribute that is either declared in this ObjEntity or is inherited. In any case returned attribute 'getEntity' method will return this entity. Returns null if no matching attribute is found.

Overrides:
getAttribute in class Entity

getAttributeMap

public SortedMap<String,ObjAttribute> getAttributeMap()
Returns a SortedMap of all attributes that either belong to this ObjEntity or inherited.

Overrides:
getAttributeMap in class Entity

addAttributeOverride

public void addAttributeOverride(String attributeName,
                                 String dbPath)
Since:
3.0

getDeclaredAttributeOverrides

public Map<String,String> getDeclaredAttributeOverrides()
Since:
3.0

getAttributes

public Collection<ObjAttribute> getAttributes()
Returns a Collection of all attributes that either belong to this ObjEntity or inherited.

Overrides:
getAttributes in class Entity

getDeclaredAttributes

public Collection<ObjAttribute> getDeclaredAttributes()
Returns a Collection of all attributes that belong to this ObjEntity, excluding inherited attributes.

Since:
1.1

getRelationship

public Relationship getRelationship(String name)
Returns a named Relationship that either belongs to this ObjEntity or is inherited. Returns null if no matching attribute is found.

Overrides:
getRelationship in class Entity

getRelationshipMap

public SortedMap<String,ObjRelationship> getRelationshipMap()
Description copied from class: Entity
Returns an unmodifiable map of relationships sorted by name.

Overrides:
getRelationshipMap in class Entity

getRelationships

public Collection<ObjRelationship> getRelationships()
Description copied from class: Entity
Returns an unmodifiable collection of Relationships that exist in this entity.

Overrides:
getRelationships in class Entity

getDeclaredRelationships

public Collection<ObjRelationship> getDeclaredRelationships()
Returns a Collection of all relationships that belong to this ObjEntity, excluding inherited attributes.

Since:
1.1

getAttributeForDbAttribute

public ObjAttribute getAttributeForDbAttribute(DbAttribute dbAttribute)
Returns ObjAttribute of this entity that maps to dbAttribute parameter. Returns null if no such attribute is found.


getPrimaryKeyNames

public Collection<String> getPrimaryKeyNames()
Returns the names of DbAtributes that comprise the primary key of the parent DbEntity.

Since:
3.0

getRelationshipForDbRelationship

public ObjRelationship getRelationshipForDbRelationship(DbRelationship dbRelationship)
Returns ObjRelationship of this entity that maps to dbRelationship parameter. Returns null if no such relationship is found.


clearDbMapping

public void clearDbMapping()
Clears all the mapping between this obj entity and its current db entity. Clears mapping between entities, attributes and relationships.


isReadOnly

public boolean isReadOnly()
Returns true if this ObjEntity represents a set of read-only objects.

Returns:
boolean

setReadOnly

public void setReadOnly(boolean readOnly)

isSubentityOf

public boolean isSubentityOf(ObjEntity entity)
Returns true if this entity directly or indirectly inherits from a given entity, false otherwise.

Since:
1.1

lastPathComponent

public PathComponent<ObjAttribute,ObjRelationship> lastPathComponent(Expression path,
                                                                     Map aliasMap)
Description copied from class: Entity
Convenience method returning the last component in the path iterator. If the last component is an alias, it is fully resolved down to the last ObjRelationship.

Overrides:
lastPathComponent in class Entity
Since:
3.0

resolvePath

public Iterable<PathComponent<ObjAttribute,ObjRelationship>> resolvePath(Expression pathExp,
                                                                         Map aliasMap)
Returns an Iterable instance over expression path components based on this entity.

Specified by:
resolvePath in class Entity
Since:
3.0

resolvePathComponents

public Iterator<CayenneMapEntry> resolvePathComponents(Expression pathExp)
                                                throws ExpressionException
Description copied from class: Entity
Processes expression pathExp and returns an Iterator of path components that contains a sequence of Attributes and Relationships. Note that if path is invalid and can not be resolved from this entity, this method will still return an Iterator, but an attempt to read the first invalid path component will result in ExpressionException.

Specified by:
resolvePathComponents in class Entity
Throws:
ExpressionException

translateToDbPath

public Expression translateToDbPath(Expression expression)
Transforms an Expression to an analogous expression in terms of the underlying DbEntity.

Since:
1.1

translateToRelatedEntity

public Expression translateToRelatedEntity(Expression expression,
                                           String relationshipPath)
Transforms an Expression rooted in this entity to an analogous expression rooted in related entity.

Specified by:
translateToRelatedEntity in class Entity
Since:
1.1

getDbEntityName

public String getDbEntityName()
Returns the name of the underlying DbEntity.

Since:
1.1

setDbEntityName

public void setDbEntityName(String string)
Sets the name of underlying DbEntity.

Since:
1.1

objEntityChanged

public void objEntityChanged(EntityEvent e)
ObjEntity property changed. May be name, attribute or relationship added or removed, etc. Attribute and relationship property changes are handled in respective listeners.

Specified by:
objEntityChanged in interface ObjEntityListener
Since:
1.2

objEntityAdded

public void objEntityAdded(EntityEvent e)
New entity has been created/added.

Specified by:
objEntityAdded in interface ObjEntityListener

objEntityRemoved

public void objEntityRemoved(EntityEvent e)
Entity has been removed.

Specified by:
objEntityRemoved in interface ObjEntityListener

objAttributeChanged

@Deprecated
public void objAttributeChanged(AttributeEvent e)
Deprecated. since 3.0 ObjEntity no longer implements ObjAttributeListener

Attribute property changed.


objAttributeAdded

@Deprecated
public void objAttributeAdded(AttributeEvent e)
Deprecated. since 3.0 ObjEntity no longer implements ObjAttributeListener

New attribute has been created/added.


objAttributeRemoved

@Deprecated
public void objAttributeRemoved(AttributeEvent e)
Deprecated. since 3.0 ObjEntity no longer implements ObjAttributeListener

Attribute has been removed.


objRelationshipChanged

@Deprecated
public void objRelationshipChanged(RelationshipEvent e)
Deprecated. since 3.0 ObjEntity no longer implements ObjRelationshipListener

Relationship property changed.


objRelationshipAdded

@Deprecated
public void objRelationshipAdded(RelationshipEvent e)
Deprecated. since 3.0 ObjEntity no longer implements ObjRelationshipListener

Relationship has been created/added.


objRelationshipRemoved

@Deprecated
public void objRelationshipRemoved(RelationshipEvent e)
Deprecated. since 3.0 ObjEntity no longer implements ObjRelationshipListener

Relationship has been removed.


isExcludingDefaultListeners

public boolean isExcludingDefaultListeners()
Returns true if the default lifecycle listeners should not be notified of this entity lifecycle events.

Since:
3.0

setExcludingDefaultListeners

public void setExcludingDefaultListeners(boolean excludingDefaultListeners)

isExcludingSuperclassListeners

public boolean isExcludingSuperclassListeners()
Returns true if the lifeycle listeners defined on the superclasses should not be notified of this entity lifecycle events.

Since:
3.0

setExcludingSuperclassListeners

public void setExcludingSuperclassListeners(boolean excludingSuperclassListeners)


Copyright © 2001-2011 Apache Cayenne. All Rights Reserved.