Overview | Package | Class | Tree | Deprecated | Index | Help
| © 2003 BEA Systems, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.bea.p13n.property
Class HierarchicalEntityImpl

    java.lang.Object
      |
      +--com.bea.p13n.property.AbstractConfigurableEntity
            |
            +--com.bea.p13n.property.ConfigurableEntityImpl
                  |
                  +--com.bea.p13n.property.HierarchicalEntityImpl

All Implemented Interfaces:
  ConfigurableEntity, EnterpriseBean, EntityBean, Serializable

public abstract class HierarchicalEntityImpl
extends ConfigurableEntityImpl

HierarchicalEntity extends ConfigurableEntity by describing an interface by which Entities can be included in a hierachy of successors. The resulting hierarchy is searched upward when getting Properties. This design pattern models the Chain of Responsibility Pattern (Gamma et al).

For example, if an entity A has a successor entity B, and A is queried for a property but does not have a value persisted for that property, it will lookup entity B and query it for that property.

Also, "explicit" successors can be specified as part of a getProperty method call. These are other ConfigurableEntities that should be queried after the current entity, but before any persisted successors.

A HierarchicalEntity can have one successor persisted for each property set, as well as a "default" successor that is not associated with a property set. The default successor will be queried in the case that the current entity does not have a value, the explicit successor (if one is specified) does not have a value, and the successor for the property's property set does not have a value.

See Also:
  Serialized Form

Field Summary
`protected static String` | `FIND_BY_PK` finder method name

Fields inherited from class com.bea.p13n.property.ConfigurableEntityImpl
`_ctx, _environmentNamingContext, COMMERCE_POOL, ENTITY_PROPERTY_MANAGER, entityPropertyManager, JNDI_NAME, PROPERTY_SET_MANAGER, PROPERTY_SET_TYPE, propertyLocator, psManager, textFormatter, uid`

Fields inherited from class com.bea.p13n.property.AbstractConfigurableEntity
`CE_METHOD_CACHE, instanceClass, PREFIX_GET, PREFIX_SET, propertyCache`

Fields inherited from interface com.bea.p13n.property.ConfigurableEntity
`RESERVED_PROPERTY_SET`

Constructor Summary
`HierarchicalEntityImpl()`

Method Summary
`protected Method` | `getFindByPrimaryKey(Class homeClass, Class[] params)` Get the findByPrimaryKey method from a home interface.
`protected Object` | `getImplicitProperty(String propertySet, String propertyName)` Override ConfigurableEntity.getImplicitProperty to do a successor search if the property was not found in this entity
`protected Object` | `getImplicitProperty(String propertySet, String propertyName, ConfigurableEntity explicitSuccessor)` Search for the property value in the default database tables; first in the current entity, then in the explicit successor entity, then in the implicit successor for the property set, and finally in the default implicit successor for this entity.
`Object` | `getProperty(String propertySet, String propertyName, ConfigurableEntity successor)` Retrieve the value associated with the named key in the specified property set.
`String` | `getPropertyAsString(String propertySet, String propertyName, ConfigurableEntity successor)` Convenience method to return the property as a String.
`Object` | `getPropertyNoDefault(String propertySet, String propertyName, ConfigurableEntity successor)` Retrieve the value associated with the property in the specified property set, but does not return a default value from the property's PropertyDefinition if the property does not exist for the entity or in the hierarchy of successors.
`ConfigurableEntity` | `getSuccessor(String propertySet)` Retrieve the successor associated with this ConfigurableEntity for the specified property set.
`protected ConfigurableEntity` | `getSuccessorFromId(Long anEntityId)` Get the entity represented by a unique entity id.
`void` | `removeSuccessor(String propertySet)` Remove the successor for the specified propertySet.
`void` | `setSuccessor(String propertySet, ConfigurableEntity successor)` This sets the successor for this object.

Methods inherited from class com.bea.p13n.property.ConfigurableEntityImpl
`createUniqueId, ejbActivate, ejbCreate, ejbFindByPrimaryKey, ejbLoad, ejbPassivate, ejbPostCreate, ejbRemove, ejbStore, getConnection, getDefaultSqlBundleName, getEntityContext, getEntityPropertyManager, getEnvironmentNamingContext, getEnvironmentProperty, getEnvironmentProperty, getJndiName, getPkString, getProperty, getPropertyCache, getPropertyDefault, getPropertyLocator, getPropertyLocator, getPropertySetManager, getStatement, getUniqueId, removeProperty, setEntityContext, setProperty, unsetEntityContext, useEntityPropertyManager`

Methods inherited from class com.bea.p13n.property.AbstractConfigurableEntity
`createMapKey, getCachedProperty, getExplicitProperty, getExplicitSetter, getPropertyAsString, getPropertyNoDefault, hasExplicitGetter, hasExplicitSetter, removeExplicitProperty, setExplicitProperty, upcaseFirst`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### FIND_BY_PK

    protected static final String FIND_BY_PK

  finder method name

  See Also:
    Constant Field Values

Constructor Detail

### HierarchicalEntityImpl

    public HierarchicalEntityImpl()

Method Detail

### getProperty

    public Object getProperty(String propertySet,
                              String propertyName,
                              ConfigurableEntity successor)
                       throws RemoteException

  Retrieve the value associated with the named key in the specified property set. If the entity does not have a value defined for that property, the property will be searched in the successor hiearchy using the explicit successor first and then the successor for the specified scope, and finally the entity's default successor. If this search does not return a value, the default value from the property set will be returned.

  Parameters:
    `propertySet` - The name of the property set
    `propertyName` - The name of the property to retrieve.
    `successor` - The explicit successor to use for sucessor hiearchy search if the entity does not have the property defined.
    `RemoteException`

### getPropertyAsString

    public String getPropertyAsString(String propertySet,
                                      String propertyName,
                                      ConfigurableEntity successor)
                               throws RemoteException

  Convenience method to return the property as a String. Follows the same search order as the getProperty method.

  Parameters:
    `propertySet` - The name of the property set
    `propertyName` - The name of the property to retrieve.
    `successor` - The explicit successor to use for sucessor hiearchy search if the entity does not have the property defined.
    `RemoteException`

### getPropertyNoDefault

    public Object getPropertyNoDefault(String propertySet,
                                       String propertyName,
                                       ConfigurableEntity successor)
                                throws RemoteException

  Retrieve the value associated with the property in the specified property set, but does not return a default value from the property's PropertyDefinition if the property does not exist for the entity or in the hierarchy of successors. This method is used by the implementation of the getProperty methods so that the search in the successor hierarchy does not return a default value from the PropertySet.

  Parameters:
    `propertySet` - The name of the property set
    `propertyName` - The name of the property to retrieve.
    `successor` - The explicit successor to use for sucessor hiearchy search if the entity does not have the property defined.
    `RemoteException`

### getImplicitProperty

    protected Object getImplicitProperty(String propertySet,
                                         String propertyName)
                                  throws RemoteException

  Override ConfigurableEntity.getImplicitProperty to do a successor search if the property was not found in this entity

  Overrides:
    `getImplicitProperty` in class `AbstractConfigurableEntity`
  Parameters:
    `propertySet` - The name of the property set
    `propertyName` - The name of the property to retrieve.
  Returns:
    the property value, or null if it was not found
    `RemoteException`

### getImplicitProperty

    protected Object getImplicitProperty(String propertySet,
                                         String propertyName,
                                         ConfigurableEntity explicitSuccessor)
                                  throws RemoteException

  Search for the property value in the default database tables; first in the current entity, then in the explicit successor entity, then in the implicit successor for the property set, and finally in the default implicit successor for this entity.

  Parameters:
    `propertySet` - The name of the property set
    `propertyName` - The name of the property to retrieve.
    `explicitSuccessor` - The explicit successor to use for sucessor hiearchy search if the entity does not have the property defined.
    `RemoteException`

### removeSuccessor

    public void removeSuccessor(String propertySet)

  Remove the successor for the specified propertySet.

### setSuccessor

    public void setSuccessor(String propertySet,
                             ConfigurableEntity successor)

  This sets the successor for this object. This is used when resolving the getProperty.

  Parameters:
    `successor` -

### getSuccessor

    public ConfigurableEntity getSuccessor(String propertySet)
                                    throws RemoteException

  Retrieve the successor associated with this ConfigurableEntity for the specified property set.

  Parameters:
    `propertySet` - the property set to look in
  Returns:
    this entity's successor, or null if one was not defined
    `RemoteException`

### getSuccessorFromId

    protected ConfigurableEntity getSuccessorFromId(Long anEntityId)
                                             throws RemoteException

  Get the entity represented by a unique entity id.

  Parameters:
    `anEntityId` - the successor's unique entity id
  Returns:
    a reference to the successor entity, or null if it could not be found
    `RemoteException`

### getFindByPrimaryKey

    protected Method getFindByPrimaryKey(Class homeClass,
                                         Class[] params)

  Get the findByPrimaryKey method from a home interface. This will cache the methods based on home class for faster lookups.

Overview | Package | Class | Tree | Deprecated | Index | Help
| © 2003 BEA Systems, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003 BEA Systems, Inc. All Rights Reserved