Class DefaultModelAwareDataHolder
- java.lang.Object
-
- org.ametys.plugins.repository.data.holder.impl.DefaultModelAwareDataHolder
-
- All Implemented Interfaces:
DataHolder,ModelAwareDataHolder
- Direct Known Subclasses:
DefaultModifiableModelAwareDataHolder
public class DefaultModelAwareDataHolder extends Object implements ModelAwareDataHolder
Default implementation for data holder with model
-
-
Field Summary
Fields Modifier and Type Field Description protected Collection<? extends ModelItemContainer>_itemContainersModel containers to use to get information about definitionsprotected Optional<? extends ModelAwareDataHolder>_parentParent of the currentDataHolderprotected RepositoryData_repositoryDataRepository data to use to store data in the repositoryprotected ModelAwareDataHolder_rootRootDataHolder-
Fields inherited from interface org.ametys.plugins.repository.data.holder.ModelAwareDataHolder
ALTERNATIVE_SUFFIX, COMMENTS_SUFFIX, STATUS_SUFFIX
-
-
Constructor Summary
Constructors Constructor Description DefaultModelAwareDataHolder(RepositoryData repositoryData, Collection<? extends ModelItemContainer> itemContainers)Creates a default model aware data holderDefaultModelAwareDataHolder(RepositoryData repositoryData, Optional<? extends ModelAwareDataHolder> parent, Optional<? extends ModelAwareDataHolder> root, Collection<? extends ModelItemContainer> itemContainers)Creates a default model aware data holderDefaultModelAwareDataHolder(RepositoryData repositoryData, Optional<? extends ModelAwareDataHolder> parent, Optional<? extends ModelAwareDataHolder> root, ModelItemContainer... itemContainers)Creates a default model aware data holderDefaultModelAwareDataHolder(RepositoryData repositoryData, ModelItemContainer... itemContainers)Creates a default model aware data holder
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void_checkDefinition(String dataPath, String errorMsg)Check definition for data pathprotected ModelAwareComposite_getComposite(String name, CompositeDefinition compositeDefinition)Retrieves the composite with the given nameprotected Class_getCompositeClass()Retrieves the class of the managed compositesprotected String_getFinalDataName(String dataName, Optional<ExternalizableDataProvider.ExternalizableDataStatus> status)Retrieves the name of the data according to the given statusprotected ModelAwareRepeater_getRepeater(String name, RepeaterDefinition repeaterDefinition)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 entriesvoiddataToSAX(ContentHandler contentHandler, String dataPath, DataContext context)Generates SAX events for the data at the given data path in the currentDataHolderDo not generate any event if there is no values at the given pathList<DataComment>getComments(String dataName)Retrieve the comments of the data with the given nameModelAwareCompositegetComposite(String compositePath)Retrieves the composite at the given pathCollection<String>getDataNames()Retrieves the names of data contained by this data holder Retrieves only the data at first level, does not check composite dataModelItemgetDefinition(String path)Retrieves the definition of the data at the given pathModelAwareCompositegetExternalComposite(String compositePath)Retrieves the external composite at the given pathModelAwareRepeatergetExternalRepeater(String repeaterPath)Retrieves the external repeater at the given path<T> TgetExternalValue(String dataPath)Retrieves the external value of the data at the given pathModelAwareCompositegetLocalComposite(String compositePath)Retrieves the local composite at the given pathModelAwareRepeatergetLocalRepeater(String repeaterPath)Retrieves the local repeater at the given path<T> TgetLocalValue(String dataPath)Retrieves the local value of the data at the given pathCollection<? extends ModelItemContainer>getModel()Retrieves the data holder's modelOptional<? extends ModelAwareDataHolder>getParentDataHolder()Retrieves the optional parent of the currentDataHolderThere can be no parent if the currentDataHolderis the rootModelAwareRepeatergetRepeater(String repeaterPath)Retrieves the repeater at the given pathRepositoryDatagetRepositoryData()Retrieves the repository data used by thisDataHolderModelAwareDataHoldergetRootDataHolder()Retrieves theDataHolderthat is the root of the current oneExternalizableDataProvider.ExternalizableDataStatusgetStatus(String dataPath)Retrieves the status of the externalizable data at the given path Warning: This method won't check that your data is externalizable.<T> TgetValue(String dataPath, boolean allowMultiValuedPathSegments)Retrieves the value of the data at the given path<T> TgetValue(String dataPath, boolean useDefaultFromModel, T defaultValue)Retrieves the value of the data at the given path, or the default value The returned value is one of those ones, in the order: The value of the data if exists and is not empty The default value from the model if useDefaultFromModel istrueand there is a default value defined by the model The given default valuebooleanhasComments(String dataName)Checks if there is are comments on the data with the given namebooleanhasDefinition(String path)Checks if there is a definition at the given pathbooleanhasExternalValue(String dataPath)Checks if there is a non empty external value for the data at the given pathbooleanhasExternalValueOrEmpty(String dataPath)Checks if there is an external value for the data at the given pathbooleanhasLocalValue(String dataPath)Checks if there is a non empty local value for the data at the given pathbooleanhasLocalValueOrEmpty(String dataPath)Checks if there is a local value for the data at the given pathbooleanhasValue(String dataPath)Checks if there is a non empty value for the data at the given pathbooleanhasValueOrEmpty(String dataPath)Checks if there is a value, even empty, for the data at the given path-
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
-
Methods inherited from interface org.ametys.plugins.repository.data.holder.ModelAwareDataHolder
commentsToSAX, dataToMap, dataToMap, dataToMap, dataToMap, dataToSAX, dataToSAX, dataToSAX, dataToSAX, dataToSAXForEdition, getType, getValue, isMultiple
-
-
-
-
Field Detail
-
_repositoryData
protected RepositoryData _repositoryData
Repository data to use to store data in the repository
-
_parent
protected Optional<? extends ModelAwareDataHolder> _parent
Parent of the currentDataHolder
-
_root
protected ModelAwareDataHolder _root
RootDataHolder
-
_itemContainers
protected Collection<? extends ModelItemContainer> _itemContainers
Model containers to use to get information about definitions
-
-
Constructor Detail
-
DefaultModelAwareDataHolder
public DefaultModelAwareDataHolder(RepositoryData repositoryData, ModelItemContainer... itemContainers)
Creates a 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.
-
DefaultModelAwareDataHolder
public DefaultModelAwareDataHolder(RepositoryData repositoryData, Collection<? extends ModelItemContainer> itemContainers)
Creates a 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.
-
DefaultModelAwareDataHolder
public DefaultModelAwareDataHolder(RepositoryData repositoryData, Optional<? extends ModelAwareDataHolder> parent, Optional<? extends ModelAwareDataHolder> root, ModelItemContainer... itemContainers)
Creates a default model aware data holder- Parameters:
repositoryData- the repository data to useparent- the optional 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.
-
DefaultModelAwareDataHolder
public DefaultModelAwareDataHolder(RepositoryData repositoryData, Optional<? extends ModelAwareDataHolder> parent, Optional<? extends ModelAwareDataHolder> root, Collection<? extends ModelItemContainer> itemContainers)
Creates a 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 ModelAwareComposite 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- 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 ModelAwareComposite getLocalComposite(String compositePath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the local composite at the given path- Specified by:
getLocalCompositein interfaceModelAwareDataHolder- 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 ModelAwareComposite getExternalComposite(String compositePath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the external composite at the given path- Specified by:
getExternalCompositein interfaceModelAwareDataHolder- 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
-
getRepeater
public ModelAwareRepeater getRepeater(String repeaterPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the repeater at the given path- Specified by:
getRepeaterin interfaceModelAwareDataHolder- 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 ModelAwareRepeater getLocalRepeater(String repeaterPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the local repeater at the given path- Specified by:
getLocalRepeaterin interfaceModelAwareDataHolder- 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 ModelAwareRepeater getExternalRepeater(String repeaterPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the external repeater at the given path- Specified by:
getExternalRepeaterin interfaceModelAwareDataHolder- 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
-
getValue
public <T> T getValue(String dataPath, boolean allowMultiValuedPathSegments) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the value of the data at the given path- Specified by:
getValuein interfaceModelAwareDataHolder- Type Parameters:
T- type of the value to retrieve- Parameters:
dataPath- path of the dataallowMultiValuedPathSegments-trueto allow multi-valued segments in the path (not necessarily at the last segment),falseotherwise. Iftrue, if there is no indicated entry for a repeater, the values of all the entries are retrieved Iftrueand if there are multiple values, all data are retrieved in one array- Returns:
- the value of the data or
nullif allowMultiValuedPathSegments isfalseand there is no non empty value. The object returned may be of a generic class defined by the storage (if the model is unknown). For example, an url may be returned as a String. - 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 type of the stored valueBadDataPathCardinalityException- if the managesMultiples boolean isfalseand the definition of a part of the data path is multiple. Only the last part can be multiple
-
getLocalValue
public <T> T getLocalValue(String dataPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the local value of the data at the given path- Specified by:
getLocalValuein interfaceModelAwareDataHolder- Type Parameters:
T- type of the value to retrieve- Parameters:
dataPath- path of the externalizable data- Returns:
- the local value of the data or
nullif not exists or is empty. The object returned may be of a generic class defined by the storage (if the model is unknown). For example, an url may be returned as a String. - 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 type of the stored valueBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getExternalValue
public <T> T getExternalValue(String dataPath) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the external value of the data at the given path- Specified by:
getExternalValuein interfaceModelAwareDataHolder- Type Parameters:
T- type of the value to retrieve- Parameters:
dataPath- path of the externalizable data- Returns:
- the external value of the data or
nullif not exists or is empty. The object returned may be of a generic class defined by the storage (if the model is unknown). For example, an url may be returned as a String. - 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 type of the stored valueBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
getStatus
public ExternalizableDataProvider.ExternalizableDataStatus getStatus(String dataPath) throws IllegalArgumentException, UndefinedItemPathException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the status of the externalizable data at the given path Warning: This method won't check that your data is externalizable. But there is no sense to call it with a non externalizable data- Specified by:
getStatusin interfaceModelAwareDataHolder- Parameters:
dataPath- path of the externalizable data- Returns:
- the status of the externalizable data at the given path
- Throws:
IllegalArgumentException- if the given data path is null or emptyUndefinedItemPathException- 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
-
_getRepeaterEntryClass
protected Class _getRepeaterEntryClass()
Retrieves the class of the managed repeater entries- Returns:
- the class of the managed repeater entries
-
_getRepeaterClass
protected Class _getRepeaterClass()
Retrieves the class of the managed repeaters- Returns:
- the class of the managed repeaters
-
_getCompositeClass
protected Class _getCompositeClass()
Retrieves the class of the managed composites- Returns:
- the class of the managed composites
-
getValue
public <T> T getValue(String dataPath, boolean useDefaultFromModel, T defaultValue) throws IllegalArgumentException, UndefinedItemPathException, BadItemTypeException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderRetrieves the value of the data at the given path, or the default value The returned value is one of those ones, in the order:- The value of the data if exists and is not empty
- The default value from the model if useDefaultFromModel is
trueand there is a default value defined by the model - The given default value
- Specified by:
getValuein interfaceModelAwareDataHolder- Type Parameters:
T- type of the value to retrieve- Parameters:
dataPath- path of the datauseDefaultFromModel- true to use the default value from the model, false to use the given default valuedefaultValue- default value used if value is null and useDefaultFromModel is false, or if there is no default value on model- Returns:
- the value of the data at the given path
- 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 type of the stored valueBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_getComposite
protected ModelAwareComposite _getComposite(String name, CompositeDefinition compositeDefinition) throws BadItemTypeException
Retrieves the composite with the given name- 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
protected ModelAwareRepeater _getRepeater(String name, RepeaterDefinition repeaterDefinition) throws BadItemTypeException
Retrieves the repeater with the given name- 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
-
getComments
public List<DataComment> getComments(String dataName) throws IllegalArgumentException, UndefinedItemPathException
Description copied from interface:ModelAwareDataHolderRetrieve the comments of the data with the given name- Specified by:
getCommentsin interfaceModelAwareDataHolder- Parameters:
dataName- name of the data- Returns:
- the comments of the data
- Throws:
IllegalArgumentException- if the given data name is null or emptyUndefinedItemPathException- if the given data name is not defined by the model
-
hasValue
public boolean hasValue(String dataPath) throws IllegalArgumentException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderChecks if there is a non empty value for the data at the given path- Specified by:
hasValuein interfaceDataHolder- Specified by:
hasValuein interfaceModelAwareDataHolder- Parameters:
dataPath- path of the data- Returns:
trueif the data at the given path is defined by the model, if there is a non empty value for the data and if the type of this value matches the type of the definition.falseotherwise- Throws:
IllegalArgumentException- if the given data path is null or emptyBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
hasLocalValue
public boolean hasLocalValue(String dataPath) throws IllegalArgumentException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderChecks if there is a non empty local value for the data at the given path- Specified by:
hasLocalValuein interfaceModelAwareDataHolder- Parameters:
dataPath- path of the externalizable data- Returns:
trueif the data at the given path is defined by the model, if there is a non empty local value for the data and if the type of this value matches the type of the definition.falseotherwise- Throws:
IllegalArgumentException- if the given data path is null or emptyBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
hasExternalValue
public boolean hasExternalValue(String dataPath) throws IllegalArgumentException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderChecks if there is a non empty external value for the data at the given path- Specified by:
hasExternalValuein interfaceModelAwareDataHolder- Parameters:
dataPath- path of the externalizable data- Returns:
trueif the data at the given path is defined by the model, if there is a non empty external value for the data and if the type of this value matches the type of the definition.falseotherwise- Throws:
IllegalArgumentException- if the given data path is null or emptyBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
hasValueOrEmpty
public boolean hasValueOrEmpty(String dataPath) throws IllegalArgumentException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderChecks if there is a value, even empty, for the data at the given path- Specified by:
hasValueOrEmptyin interfaceDataHolder- Specified by:
hasValueOrEmptyin interfaceModelAwareDataHolder- Parameters:
dataPath- path of the data- Returns:
trueif the data at the given path is defined by the model, if there is a value for the data, even empty, and if the type of this value matches the type of the definition.falseotherwise- Throws:
IllegalArgumentException- if the given data path is null or emptyBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
hasLocalValueOrEmpty
public boolean hasLocalValueOrEmpty(String dataPath) throws IllegalArgumentException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderChecks if there is a local value for the data at the given path- Specified by:
hasLocalValueOrEmptyin interfaceModelAwareDataHolder- Parameters:
dataPath- path of the externalizable data- Returns:
trueif the data at the given path is defined by the model, if there is a local value for the data, even empty, and if the type of this value matches the type of the definition.falseotherwise- Throws:
IllegalArgumentException- if the given data path is null or emptyBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
hasExternalValueOrEmpty
public boolean hasExternalValueOrEmpty(String dataPath) throws IllegalArgumentException, BadDataPathCardinalityException
Description copied from interface:ModelAwareDataHolderChecks if there is an external value for the data at the given path- Specified by:
hasExternalValueOrEmptyin interfaceModelAwareDataHolder- Parameters:
dataPath- path of the externalizable data- Returns:
trueif the data at the given path is defined by the model, if there is an external value for the data, even empty, and if the type of this value matches the type of the definition.falseotherwise- Throws:
IllegalArgumentException- if the given data path is null or emptyBadDataPathCardinalityException- if the definition of a part of the data path is multiple. Only the last part can be multiple
-
_getFinalDataName
protected String _getFinalDataName(String dataName, Optional<ExternalizableDataProvider.ExternalizableDataStatus> status)
Retrieves the name of the data according to the given status- Parameters:
dataName- the name of the datastatus- the status- Returns:
- the final name of the data
-
hasComments
public boolean hasComments(String dataName) throws IllegalArgumentException, UndefinedItemPathException
Description copied from interface:ModelAwareDataHolderChecks if there is are comments on the data with the given name- Specified by:
hasCommentsin interfaceModelAwareDataHolder- Parameters:
dataName- name of the data- Returns:
trueif there are comments on the data,falseotherwise- Throws:
IllegalArgumentException- if the given data name is null or emptyUndefinedItemPathException- if the given data name is not defined by the model
-
getModel
public Collection<? extends ModelItemContainer> getModel()
Description copied from interface:ModelAwareDataHolderRetrieves the data holder's model- Specified by:
getModelin interfaceModelAwareDataHolder- Returns:
- the data holder's model
-
getDefinition
public ModelItem getDefinition(String path) throws IllegalArgumentException, UndefinedItemPathException
Description copied from interface:ModelAwareDataHolderRetrieves the definition of the data at the given path- Specified by:
getDefinitionin interfaceModelAwareDataHolder- Parameters:
path- path of the data. No matter if it is a definition or data path (with repeater entry positions)- Returns:
- the definition of the data
- Throws:
IllegalArgumentException- if the given path is null or emptyUndefinedItemPathException- if the given path is not defined by the model
-
hasDefinition
public boolean hasDefinition(String path) throws IllegalArgumentException
Description copied from interface:ModelAwareDataHolderChecks if there is a definition at the given path- Specified by:
hasDefinitionin interfaceModelAwareDataHolder- Parameters:
path- path of the data. No matter if it is a definition or data path (with repeater entry positions)- Returns:
trueif there is definition at the given path,falseotherwise- Throws:
IllegalArgumentException- if the given path is null or empty
-
dataToSAX
public void dataToSAX(ContentHandler contentHandler, String dataPath, DataContext context) throws SAXException
Description copied from interface:DataHolderGenerates SAX events for the data at the given data path in the currentDataHolderDo not generate any event if there is no values at the given path- Specified by:
dataToSAXin interfaceDataHolder- Parameters:
contentHandler- theContentHandlerthat will receive the SAX eventsdataPath- the path of the data to SAXcontext- The context of the data to SAX- Throws:
SAXException- if an error occurs during the SAX events generation
-
getDataNames
public Collection<String> getDataNames()
Description copied from interface:ModelAwareDataHolderRetrieves the names of data contained by this data holder Retrieves only the data at first level, does not check composite data- Specified by:
getDataNamesin interfaceDataHolder- Specified by:
getDataNamesin interfaceModelAwareDataHolder- Returns:
- the names of the data contained by this data holder and that are defined by the model
-
getRepositoryData
public RepositoryData getRepositoryData()
Description copied from interface:DataHolderRetrieves the repository data used by thisDataHolder- Specified by:
getRepositoryDatain interfaceDataHolder- Returns:
- the repository data used by this
DataHolder
-
getParentDataHolder
public Optional<? extends ModelAwareDataHolder> 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- Returns:
- the parent of the current
DataHolder
-
getRootDataHolder
public ModelAwareDataHolder getRootDataHolder()
Description copied from interface:DataHolderRetrieves theDataHolderthat is the root of the current one- Specified by:
getRootDataHolderin interfaceDataHolder- Specified by:
getRootDataHolderin interfaceModelAwareDataHolder- Returns:
- the root
DataHolder
-
_checkDefinition
protected void _checkDefinition(String dataPath, String errorMsg)
Check definition for data path- Parameters:
dataPath- the data patherrorMsg- the error message to throw
-
-