Class ChainExceptionRegistry
- java.lang.Object
-
- org.nuxeo.runtime.model.ContributionFragmentRegistry<ChainException>
-
- org.nuxeo.ecm.automation.core.exception.ChainExceptionRegistry
-
public class ChainExceptionRegistry extends ContributionFragmentRegistry<ChainException>
- Since:
- 5.7.3
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.nuxeo.runtime.model.ContributionFragmentRegistry
ContributionFragmentRegistry.Fragment<T>, ContributionFragmentRegistry.FragmentList<T>
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,ChainException>
chainExceptions
Modifiable automation filter registry.protected Map<String,ChainException>
lookup
Read only cache for automation filter lookup.-
Fields inherited from class org.nuxeo.runtime.model.ContributionFragmentRegistry
contribs
-
-
Constructor Summary
Constructors Constructor Description ChainExceptionRegistry()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addContribution(ChainException chainException, boolean replace)
ChainException
clone(ChainException orig)
CLone the given contribution objectvoid
contributionRemoved(String id, ChainException origContrib)
All the fragments in the contribution was removed.void
contributionUpdated(String id, ChainException contrib, ChainException newOrigContrib)
Adds or updates a contribution.ChainException
getChainException(String onChainId)
String
getContributionId(ChainException contrib)
Returns the contribution ID given the contribution objectboolean
isSupportingMerge()
Returns true if merge is supported.Map<String,ChainException>
lookup()
void
merge(ChainException src, ChainException dst)
Merge 'src' into 'dst'.-
Methods inherited from class org.nuxeo.runtime.model.ContributionFragmentRegistry
addContribution, addFragment, getContribution, getFragments, removeContribution, removeContribution, removeFragment, toMap
-
-
-
-
Field Detail
-
chainExceptions
protected final Map<String,ChainException> chainExceptions
Modifiable automation filter registry. Modifying the registry is using a lock and it's thread safe. Modifications are removing the cache.
-
lookup
protected volatile Map<String,ChainException> lookup
Read only cache for automation filter lookup. Thread safe. Not using synchronization if cache already created.
-
-
Method Detail
-
addContribution
public void addContribution(ChainException chainException, boolean replace) throws OperationException
- Throws:
OperationException
-
isSupportingMerge
public boolean isSupportingMerge()
Description copied from class:ContributionFragmentRegistry
Returns true if merge is supported.Hook method to be overridden if merge logics behind
Object.clone()
andContributionFragmentRegistry.merge(Object, Object)
cannot be implemented.- Overrides:
isSupportingMerge
in classContributionFragmentRegistry<ChainException>
-
getContributionId
public String getContributionId(ChainException contrib)
Description copied from class:ContributionFragmentRegistry
Returns the contribution ID given the contribution object- Specified by:
getContributionId
in classContributionFragmentRegistry<ChainException>
-
contributionUpdated
public void contributionUpdated(String id, ChainException contrib, ChainException newOrigContrib)
Description copied from class:ContributionFragmentRegistry
Adds or updates a contribution.If the contribution doesn't yet exists then it will be added, otherwise the value will be updated. If the given value is null the existing contribution must be removed.
The second parameter is the contribution that should be updated when merging, as well as stored and used. This usually represents a clone of the original contribution or a merge of multiple contribution fragments. Modifications on this object at application level will be lost on next method call on the same object id: modifications should be done in the
ContributionFragmentRegistry.merge(Object, Object)
method.The last parameter is the new contribution object, unchanged (original) which was neither cloned nor merged. This object should never be modified at application level, because it will be used each time a subsequent merge is done. Also, it never should be stored.
- Specified by:
contributionUpdated
in classContributionFragmentRegistry<ChainException>
- Parameters:
id
- - the id of the contribution that needs to be updatedcontrib
- the updated contribution object thatnewOrigContrib
- - the new, unchanged (original) contribution fragment that triggered the update.
-
contributionRemoved
public void contributionRemoved(String id, ChainException origContrib)
Description copied from class:ContributionFragmentRegistry
All the fragments in the contribution was removed. Contribution must be unregistered.The first parameter is the contribution ID that should be remove and the second parameter the original contribution fragment that as unregistered causing the contribution to be removed.
- Specified by:
contributionRemoved
in classContributionFragmentRegistry<ChainException>
-
clone
public ChainException clone(ChainException orig)
Description copied from class:ContributionFragmentRegistry
CLone the given contribution object- Specified by:
clone
in classContributionFragmentRegistry<ChainException>
-
merge
public void merge(ChainException src, ChainException dst)
Description copied from class:ContributionFragmentRegistry
Merge 'src' into 'dst'. When merging only the 'dst' object is modified.- Specified by:
merge
in classContributionFragmentRegistry<ChainException>
- Parameters:
src
- the object to copy over the 'dst' objectdst
- this object is modified
-
lookup
public Map<String,ChainException> lookup()
-
getChainException
public ChainException getChainException(String onChainId)
-
-