@Component(value="blSandBoxHelper") public class DefaultSandBoxHelper extends Object implements SandBoxHelper
SandBoxHelper
SandBoxHelper.OriginalIdResponse
Constructor and Description |
---|
DefaultSandBoxHelper() |
Modifier and Type | Method and Description |
---|---|
Long |
getCascadedProductionStateId(Class<?> linkedObjectType,
Long requestedParent)
Find the production sandbox clone, if any, in the current site for the supplied type and primary key value.
|
SandBoxHelper.OriginalIdResponse |
getOriginalId(Class<?> type,
Long id)
Return the original id for the requested id.
|
Long |
getOriginalId(Object test) |
SandBoxHelper.OriginalIdResponse |
getProductionOriginalId(Class<?> type,
Long id)
Return the original id for the requested id as if this was a production request.
|
Long |
getProductionRecordIdIfApplicable(javax.persistence.EntityManager em,
Object startFieldValue) |
com.google.common.collect.BiMap<Long,Long> |
getSandBoxToOriginalMap(Class<?> type,
Long... originalIds)
Retrieve a map keyed by sandbox id, with the value being the matching original
item id for that sandbox item.
|
Long |
getSandBoxVersionId(Class<?> linkedObjectType,
Long requestedParent)
Return the sandbox version id for the requested original id.
|
<T> T |
getTopMostOriginalRecord(T record)
If record is sandboxable, check to see if an original version of the passed in record exists.
|
Long |
getTopmostProductionOriginalId(Class<?> type,
Long id)
Returns the topmost production id for the given type.
|
void |
ignoreCloneCache(boolean ignoreCache)
Set when you want to override caching behavior related to finding sandbox versions.
|
boolean |
isPromote()
Is the current thread involved in a promote operation?
|
boolean |
isReject()
Is the current thread involved in a reject operation?
|
boolean |
isRelatedToParentCatalogIds(Object entity,
Long... candidateRelatedIds)
Determine if the current entity is related via propagation inheritance to any of the candidate primary key
values.
|
boolean |
isReplayOperation()
Is the current thread involved in a replay operation (i.e.
|
boolean |
isSandBoxable(String className)
Whether or not the class is sandboxable
|
List<Long> |
mergeCloneIds(Class<?> type,
Long... originalIds)
Retrieve a list of values that includes the the original ids passed in and any
sandbox versions of those ids, if available.
|
void |
optionallyIncludeDeletedItemsInQueriesAndCollections(Runnable runnable,
boolean includeDeleted)
For the passed in code block (Runnable), whether or not sandbox entities marked
as deleted should be included in any results from queries or lazy collection
retrievals.
|
Long |
retrieveCascadedState(Class<?> ceilingImpl,
Long requestedParent,
javax.persistence.EntityManager em)
Find the production version of an entity in the current catalog.
|
public Long getSandBoxVersionId(Class<?> linkedObjectType, Long requestedParent)
SandBoxHelper
getSandBoxVersionId
in interface SandBoxHelper
linkedObjectType
- the type of the entity in questionrequestedParent
- the id to checkpublic Long getCascadedProductionStateId(Class<?> linkedObjectType, Long requestedParent)
SandBoxHelper
getCascadedProductionStateId
in interface SandBoxHelper
public Long retrieveCascadedState(Class<?> ceilingImpl, Long requestedParent, javax.persistence.EntityManager em)
SandBoxHelper
SandBoxHelper.getCascadedProductionStateId(Class, Long)
in that the other is only targeting the production state existing as an override in a standard site. However, in contrast,
this method will find the current production version in the current catalog related to a parent catalog version id, regardless
if the current catalog belongs to a standard site or a template site.retrieveCascadedState
in interface SandBoxHelper
public boolean isRelatedToParentCatalogIds(Object entity, Long... candidateRelatedIds)
SandBoxHelper
isRelatedToParentCatalogIds
in interface SandBoxHelper
public List<Long> mergeCloneIds(Class<?> type, Long... originalIds)
SandBoxHelper
mergeCloneIds
in interface SandBoxHelper
type
- the type of the entity in questionoriginalIds
- one or more ids values for which sandbox versions should be includedpublic com.google.common.collect.BiMap<Long,Long> getSandBoxToOriginalMap(Class<?> type, Long... originalIds)
SandBoxHelper
getSandBoxToOriginalMap
in interface SandBoxHelper
type
- the type of the entity in questionoriginalIds
- list of ids to checkpublic Long getTopmostProductionOriginalId(Class<?> type, Long id)
SandBoxHelper
Returns the topmost production id for the given type. The given id can exist anywhere in the hierarchy of production clones. The most hiearchies that can exist is this:
Production versions of entities can thus exist in 3 places: catalog1, catalog2, and the STANDARD site overrides. This supports IDs at all levels in the hierarchy, and will always return the production id from catalog1:
If no results are found for the given type and id (or the id is already the topmost production id) then id is returned.
While the example given was for catalog hierarchies, this method also supports PROFILE hierarchies for CMS data
getTopmostProductionOriginalId
in interface SandBoxHelper
type
- the class name of the entity type to get the clone forid
- a primary key anywhere in the hiearchy of overridespublic SandBoxHelper.OriginalIdResponse getOriginalId(Class<?> type, Long id)
SandBoxHelper
getOriginalId
in interface SandBoxHelper
type
- the type of the entity in questionid
- the id to checkpublic Long getOriginalId(Object test)
getOriginalId
in interface SandBoxHelper
public SandBoxHelper.OriginalIdResponse getProductionOriginalId(Class<?> type, Long id)
SandBoxHelper
getProductionOriginalId
in interface SandBoxHelper
public boolean isSandBoxable(String className)
SandBoxHelper
isSandBoxable
in interface SandBoxHelper
className
- the classname to checkpublic boolean isPromote()
SandBoxHelper
isPromote
in interface SandBoxHelper
public boolean isReject()
SandBoxHelper
isReject
in interface SandBoxHelper
public boolean isReplayOperation()
SandBoxHelper
isReplayOperation
in interface SandBoxHelper
public void optionallyIncludeDeletedItemsInQueriesAndCollections(Runnable runnable, boolean includeDeleted)
SandBoxHelper
optionallyIncludeDeletedItemsInQueriesAndCollections
in interface SandBoxHelper
runnable
- the block of code for which this setting should be in effectincludeDeleted
- whether or not to include deleted sandbox itemspublic Long getProductionRecordIdIfApplicable(javax.persistence.EntityManager em, Object startFieldValue)
getProductionRecordIdIfApplicable
in interface SandBoxHelper
public <T> T getTopMostOriginalRecord(T record)
SandBoxHelper
getTopMostOriginalRecord
in interface SandBoxHelper
record
- the entity instance to checkpublic void ignoreCloneCache(boolean ignoreCache)
SandBoxHelper
ignoreCloneCache
in interface SandBoxHelper
Copyright © 2022. All rights reserved.