Class DefaultModifiableModelAwareDataHolder
- java.lang.Object
-
- org.ametys.plugins.repository.data.holder.impl.DefaultModelAwareDataHolder
-
- org.ametys.plugins.repository.data.holder.impl.DefaultModifiableModelAwareDataHolder
-
- All Implemented Interfaces:
DataHolder,ModelAwareDataHolder,ModifiableDataHolder,ModifiableModelAwareDataHolder
- Direct Known Subclasses:
ModifiableContentDataHolder
public class DefaultModifiableModelAwareDataHolder extends DefaultModelAwareDataHolder implements ModifiableModelAwareDataHolder
Default implementation for modifiable data holder with model
-
-
Field Summary
Fields Modifier and Type Field Description private static String__TEMP_SUFFIXprotected Optional<? extends ModifiableModelAwareDataHolder>_modifiableParentParent of the currentDataHolderprotected ModifiableRepositoryData_modifiableRepositoryDataRepository data to use to store data in the repositoryprotected ModifiableModelAwareDataHolder_modifiableRootRootDataHolder-
Fields inherited from class org.ametys.plugins.repository.data.holder.impl.DefaultModelAwareDataHolder
_itemContainers, _parent, _repositoryData, _root
-
Fields inherited from interface org.ametys.plugins.repository.data.holder.ModelAwareDataHolder
ALTERNATIVE_SUFFIX, COMMENTS_SUFFIX, STATUS_SUFFIX
-
-
Constructor Summary
Constructors Constructor Description DefaultModifiableModelAwareDataHolder(ModifiableRepositoryData repositoryData, Collection<? extends ModelItemContainer> itemContainers)Creates a modifiable default model aware data holderDefaultModifiableModelAwareDataHolder(ModifiableRepositoryData repositoryData, Optional<? extends ModifiableModelAwareDataHolder> parent, Optional<? extends ModifiableModelAwareDataHolder> root, Collection<? extends ModelItemContainer> itemContainers)Creates a modifiable default model aware data holderDefaultModifiableModelAwareDataHolder(ModifiableRepositoryData repositoryData, Optional<? extends ModifiableModelAwareDataHolder> parent, Optional<? extends ModifiableModelAwareDataHolder> root, ModelItemContainer... itemContainers)Creates a modifiable default model aware data holderDefaultModifiableModelAwareDataHolder(ModifiableRepositoryData repositoryData, ModelItemContainer... itemContainers)Creates a modifiable default model aware data holder
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private Object_appendArrayValues(Object originalValues, Object valuesToAppend, ElementType type)protected <T extends SynchronizationResult>
T_createSetValueResultInstance()Creates an instance ofSynchronizationResultprotected <T extends SynchronizationContext>
T_createSynchronizationContextInstance()Creates an instance ofSynchronizationContextprivate void_doRemoveValue(String dataName, ValueContext context)private void_fillViewItemContainerFromValues(Map<String,Object> values, ViewItemContainer viewItemContainer, Collection<? extends ModelItemContainer> modelItemContainers)private void_fillViewItemContainerFromValues(Map<String,Object> values, ViewItemContainer viewItemContainer, ModelItemContainer modelItemContainer)private ModifiableModelAwareComposite_getComposite(String compositePath, boolean createNew, Optional<ExternalizableDataProvider.ExternalizableDataStatus> status)protected ModifiableModelAwareComposite_getComposite(String name, CompositeDefinition compositeDefinition)Retrieves the composite with the given nameprotected ModifiableModelAwareComposite_getComposite(String name, CompositeDefinition compositeDefinition, boolean createNew)Retrieves the composite with the given nameprotected Class_getCompositeClass()Retrieves the class of the managed compositesprivate ModifiableModelAwareRepeater_getRepeater(String repeaterPath, boolean createNew, Optional<ExternalizableDataProvider.ExternalizableDataStatus> status)protected ModifiableModelAwareRepeater_getRepeater(String name, RepeaterDefinition repeaterDefinition)Retrieves the repeater with the given nameprotected ModifiableModelAwareRepeater_getRepeater(String name, RepeaterDefinition repeaterDefinition, boolean createNew)Retrieves the repeater with the given nameprotected Class_getRepeaterClass()Retrieves the class of the managed repeatersprotected Class_getRepeaterEntryClass()Retrieves the class of the managed repeater entriesprivate Object_getValuesInArrayFromSynchronizableValue(SynchronizableValue value)private Object_removeArrayValues(Object originalValues, Object valuesToRemove, ElementType type)private void_removeExternalizableMetadataIfExists(ModifiableRepositoryData repositoryData, String dataName)protected void_removeValue(String dataPath, ValueContext context)Removes the stored value of the data at the given pathprotected <T extends SynchronizationResult>
T_removeValueForSynchronize(String dataName, ValueContext context)Removes the stored value of the data with the given nameprivate void_setElementValue(ElementDefinition defintion, String dataName, Object value)private void_setStatus(String dataPath, CompositeDefinition compositeDefinition)private void_setStatus(String dataPath, RepeaterDefinition repeaterDefinition)private void_setStatus(String dataName, ElementDefinition elementDefinition)protected void_setValue(String dataPath, Object value, ValueContext context)Sets the value of the data at the given pathprotected <T extends SynchronizationResult>
T_setValueForSynchronize(String dataName, SynchronizableValue value, ValueContext context)Sets the value of the data with the given nameprivate <T extends SynchronizationResult>
T_synchronizeElement(ViewElement viewElement, Map<String,Object> values, SynchronizationContext synchronizationContext)private <T extends SynchronizationResult>
T_synchronizeGroup(ModelViewItemGroup modelViewItemGroup, Map<String,Object> values, SynchronizationContext synchronizationContext)private <T extends SynchronizationResult>
T_synchronizeValues(ViewItemContainer viewItemContainer, Map<String,Object> values, SynchronizationContext context)ModifiableModelAwareCompositegetComposite(String compositePath)Retrieves the composite at the given pathModifiableModelAwareCompositegetComposite(String compositePath, boolean createNew)Retrieves the composite at the given pathModifiableModelAwareCompositegetExternalComposite(String compositePath)Retrieves the external composite at the given pathModifiableModelAwareCompositegetExternalComposite(String compositePath, boolean createNew)Retrieves the external composite at the given pathModifiableModelAwareRepeatergetExternalRepeater(String repeaterPath)Retrieves the external repeater at the given pathModifiableModelAwareRepeatergetExternalRepeater(String repeaterPath, boolean createNew)Retrieves the external repeater at the given pathModifiableModelAwareCompositegetLocalComposite(String compositePath)Retrieves the local composite at the given pathModifiableModelAwareCompositegetLocalComposite(String compositePath, boolean createNew)Retrieves the local composite at the given pathModifiableModelAwareRepeatergetLocalRepeater(String repeaterPath)Retrieves the local repeater at the given pathModifiableModelAwareRepeatergetLocalRepeater(String repeaterPath, boolean createNew)Retrieves the local repeater at the given pathOptional<? extends ModifiableModelAwareDataHolder>getParentDataHolder()Retrieves the optional parent of the currentDataHolderThere can be no parent if the currentDataHolderis the rootModifiableModelAwareRepeatergetRepeater(String repeaterPath)Retrieves the repeater at the given pathModifiableModelAwareRepeatergetRepeater(String repeaterPath, boolean createNew)Retrieves the repeater at the given pathModifiableRepositoryDatagetRepositoryData()Retrieves the repository data used by thisDataHolderModifiableModelAwareDataHoldergetRootDataHolder()Retrieves theDataHolderthat is the root of the current onevoidremoveExternalValue(String dataPath)Removes the external value of the data at the given pathvoidremoveLocalValue(String dataPath)Removes the local value of the data at the given pathvoidremoveValue(String dataPath)Removes the stored value of the data at the given pathvoidsetComments(String dataName, List<DataComment> comments)Set the comments of the data with the given namevoidsetExternalValue(String dataPath, Object externalValue)Sets the external value of the data at the given pathvoidsetLocalValue(String dataPath, Object localValue)Sets the local value of the data at the given pathvoidsetStatus(String dataPath, ExternalizableDataProvider.ExternalizableDataStatus status)Set the status of the data at the given pathvoidsetValue(String dataPath, Object value)Sets the value of the data at the given path<T extends SynchronizationResult>
TsynchronizeValues(Map<String,Object> values)Synchronizes the given values with the current ones<T extends SynchronizationResult>
TsynchronizeValues(Map<String,Object> values, SynchronizationContext context)Synchronizes the given values with the current ones<T extends SynchronizationResult>
TsynchronizeValues(ViewItemContainer viewItemContainer, Map<String,Object> values)Synchronizes the given values with the current ones<T extends SynchronizationResult>
TsynchronizeValues(ViewItemContainer viewItemContainer, Map<String,Object> values, SynchronizationContext context)Synchronizes the given values with the currentModifiableModelAwareDataHolder's ones-
Methods inherited from class org.ametys.plugins.repository.data.holder.impl.DefaultModelAwareDataHolder
dataToSAX, getComments, getDataNames, getDefinition, getExternalValue, getLocalValue, getModel, getStatus, getValue, getValue, hasComments, hasDefinition, hasExternalValue, hasLocalValue, hasNonEmptyExternalValue, hasNonEmptyLocalValue, hasNonEmptyValue, hasValue
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.ametys.plugins.repository.data.holder.DataHolder
copyTo, dataToSAX, dataToSAX
-
Methods inherited from interface org.ametys.plugins.repository.data.holder.ModelAwareDataHolder
commentsToSAX, dataToMap, dataToMap, dataToMap, dataToMap, dataToSAX, dataToSAX, dataToSAX, dataToSAX, dataToSAXForEdition, getComments, getDataNames, getDefinition, getExternalValue, getLocalValue, getModel, getStatus, getType, getValue, getValue, getValue, hasComments, hasDefinition, hasExternalValue, hasLocalValue, hasNonEmptyExternalValue, hasNonEmptyLocalValue, hasNonEmptyValue, hasValue, isMultiple
-
-
-
-
Field Detail
-
__TEMP_SUFFIX
private static final String __TEMP_SUFFIX
- See Also:
- Constant Field Values
-
_modifiableRepositoryData
protected ModifiableRepositoryData _modifiableRepositoryData
Repository data to use to store data in the repository
-
_modifiableParent
protected Optional<? extends ModifiableModelAwareDataHolder> _modifiableParent
Parent of the currentDataHolder
-
_modifiableRoot
protected ModifiableModelAwareDataHolder _modifiableRoot
RootDataHolder
-
-
Constructor Detail
-
DefaultModifiableModelAwareDataHolder
public DefaultModifiableModelAwareDataHolder(ModifiableRepositoryData repositoryData, ModelItemContainer... itemContainers)
Creates a modifiable default model aware data holder- Parameters:
repositoryData- the repository data to useitemContainers- the model containers to use to get information about definitions. Must match the given repository data. A repository data can have several item containers. For example, a content can have several content types.
-
DefaultModifiableModelAwareDataHolder
public DefaultModifiableModelAwareDataHolder(ModifiableRepositoryData repositoryData, Collection<? extends ModelItemContainer> itemContainers)
Creates a modifiable default model aware data holder- Parameters:
repositoryData- the repository data to useitemContainers- the model containers to use to get information about definitions. Must match the given repository data. A repository data can have several item containers. For example, a content can have several content types.
-
DefaultModifiableModelAwareDataHolder
public DefaultModifiableModelAwareDataHolder(ModifiableRepositoryData repositoryData, Optional<? extends ModifiableModelAwareDataHolder> parent, Optional<? extends ModifiableModelAwareDataHolder> root, ModelItemContainer... itemContainers)
Creates a modifiable default model aware data holder- Parameters:
repositoryData- the repository data to useparent- the parent of the createdDataHolder, empty if the createdDataHolderis the rootDataHolderroot- the rootDataAwareAmetysObjectitemContainers- the model containers to use to get information about definitions. Must match the given repository data. A repository data can have several item containers. For example, a content can have several content types.
-
DefaultModifiableModelAwareDataHolder
public DefaultModifiableModelAwareDataHolder(ModifiableRepositoryData repositoryData, Optional<? extends ModifiableModelAwareDataHolder> parent, Optional<? extends ModifiableModelAwareDataHolder> root, Collection<? extends ModelItemContainer> itemContainers)
Creates a modifiable default model aware data holder- Parameters:
repositoryData- the repository data to useparent- the parent of the createdDataHolder, empty if the createdDataHolderis the rootDataHolderroot- the rootDataAwareAmetysObjectitemContainers- the model containers to use to get information about definitions. Must match the given repository data. A repository data can have several item containers. For example, a content can have several content types.
-
-
Method Detail
-
getComposite
public ModifiableModelAwareComposite getComposite(String compositePath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the composite at the given path- Specified by:
getCompositein interfaceDataHolder- Specified by:
getCompositein interfaceModelAwareDataHolder- Specified by:
getCompositein interfaceModifiableDataHolder- Specified by:
getCompositein interfaceModifiableModelAwareDataHolder- Overrides:
getCompositein classDefaultModelAwareDataHolder- Parameters:
compositePath- path of the composite to retrieve- Returns:
- the composite or
nullif not exists or is empty - Throws:
IllegalArgumentException- if the given composite path is null or emptyUndefinedItemPathException- if the given composite path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a compositeBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getLocalComposite
public ModifiableModelAwareComposite getLocalComposite(String compositePath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the local composite at the given path- Specified by:
getLocalCompositein interfaceModelAwareDataHolder- Specified by:
getLocalCompositein interfaceModifiableModelAwareDataHolder- Overrides:
getLocalCompositein classDefaultModelAwareDataHolder- Parameters:
compositePath- path of the externalizable composite to retrieve- Returns:
- the composite or
nullif not exists or is empty - Throws:
IllegalArgumentException- if the given composite path is null or emptyUndefinedItemPathException- if the given composite path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a compositeBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getExternalComposite
public ModifiableModelAwareComposite getExternalComposite(String compositePath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the external composite at the given path- Specified by:
getExternalCompositein interfaceModelAwareDataHolder- Specified by:
getExternalCompositein interfaceModifiableModelAwareDataHolder- Overrides:
getExternalCompositein classDefaultModelAwareDataHolder- Parameters:
compositePath- path of the externalizable composite to retrieve- Returns:
- the composite or
nullif not exists or is empty - Throws:
IllegalArgumentException- if the given composite path is null or emptyUndefinedItemPathException- if the given composite path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a compositeBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_getComposite
protected ModifiableModelAwareComposite _getComposite(String name, CompositeDefinition compositeDefinition) throws BadItemTypeException
Description copied from class:DefaultModelAwareDataHolderRetrieves the composite with the given name- Overrides:
_getCompositein classDefaultModelAwareDataHolder- Parameters:
name- name of the composite to retrievecompositeDefinition- the definition of the composite to retrieve- Returns:
- the composite
- Throws:
BadItemTypeException- if the value stored in the repository with the given name is not a composite
-
getRepeater
public ModifiableModelAwareRepeater getRepeater(String repeaterPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the repeater at the given path- Specified by:
getRepeaterin interfaceModelAwareDataHolder- Specified by:
getRepeaterin interfaceModifiableModelAwareDataHolder- Overrides:
getRepeaterin classDefaultModelAwareDataHolder- Parameters:
repeaterPath- path of the repeater to retrieve- Returns:
- the repeater or
nullif not exists or is empty - Throws:
IllegalArgumentException- if the given repeater path is null or emptyUndefinedItemPathException- if the given repeater path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a repeaterBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getLocalRepeater
public ModifiableModelAwareRepeater getLocalRepeater(String repeaterPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the local repeater at the given path- Specified by:
getLocalRepeaterin interfaceModelAwareDataHolder- Specified by:
getLocalRepeaterin interfaceModifiableModelAwareDataHolder- Overrides:
getLocalRepeaterin classDefaultModelAwareDataHolder- Parameters:
repeaterPath- path of the externalizable repeater to retrieve- Returns:
- the repeater or
nullif not exists or is empty - Throws:
IllegalArgumentException- if the given repeater path is null or emptyUndefinedItemPathException- if the given repeater path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a repeaterBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getExternalRepeater
public ModifiableModelAwareRepeater getExternalRepeater(String repeaterPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the external repeater at the given path- Specified by:
getExternalRepeaterin interfaceModelAwareDataHolder- Specified by:
getExternalRepeaterin interfaceModifiableModelAwareDataHolder- Overrides:
getExternalRepeaterin classDefaultModelAwareDataHolder- Parameters:
repeaterPath- path of the externalizable repeater to retrieve- Returns:
- the repeater or
nullif not exists or is empty - Throws:
IllegalArgumentException- if the given repeater path is null or emptyUndefinedItemPathException- if the given repeater path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a repeaterBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_getRepeater
protected ModifiableModelAwareRepeater _getRepeater(String name, RepeaterDefinition repeaterDefinition) throws BadItemTypeException
Description copied from class:DefaultModelAwareDataHolderRetrieves the repeater with the given name- Overrides:
_getRepeaterin classDefaultModelAwareDataHolder- Parameters:
name- name of the repeater to retrieverepeaterDefinition- the definition of the repeater to retrieve- Returns:
- the repeater
- Throws:
BadItemTypeException- if the value stored in the repository with the given name is not a repeater
-
getComposite
public ModifiableModelAwareComposite getComposite(String compositePath, boolean createNew) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderRetrieves the composite at the given path- Specified by:
getCompositein interfaceModifiableDataHolder- Specified by:
getCompositein interfaceModifiableModelAwareDataHolder- Parameters:
compositePath- path of the composite to retrievecreateNew-trueto create the composite if it does not exist,falseotherwise- Returns:
- the composite or
nullif createNew isfalseand value not exists or is empty - Throws:
IllegalArgumentException- if the given composite path is null or emptyUndefinedItemPathException- if the given composite path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a compositeBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getLocalComposite
public ModifiableModelAwareComposite getLocalComposite(String compositePath, boolean createNew) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderRetrieves the local composite at the given path- Specified by:
getLocalCompositein interfaceModifiableModelAwareDataHolder- Parameters:
compositePath- path of the externalizable composite to retrievecreateNew-trueto create the composite if it does not exist,falseotherwise- Returns:
- the composite or
nullif createNew isfalseand value not exists or is empty - Throws:
IllegalArgumentException- if the given composite path is null or emptyUndefinedItemPathException- if the given composite path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a compositeBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getExternalComposite
public ModifiableModelAwareComposite getExternalComposite(String compositePath, boolean createNew) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderRetrieves the external composite at the given path- Specified by:
getExternalCompositein interfaceModifiableModelAwareDataHolder- Parameters:
compositePath- path of the externalizable composite to retrievecreateNew-trueto create the composite if it does not exist,falseotherwise- Returns:
- the composite or
nullif createNew isfalseand value not exists or is empty - Throws:
IllegalArgumentException- if the given composite path is null or emptyUndefinedItemPathException- if the given composite path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a compositeBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_getComposite
private ModifiableModelAwareComposite _getComposite(String compositePath, boolean createNew, Optional<ExternalizableDataProvider.ExternalizableDataStatus> status) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
-
_getComposite
protected ModifiableModelAwareComposite _getComposite(String name, CompositeDefinition compositeDefinition, boolean createNew) throws BadItemTypeException
Retrieves the composite with the given name- Parameters:
name- name of the composite to retrievecompositeDefinition- the definition of the composite to retrievecreateNew-trueto create the repeater if it does not exist,falseotherwise- Returns:
- the composite
- Throws:
BadItemTypeException- if the value stored in the repository with the given name is not a composite
-
getRepeater
public ModifiableModelAwareRepeater getRepeater(String repeaterPath, boolean createNew) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderRetrieves the repeater at the given path- Specified by:
getRepeaterin interfaceModifiableModelAwareDataHolder- Parameters:
repeaterPath- path of the repeater to retrievecreateNew-trueto create the repeater if it does not exist,falseotherwise- Returns:
- the repeater or
nullif createNew isfalseand value not exists or is empty - Throws:
IllegalArgumentException- if the given repeater path is null or emptyUndefinedItemPathException- if the given composite path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a repeaterBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getLocalRepeater
public ModifiableModelAwareRepeater getLocalRepeater(String repeaterPath, boolean createNew) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderRetrieves the local repeater at the given path- Specified by:
getLocalRepeaterin interfaceModifiableModelAwareDataHolder- Parameters:
repeaterPath- path of the externalizable repeater to retrievecreateNew-trueto create the repeater if it does not exist,falseotherwise- Returns:
- the repeater or
nullif createNew isfalseand value not exists or is empty - Throws:
IllegalArgumentException- if the given repeater path is null or emptyUndefinedItemPathException- if the given composite path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a repeaterBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getExternalRepeater
public ModifiableModelAwareRepeater getExternalRepeater(String repeaterPath, boolean createNew) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderRetrieves the external repeater at the given path- Specified by:
getExternalRepeaterin interfaceModifiableModelAwareDataHolder- Parameters:
repeaterPath- path of the externalizable repeater to retrievecreateNew-trueto create the repeater if it does not exist,falseotherwise- Returns:
- the repeater or
nullif createNew isfalseand value not exists or is empty - Throws:
IllegalArgumentException- if the given repeater path is null or emptyUndefinedItemPathException- if the given composite path is not defined by the modelBadItemTypeException- if the stored value at the given path is not a repeaterBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_getRepeater
private ModifiableModelAwareRepeater _getRepeater(String repeaterPath, boolean createNew, Optional<ExternalizableDataProvider.ExternalizableDataStatus> status) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
-
_getRepeater
protected ModifiableModelAwareRepeater _getRepeater(String name, RepeaterDefinition repeaterDefinition, boolean createNew) throws BadItemTypeException
Retrieves the repeater with the given name- Parameters:
name- name of the repeater to retrieverepeaterDefinition- the definition of the repeater to retrievecreateNew-trueto create the repeater if it does not exist,falseotherwise- Returns:
- the repeater
- Throws:
BadItemTypeException- if the value stored in the repository with the given name is not a repeater
-
_getRepeaterEntryClass
protected Class _getRepeaterEntryClass()
Description copied from class:DefaultModelAwareDataHolderRetrieves the class of the managed repeater entries- Overrides:
_getRepeaterEntryClassin classDefaultModelAwareDataHolder- Returns:
- the class of the managed repeater entries
-
_getRepeaterClass
protected Class _getRepeaterClass()
Description copied from class:DefaultModelAwareDataHolderRetrieves the class of the managed repeaters- Overrides:
_getRepeaterClassin classDefaultModelAwareDataHolder- Returns:
- the class of the managed repeaters
-
_getCompositeClass
protected Class _getCompositeClass()
Description copied from class:DefaultModelAwareDataHolderRetrieves the class of the managed composites- Overrides:
_getCompositeClassin classDefaultModelAwareDataHolder- Returns:
- the class of the managed composites
-
synchronizeValues
public <T extends SynchronizationResult> T synchronizeValues(Map<String,Object> values) throws UndefinedItemPathException, BadItemTypeException, IOException
Description copied from interface:ModifiableModelAwareDataHolderSynchronizes the given values with the current ones- Specified by:
synchronizeValuesin interfaceModifiableModelAwareDataHolder- Type Parameters:
T- the type of theSynchronizationResult- Parameters:
values- the values to synchronize- Returns:
- the
SynchronizationResult - Throws:
UndefinedItemPathException- if a key in the given Map refers to a data that is not defined by the modelBadItemTypeException- if the type defined by the model of one of the Map's key doesn't match the corresponding valueIOException- if an error occurs while synchronizing I/O data
-
synchronizeValues
public <T extends SynchronizationResult> T synchronizeValues(Map<String,Object> values, SynchronizationContext context) throws UndefinedItemPathException, BadItemTypeException, IOException
Description copied from interface:ModifiableModelAwareDataHolderSynchronizes the given values with the current ones- Specified by:
synchronizeValuesin interfaceModifiableModelAwareDataHolder- Type Parameters:
T- the type of theSynchronizationResult- Parameters:
values- the values to synchronizecontext- the context of the synchronization- Returns:
- the
SynchronizationResult - Throws:
UndefinedItemPathException- if a key in the given Map refers to a data that is not defined by the modelBadItemTypeException- if the type defined by the model of one of the Map's key doesn't match the corresponding valueIOException- if an error occurs while synchronizing I/O data
-
_fillViewItemContainerFromValues
private void _fillViewItemContainerFromValues(Map<String,Object> values, ViewItemContainer viewItemContainer, ModelItemContainer modelItemContainer)
-
_fillViewItemContainerFromValues
private void _fillViewItemContainerFromValues(Map<String,Object> values, ViewItemContainer viewItemContainer, Collection<? extends ModelItemContainer> modelItemContainers)
-
synchronizeValues
public <T extends SynchronizationResult> T synchronizeValues(ViewItemContainer viewItemContainer, Map<String,Object> values) throws UndefinedItemPathException, BadItemTypeException, IOException
Description copied from interface:ModifiableModelAwareDataHolderSynchronizes the given values with the current ones- Specified by:
synchronizeValuesin interfaceModifiableModelAwareDataHolder- Type Parameters:
T- the type of theSynchronizationResult- Parameters:
viewItemContainer- TheViewItemContainercontaining all items to synchronizevalues- the values to synchronize- Returns:
- the
SynchronizationResult - Throws:
UndefinedItemPathException- if a key in the given Map refers to a data that is not defined by the modelBadItemTypeException- if the type defined by the model of one of the Map's key doesn't match the corresponding valueIOException- if an error occurs while synchronizing I/O data
-
synchronizeValues
public <T extends SynchronizationResult> T synchronizeValues(ViewItemContainer viewItemContainer, Map<String,Object> values, SynchronizationContext context) throws UndefinedItemPathException, BadItemTypeException, IOException
Description copied from interface:ModifiableModelAwareDataHolderSynchronizes the given values with the currentModifiableModelAwareDataHolder's ones- Specified by:
synchronizeValuesin interfaceModifiableModelAwareDataHolder- Type Parameters:
T- the type of theSynchronizationResult- Parameters:
viewItemContainer- TheViewItemContainercontaining all items to synchronizevalues- the values to synchronizecontext- the context of the synchronization- Returns:
- the
SynchronizationResult - Throws:
UndefinedItemPathException- if a key in the given Map refers to a data that is not defined by the modelBadItemTypeException- if the type defined by the model of one of the Map's key doesn't match the corresponding valueIOException- if an error occurs while synchronizing I/O data
-
_synchronizeValues
private <T extends SynchronizationResult> T _synchronizeValues(ViewItemContainer viewItemContainer, Map<String,Object> values, SynchronizationContext context) throws UndefinedItemPathException, BadItemTypeException, IOException
-
_synchronizeGroup
private <T extends SynchronizationResult> T _synchronizeGroup(ModelViewItemGroup modelViewItemGroup, Map<String,Object> values, SynchronizationContext synchronizationContext) throws IOException
- Throws:
IOException
-
_synchronizeElement
private <T extends SynchronizationResult> T _synchronizeElement(ViewElement viewElement, Map<String,Object> values, SynchronizationContext synchronizationContext) throws IOException
- Throws:
IOException
-
_setValueForSynchronize
protected <T extends SynchronizationResult> T _setValueForSynchronize(String dataName, SynchronizableValue value, ValueContext context) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException, IOException
Sets the value of the data with the given name- Type Parameters:
T- the type of theSynchronizationResult- Parameters:
dataName- name of the datavalue- the value to set. Givenullto empty the value.context- context of the data to set- Returns:
- the
SynchronizationResult - Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- if the given data path is not defined by the modelBadItemTypeException- if the type defined by the model doesn't match the given value to setBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multipleIOException- if an IO error occurs while comparing values
-
_getValuesInArrayFromSynchronizableValue
private Object _getValuesInArrayFromSynchronizableValue(SynchronizableValue value)
-
_removeArrayValues
private Object _removeArrayValues(Object originalValues, Object valuesToRemove, ElementType type) throws IOException
- Throws:
IOException
-
_appendArrayValues
private Object _appendArrayValues(Object originalValues, Object valuesToAppend, ElementType type)
-
_removeValueForSynchronize
protected <T extends SynchronizationResult> T _removeValueForSynchronize(String dataName, ValueContext context) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, UnknownDataException, BadDataPathCardinalityException
Removes the stored value of the data with the given name- Type Parameters:
T- the type of theSynchronizationResult- Parameters:
dataName- name of the datacontext- context of the data to remove- Returns:
- the
SynchronizationResult - Throws:
IllegalArgumentException- if the given data path is null or emptyUnknownDataException- if the value at the given data path does not existBadItemTypeException- if the value of the parent of the given path is not an item containerUndefinedItemPathException- if the given data path is not defined by the modelBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
setValue
public void setValue(String dataPath, Object value) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderSets the value of the data at the given path- Specified by:
setValuein interfaceModifiableModelAwareDataHolder- Parameters:
dataPath- path of the datavalue- the value to set. Givenullto empty the value.- Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- if the given data path is not defined by the modelBadItemTypeException- if the type defined by the model doesn't match the given value to setBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
setLocalValue
public void setLocalValue(String dataPath, Object localValue) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderSets the local value of the data at the given path- Specified by:
setLocalValuein interfaceModifiableModelAwareDataHolder- Parameters:
dataPath- path of the externalizable datalocalValue- the local value to set. Givenullto empty the value.- Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- if the given data path is not defined by the modelBadItemTypeException- if the type defined by the model doesn't match the given value to setBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
setExternalValue
public void setExternalValue(String dataPath, Object externalValue) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderSets the external value of the data at the given path- Specified by:
setExternalValuein interfaceModifiableModelAwareDataHolder- Parameters:
dataPath- path of the externalizable dataexternalValue- the external value to set. Givenullto empty the value.- Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- if the given data path is not defined by the modelBadItemTypeException- if the type defined by the model doesn't match the given value to setBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_setValue
protected void _setValue(String dataPath, Object value, ValueContext context) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Sets the value of the data at the given path- Parameters:
dataPath- path of the datavalue- the value to set. Givenullto empty the value.context- context of the data to set- Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- if the given data path is not defined by the modelBadItemTypeException- if the type defined by the model doesn't match the given value to setBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_setElementValue
private void _setElementValue(ElementDefinition defintion, String dataName, Object value)
-
setStatus
public void setStatus(String dataPath, ExternalizableDataProvider.ExternalizableDataStatus status) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderSet the status of the data at the given path- Specified by:
setStatusin interfaceModifiableModelAwareDataHolder- Parameters:
dataPath- path of the externalizable datastatus- the new status- Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- if the given data path is not defined by the modelBadItemTypeException- if there is a type issue while getting the parent (part of the dataPath without the last segment)BadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_setStatus
private void _setStatus(String dataPath, CompositeDefinition compositeDefinition)
-
_setStatus
private void _setStatus(String dataPath, RepeaterDefinition repeaterDefinition)
-
_setStatus
private void _setStatus(String dataName, ElementDefinition elementDefinition)
-
setComments
public void setComments(String dataName, List<DataComment> comments) throws IllegalArgumentException, UndefinedItemPathException
Description copied from interface:ModifiableModelAwareDataHolderSet the comments of the data with the given name- Specified by:
setCommentsin interfaceModifiableModelAwareDataHolder- Parameters:
dataName- name of the datacomments- the comments to set- Throws:
IllegalArgumentException- if the given data name is null or emptyUndefinedItemPathException- if the given data name is not defined by the model
-
removeValue
public void removeValue(String dataPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderRemoves the stored value of the data at the given path- Specified by:
removeValuein interfaceModifiableDataHolder- Specified by:
removeValuein interfaceModifiableModelAwareDataHolder- Parameters:
dataPath- path of the data- Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- if the given data path is not defined by the modelBadItemTypeException- if the value of the parent of the given path is not an item containerBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
removeLocalValue
public void removeLocalValue(String dataPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, UnknownDataException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderRemoves the local value of the data at the given path- Specified by:
removeLocalValuein interfaceModifiableModelAwareDataHolder- Parameters:
dataPath- path of the externalizable data- Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- if the given data path is not defined by the modelBadItemTypeException- if the value of the parent of the given path is not an item containerUnknownDataException- if the value at the given data path does not existBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
removeExternalValue
public void removeExternalValue(String dataPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, UnknownDataException, BadDataPathCardinalityException
Description copied from interface:ModifiableModelAwareDataHolderRemoves the external value of the data at the given path- Specified by:
removeExternalValuein interfaceModifiableModelAwareDataHolder- Parameters:
dataPath- path of the externalizable data- Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- if the given data path is not defined by the modelBadItemTypeException- if the value of the parent of the given path is not an item containerUnknownDataException- if the value at the given data path does not existBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_removeValue
protected void _removeValue(String dataPath, ValueContext context) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, UnknownDataException, BadDataPathCardinalityException
Removes the stored value of the data at the given path- Parameters:
dataPath- path of the datacontext- context of the data to remove- Throws:
IllegalArgumentException- if the given data path is null or emptyUnknownDataException- if the value at the given data path does not existBadItemTypeException- if the value of the parent of the given path is not an item containerUndefinedItemPathException- if the given data path is not defined by the modelBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_doRemoveValue
private void _doRemoveValue(String dataName, ValueContext context)
-
_removeExternalizableMetadataIfExists
private void _removeExternalizableMetadataIfExists(ModifiableRepositoryData repositoryData, String dataName)
-
_createSynchronizationContextInstance
protected <T extends SynchronizationContext> T _createSynchronizationContextInstance()
Creates an instance ofSynchronizationContext- Type Parameters:
T- the type of theSynchronizationContext- Returns:
- the created
SynchronizationContext
-
_createSetValueResultInstance
protected <T extends SynchronizationResult> T _createSetValueResultInstance()
Creates an instance ofSynchronizationResult- Type Parameters:
T- the type of theSynchronizationResult- Returns:
- the created instance of
SynchronizationResult
-
getRepositoryData
public ModifiableRepositoryData getRepositoryData()
Description copied from interface:DataHolderRetrieves the repository data used by thisDataHolder- Specified by:
getRepositoryDatain interfaceDataHolder- Specified by:
getRepositoryDatain interfaceModifiableDataHolder- Overrides:
getRepositoryDatain classDefaultModelAwareDataHolder- Returns:
- the repository data used by this
DataHolder
-
getParentDataHolder
public Optional<? extends ModifiableModelAwareDataHolder> getParentDataHolder()
Description copied from interface:DataHolderRetrieves the optional parent of the currentDataHolderThere can be no parent if the currentDataHolderis the root- Specified by:
getParentDataHolderin interfaceDataHolder- Specified by:
getParentDataHolderin interfaceModelAwareDataHolder- Specified by:
getParentDataHolderin interfaceModifiableDataHolder- Specified by:
getParentDataHolderin interfaceModifiableModelAwareDataHolder- Overrides:
getParentDataHolderin classDefaultModelAwareDataHolder- Returns:
- the parent of the current
DataHolder
-
getRootDataHolder
public ModifiableModelAwareDataHolder getRootDataHolder()
Description copied from interface:DataHolderRetrieves theDataHolderthat is the root of the current one- Specified by:
getRootDataHolderin interfaceDataHolder- Specified by:
getRootDataHolderin interfaceModelAwareDataHolder- Specified by:
getRootDataHolderin interfaceModifiableDataHolder- Specified by:
getRootDataHolderin interfaceModifiableModelAwareDataHolder- Overrides:
getRootDataHolderin classDefaultModelAwareDataHolder- Returns:
- the root
DataHolder
-
-