Package de.hybris.platform.persistence
Class ItemEJB
- java.lang.Object
-
- de.hybris.platform.persistence.ItemEJB
-
- All Implemented Interfaces:
EntityInstance,EntityProxy,HomeProxy,ItemHome,ItemPermissionFacade,ItemRemote
- Direct Known Subclasses:
ExtensibleItemEJB
public abstract class ItemEJB extends java.lang.Object implements EntityInstance, ItemRemote, ItemHome, ItemPermissionFacade
ItemEJB is responsible for- holding a primary key
- generating a new primary key
- having a typecode
-
-
Field Summary
Fields Modifier and Type Field Description protected EntityInstanceContextentityContextentity context accessible for subclasses if this is an entitybeanprotected static booleanREADprotected static booleanWRITE
-
Constructor Summary
Constructors Constructor Description ItemEJB()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intcheckItemPermission(PK principalPK, PK permissionPK)The return value for checkPermission(...) if no permission was set, or positive and negative settings were found.intcheckOwnGlobalPermission(PK permissionPK)protected voidclearEntityCaches()protected voidcopyComposedTypeFromTemplate(ItemRemote template)protected voidcreateFromTemplate(ItemRemote template)sets data from template item.protected PKdoCreateInternal(PK pk, ComposedTypeRemote type, ItemRemote template)is responsible for assigning Item with a unique primary key and a given type.protected voiddoPostCreateInternal(PK pkBase, ComposedTypeRemote type, ItemRemote template)java.lang.StringejbHomeGetItemTableName()home method impljava.lang.StringejbHomeGetOwnJNDIName()home method implvoidejbHomeLoadItemData(java.sql.ResultSet resultSet)voidejbLoad()voidejbRemove()voidejbStore()abstract longgetACLTimestampInternal()protected java.lang.ObjectgetCachedValueForModification(ItemCacheKey key)protected java.lang.ObjectgetCachedValueForReading(ItemCacheKey key)the returned cached value may be unmodifiableprotected java.lang.ObjectgetCachedValueForReadingIfAvailable(ItemCacheKey key)will return the cached value if it has already been computed, or null otherwiseprotected java.util.Collection<java.lang.Object>getCachedValuesStartingWith(java.lang.String qualifierPrefix)protected ItemCacheKeygetCacheKey(java.lang.Object quali)protected abstract java.util.Map<java.lang.Object,ItemCacheKey>getCacheKeyMap()ComposedTypeRemotegetComposedType()java.util.DategetCreationTime()abstract java.util.DategetCreationTimestampInternal()protected ComposedTypeRemotegetDefaultType()EntityInstanceContextgetEntityContext()java.util.Collection<PK>getGlobalPermissionPKs(boolean negative)abstract longgetHJMPTS()protected abstract java.lang.StringgetItemTableNameImpl()instance method impljava.util.DategetModifiedTime()abstract java.util.DategetModifiedTimestampInternal()protected ItemCacheKeygetOrAddCacheKey(ItemCacheKey key)ItemRemotegetOwner()abstract PKgetOwnerPkString()abstract java.lang.StringgetOwnJNDIName()instance method impljava.util.Collection<PK>getPermissionPKs(PK principalPK, boolean negative)PKgetPK()abstract PKgetPkString()java.util.Map<ItemPropertyValue,java.util.List<java.lang.Boolean>>getPrincipalToBooleanListMap(java.util.List<PK> rightPKs)finds all restricted principals for a given list of user rights.java.util.Collection<PK>getRestrictedPrincipalPKs()PKgetTypeKey()abstract PKgetTypePkString()booleanhasJNDIName(java.lang.String jndiName)protected booleanhasModifiedCaches()Used by HJMP to optimize calls toejbStore().abstract booleanisBeforeCreate()Special method indicating that the entity instance is currently within its ejbCreate() state and has not been written to database yet.voidloadItemData(java.sql.ResultSet resultSet)still experimental - dont useprotected voidlogACLCacheChange(ACLCache aclChache)booleanneedsStoring()protected voidpostCreateFromTemplate(ItemRemote template)sets (postcreate - )data from template item.static java.lang.StringquoteSQLStringLiteralForQuery(java.lang.String str)Doubles each occurence of a single quotation mark (').voidremove()protected voidremoveACLEntries()called by HJMP only !!!booleanremoveGlobalPermission(PK permissionPK)booleanremoveGlobalPermissions(java.util.Collection<PermissionContainer> permissions)booleanremovePermission(PK principalPK, PK permissionPK)booleanremovePermissions(java.util.Collection<PermissionContainer> permissions)abstract voidsetACLTimestampInternal(long timestamp)voidsetComposedType(ComposedTypeRemote type)voidsetCreationTime(java.util.Date date)abstract voidsetCreationTimestampInternal(java.util.Date time)voidsetEntityContext(EntityInstanceContext ctx)Stores entityContext inentityContext.booleansetGlobalPermission(PK permissionPK, boolean negative)booleansetGlobalPermissions(java.util.Collection<PermissionContainer> permissions)voidsetModifiedTime(java.util.Date timestamp)protected voidsetModifiedTimestamp(java.util.Date timestamp)abstract voidsetModifiedTimestampInternal(java.util.Date time)voidsetNeedsStoring(boolean needsStoring)voidsetOwner(ItemRemote owner)abstract voidsetOwnerPkString(PK pk)voidsetOwnerRef(ItemPropertyValue ownerRef)booleansetPermission(PK principalPK, PK permissionPK, boolean negative)booleansetPermissions(java.util.Collection<PermissionContainer> permissions)abstract voidsetPkString(PK pk)voidsetPrincipalToBooleanListMap(java.util.List<PK> rightPKs, java.util.Map<PK,java.util.List<java.lang.Boolean>> principalPKToBooleanListMap)changes restricted principals for a given list of user rights.abstract voidsetTypePkString(PK pk)protected booleanskipRemovePermission(ACLCache acl, PK principalPK, PK permissionPK)protected booleanskipSetPermission(ACLCache acl, PK principalPK, PK permissionPK, boolean negative)protected voidstoreCaches()override if you use own ItemCacheKeys which may contain changed data.protected voidtypeChanged(PK oldTypePK, PK newTypePK)protected abstract inttypeCode()booleanwasModifiedSince(java.util.Date time)protected booleanwriteACLEntries()called by HJMP only !!!-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.hybris.platform.persistence.framework.EntityInstance
ejbFindByPrimaryKey
-
Methods inherited from interface de.hybris.platform.persistence.ItemHome
findAll, findByPKList, findByType, findChangedAfter
-
-
-
-
Field Detail
-
READ
protected static final boolean READ
- See Also:
- Constant Field Values
-
WRITE
protected static final boolean WRITE
- See Also:
- Constant Field Values
-
entityContext
protected EntityInstanceContext entityContext
entity context accessible for subclasses if this is an entitybean
-
-
Method Detail
-
getPkString
public abstract PK getPkString()
- Specified by:
getPkStringin interfaceItemRemote
-
setPkString
public abstract void setPkString(PK pk)
-
getCreationTimestampInternal
public abstract java.util.Date getCreationTimestampInternal()
-
setCreationTimestampInternal
public abstract void setCreationTimestampInternal(java.util.Date time)
-
getACLTimestampInternal
public abstract long getACLTimestampInternal()
-
setACLTimestampInternal
public abstract void setACLTimestampInternal(long timestamp)
-
getModifiedTimestampInternal
public abstract java.util.Date getModifiedTimestampInternal()
-
setModifiedTimestampInternal
public abstract void setModifiedTimestampInternal(java.util.Date time)
-
getTypePkString
public abstract PK getTypePkString()
-
setTypePkString
public abstract void setTypePkString(PK pk)
-
getOwnerPkString
public abstract PK getOwnerPkString()
-
setOwnerPkString
public abstract void setOwnerPkString(PK pk)
-
getHJMPTS
public abstract long getHJMPTS()
- Specified by:
getHJMPTSin interfaceItemRemote
-
isBeforeCreate
public abstract boolean isBeforeCreate()
Special method indicating that the entity instance is currently within its ejbCreate() state and has not been written to database yet.
-
getPK
public PK getPK()
- Specified by:
getPKin interfaceEntityProxy
-
getTypeKey
public PK getTypeKey()
- Specified by:
getTypeKeyin interfaceItemRemote
-
quoteSQLStringLiteralForQuery
public static java.lang.String quoteSQLStringLiteralForQuery(java.lang.String str)
Doubles each occurence of a single quotation mark (').- Parameters:
str-- Returns:
- String
-
ejbHomeLoadItemData
public void ejbHomeLoadItemData(java.sql.ResultSet resultSet)
-
typeCode
protected abstract int typeCode()
- Returns:
- a unique typecode for this item type. Used for wrapping entity beans to the jalo layer.
-
doCreateInternal
protected PK doCreateInternal(PK pk, ComposedTypeRemote type, ItemRemote template)
is responsible for assigning Item with a unique primary key and a given type.
-
createFromTemplate
protected void createFromTemplate(ItemRemote template)
sets data from template item. override in all subclasses which define new fields!
-
copyComposedTypeFromTemplate
protected final void copyComposedTypeFromTemplate(ItemRemote template)
-
postCreateFromTemplate
protected void postCreateFromTemplate(ItemRemote template)
sets (postcreate - )data from template item. override in all subclasses which define new fields!
-
doPostCreateInternal
protected void doPostCreateInternal(PK pkBase, ComposedTypeRemote type, ItemRemote template)
-
removeACLEntries
protected void removeACLEntries()
called by HJMP only !!!
-
writeACLEntries
protected boolean writeACLEntries()
called by HJMP only !!!
-
setEntityContext
public void setEntityContext(EntityInstanceContext ctx)
Stores entityContext inentityContext. Do not call method yourself!- Specified by:
setEntityContextin interfaceEntityInstance
-
getEntityContext
public EntityInstanceContext getEntityContext()
- Specified by:
getEntityContextin interfaceEntityInstance
-
ejbStore
public void ejbStore()
- Specified by:
ejbStorein interfaceEntityInstance
-
ejbLoad
public void ejbLoad()
- Specified by:
ejbLoadin interfaceEntityInstance
-
hasModifiedCaches
protected boolean hasModifiedCaches()
Used by HJMP to optimize calls toejbStore(). Dont use elsewhere!This method just checks if a ACL cache is present and needs storing.
- Returns:
- true if this item instance owns modified caches which need to be stored
-
ejbRemove
public void ejbRemove()
- Specified by:
ejbRemovein interfaceEntityInstance
-
clearEntityCaches
protected void clearEntityCaches()
-
getCreationTime
public java.util.Date getCreationTime()
- Specified by:
getCreationTimein interfaceItemRemote
-
setCreationTime
public void setCreationTime(java.util.Date date)
- Specified by:
setCreationTimein interfaceItemRemote
-
getModifiedTime
public java.util.Date getModifiedTime()
- Specified by:
getModifiedTimein interfaceItemRemote
-
setModifiedTime
public void setModifiedTime(java.util.Date timestamp)
- Specified by:
setModifiedTimein interfaceItemRemote
-
setModifiedTimestamp
protected void setModifiedTimestamp(java.util.Date timestamp)
-
wasModifiedSince
public boolean wasModifiedSince(java.util.Date time)
- Specified by:
wasModifiedSincein interfaceItemRemote
-
getComposedType
public ComposedTypeRemote getComposedType()
- Specified by:
getComposedTypein interfaceItemRemote
-
setComposedType
public void setComposedType(ComposedTypeRemote type) throws EJBInvalidParameterException
- Specified by:
setComposedTypein interfaceItemRemote- Throws:
EJBInvalidParameterException
-
getDefaultType
protected ComposedTypeRemote getDefaultType() throws EJBItemNotFoundException
- Throws:
EJBItemNotFoundException
-
getOwner
public ItemRemote getOwner()
- Specified by:
getOwnerin interfaceItemRemote
-
setOwner
public void setOwner(ItemRemote owner)
- Specified by:
setOwnerin interfaceItemRemote
-
setOwnerRef
public void setOwnerRef(ItemPropertyValue ownerRef)
- Specified by:
setOwnerRefin interfaceItemRemote
-
storeCaches
protected void storeCaches()
override if you use own ItemCacheKeys which may contain changed data. Please not that at this time you MUST NOT write any CMP field since item data might already be stored! dont forget to call super.storeCaches() so that superclass caches are stored correctly.
-
getCacheKeyMap
protected abstract java.util.Map<java.lang.Object,ItemCacheKey> getCacheKeyMap()
-
getCachedValueForReading
protected java.lang.Object getCachedValueForReading(ItemCacheKey key)
the returned cached value may be unmodifiable
-
getCachedValueForModification
protected java.lang.Object getCachedValueForModification(ItemCacheKey key)
-
getCachedValueForReadingIfAvailable
protected java.lang.Object getCachedValueForReadingIfAvailable(ItemCacheKey key)
will return the cached value if it has already been computed, or null otherwise
-
getCachedValuesStartingWith
protected final java.util.Collection<java.lang.Object> getCachedValuesStartingWith(java.lang.String qualifierPrefix)
-
getCacheKey
protected final ItemCacheKey getCacheKey(java.lang.Object quali)
-
getOrAddCacheKey
protected final ItemCacheKey getOrAddCacheKey(ItemCacheKey key)
-
getRestrictedPrincipalPKs
public java.util.Collection<PK> getRestrictedPrincipalPKs()
- Specified by:
getRestrictedPrincipalPKsin interfaceItemPermissionFacade
-
getPrincipalToBooleanListMap
public java.util.Map<ItemPropertyValue,java.util.List<java.lang.Boolean>> getPrincipalToBooleanListMap(java.util.List<PK> rightPKs)
Description copied from interface:ItemPermissionFacadefinds all restricted principals for a given list of user rights. further each principal is mapped to a row caontaining its setting regarding the user right at this position- Specified by:
getPrincipalToBooleanListMapin interfaceItemPermissionFacade- Parameters:
rightPKs- the user right pks to get principals and permissions for- Returns:
- a map { principalPK -> [ Boolean.TRUE == negative | Boolean.FALSE == positive | null == not set]
-
setPrincipalToBooleanListMap
public void setPrincipalToBooleanListMap(java.util.List<PK> rightPKs, java.util.Map<PK,java.util.List<java.lang.Boolean>> principalPKToBooleanListMap) throws EJBSecurityException
Description copied from interface:ItemPermissionFacadechanges restricted principals for a given list of user rights.- Specified by:
setPrincipalToBooleanListMapin interfaceItemPermissionFacade- Parameters:
rightPKs- the user right pks to get principals and permissions forprincipalPKToBooleanListMap- a map { principalPK -> [ Boolean.TRUE | Boolean.FALSE | null ]- Throws:
EJBSecurityException
-
skipSetPermission
protected boolean skipSetPermission(ACLCache acl, PK principalPK, PK permissionPK, boolean negative)
-
setPermission
public boolean setPermission(PK principalPK, PK permissionPK, boolean negative) throws EJBSecurityException
- Specified by:
setPermissionin interfaceItemPermissionFacade- Throws:
EJBSecurityException
-
setPermissions
public boolean setPermissions(java.util.Collection<PermissionContainer> permissions) throws EJBSecurityException
- Specified by:
setPermissionsin interfaceItemPermissionFacade- Throws:
EJBSecurityException
-
skipRemovePermission
protected boolean skipRemovePermission(ACLCache acl, PK principalPK, PK permissionPK)
-
removePermission
public boolean removePermission(PK principalPK, PK permissionPK) throws EJBSecurityException
- Specified by:
removePermissionin interfaceItemPermissionFacade- Throws:
EJBSecurityException
-
removePermissions
public boolean removePermissions(java.util.Collection<PermissionContainer> permissions) throws EJBSecurityException
- Specified by:
removePermissionsin interfaceItemPermissionFacade- Throws:
EJBSecurityException
-
checkItemPermission
public int checkItemPermission(PK principalPK, PK permissionPK)
The return value for checkPermission(...) if no permission was set, or positive and negative settings were found.- Specified by:
checkItemPermissionin interfaceItemPermissionFacade
-
getPermissionPKs
public java.util.Collection<PK> getPermissionPKs(PK principalPK, boolean negative)
- Specified by:
getPermissionPKsin interfaceItemPermissionFacade
-
logACLCacheChange
protected void logACLCacheChange(ACLCache aclChache)
-
ejbHomeGetItemTableName
public java.lang.String ejbHomeGetItemTableName()
home method impl
-
getItemTableNameImpl
protected abstract java.lang.String getItemTableNameImpl()
instance method impl
-
ejbHomeGetOwnJNDIName
public java.lang.String ejbHomeGetOwnJNDIName()
home method impl
-
hasJNDIName
public boolean hasJNDIName(java.lang.String jndiName)
- Specified by:
hasJNDINamein interfaceItemRemote
-
getOwnJNDIName
public abstract java.lang.String getOwnJNDIName()
instance method impl- Specified by:
getOwnJNDINamein interfaceItemHome- Returns:
- the item's JNDI name
-
needsStoring
public boolean needsStoring()
- Specified by:
needsStoringin interfaceEntityInstance
-
setNeedsStoring
public void setNeedsStoring(boolean needsStoring)
- Specified by:
setNeedsStoringin interfaceEntityInstance
-
remove
public void remove() throws YEJBException, YRemoveException- Specified by:
removein interfaceItemRemote- Throws:
YEJBExceptionYRemoveException
-
loadItemData
public void loadItemData(java.sql.ResultSet resultSet)
Description copied from interface:ItemHomestill experimental - dont use- Specified by:
loadItemDatain interfaceItemHome
-
checkOwnGlobalPermission
public int checkOwnGlobalPermission(PK permissionPK)
- Specified by:
checkOwnGlobalPermissionin interfaceItemPermissionFacade
-
getGlobalPermissionPKs
public java.util.Collection<PK> getGlobalPermissionPKs(boolean negative)
- Specified by:
getGlobalPermissionPKsin interfaceItemPermissionFacade
-
setGlobalPermission
public boolean setGlobalPermission(PK permissionPK, boolean negative) throws EJBSecurityException
- Specified by:
setGlobalPermissionin interfaceItemPermissionFacade- Throws:
EJBSecurityException
-
setGlobalPermissions
public boolean setGlobalPermissions(java.util.Collection<PermissionContainer> permissions) throws EJBSecurityException
- Specified by:
setGlobalPermissionsin interfaceItemPermissionFacade- Throws:
EJBSecurityException
-
removeGlobalPermission
public boolean removeGlobalPermission(PK permissionPK) throws EJBSecurityException
- Specified by:
removeGlobalPermissionin interfaceItemPermissionFacade- Throws:
EJBSecurityException
-
removeGlobalPermissions
public boolean removeGlobalPermissions(java.util.Collection<PermissionContainer> permissions) throws EJBSecurityException
- Specified by:
removeGlobalPermissionsin interfaceItemPermissionFacade- Throws:
EJBSecurityException
-
-