Class ObjEntity

    • Field Detail

      • 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
      • readOnly

        protected boolean readOnly
      • lockType

        protected int lockType
      • _abstract

        protected boolean _abstract
      • serverOnly

        protected boolean serverOnly
      • clientClassName

        protected String clientClassName
      • clientSuperClassName

        protected String clientSuperClassName
    • Constructor Detail

      • ObjEntity

        public ObjEntity()
      • ObjEntity

        public ObjEntity​(String name)
    • Method Detail

      • 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
      • getJavaClassName

        public String getJavaClassName()
        Returns a non-null class name. For generic entities with no class specified explicitly, default DataMap superclass is used, and if it is not set - CayenneDataObject is used.
        Since:
        4.0
      • getJavaClass

        @Deprecated
        public Class<?> getJavaClass()
        Deprecated.
        since 4.0 this method based on statically defined class loading algorithm is not going to work in environments like OSGi. AdhocObjectFactory should be used as it can provide the environment-specific class loading policy.
        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
      • 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 ObjAttribute 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
      • addAttributeOverride

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

        public void removeAttributeOverride​(String attributeName)
        Since:
        4.0
      • getDeclaredAttributeOverrides

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

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

        public ObjAttribute getDeclaredAttribute​(String name)
        Finds attribute declared by this ObjEntity, excluding inherited attributes.
        Parameters:
        name - of the attribute
        Returns:
        declared attribute or null if no attribute is found
        Since:
        4.0
        See Also:
        getAttribute(String)
      • getRelationship

        public ObjRelationship 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
      • 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
      • 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
      • getCallbackMethods

        public Set<String> getCallbackMethods()
        Since:
        4.0
      • 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