Package org.ametys.runtime.model
Class ModelHelper
- java.lang.Object
 - 
- org.ametys.runtime.model.ModelHelper
 
 
- 
public final class ModelHelper extends Object
Helper class for models 
- 
- 
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static booleanevaluateDisableConditions(DisableConditions disableConditions, Map<String,DefinitionAndValue> definitionAndValues, org.slf4j.Logger logger)Recursively evaluate theDisableConditionsagainst the given valuesstatic List<ModelItem>findModelItemsByType(ModelItemContainer container, String type)Find all model items of the given typestatic List<ModelItem>getAllModelItemsInPath(String path, Collection<? extends ModelItemAccessor> itemAccessors)Retrieve the list of successive model items represented by the given path.static Map<String,List<ModelItem>>getAllModelItemsInPaths(Set<String> paths, Collection<? extends ModelItemAccessor> itemAccessors)Retrieve the list of successive model items represented by the given paths, indexed by path.static StringgetDefinitionPathFromDataPath(String dataPath)Retrieves the given dataPath as a definition path (without the repeaterEntry positions)static ModelItemgetModelItem(String path, Collection<? extends ModelItemAccessor> itemAccessors)Retrieves the model item at the given relative pathstatic booleanhasModelItem(String path, Collection<? extends ModelItemAccessor> itemAccessors)Checks if there is a model item at the given relative pathstatic booleanhasModelItemOfType(ModelItemContainer container, String type)Determines if a container of model items contains a model item of the given typestatic booleanisGroupSwitchOn(ModelItem modelItem, Map<String,Object> values)Checks if this item is in a group with a switch onstatic List<I18nizableText>validateValue(ElementDefinition definition, Object value)Validates the given valuestatic List<I18nizableText>validateValue(ElementDefinition definition, Object value, boolean checkEnumerated)Validates the given value 
 - 
 
- 
- 
Method Detail
- 
hasModelItem
public static boolean hasModelItem(String path, Collection<? extends ModelItemAccessor> itemAccessors) throws IllegalArgumentException
Checks if there is a model item at the given relative path- Parameters:
 path- path of the model item. This path is relative to the given accessors. No matter if it is a definition or data path (with repeater entry positions)itemAccessors- model item accessors where to search if there is a model item- Returns:
 trueif there is model item at this path,falseotherwise- Throws:
 IllegalArgumentException- if the given path is null or empty
 
- 
getModelItem
public static ModelItem getModelItem(String path, Collection<? extends ModelItemAccessor> itemAccessors) throws IllegalArgumentException, UndefinedItemPathException
Retrieves the model item at the given relative path- Parameters:
 path- path of the model item to retrieve. This path is relative to the given accessors. No matter if it is a definition or data path (with repeater entry positions)itemAccessors- model item accessors where to search the model item- Returns:
 - the model item
 - Throws:
 IllegalArgumentException- if the given path is null or emptyUndefinedItemPathException- if there is no item defined at the given path in given item accessors
 
- 
getAllModelItemsInPaths
public static Map<String,List<ModelItem>> getAllModelItemsInPaths(Set<String> paths, Collection<? extends ModelItemAccessor> itemAccessors) throws IllegalArgumentException, UndefinedItemPathException
Retrieve the list of successive model items represented by the given paths, indexed by path.- Parameters:
 paths- paths of the model items to retrieve. These paths are relative to the given accessors. No matter if they are definition or data paths (with repeater entry positions)itemAccessors- model item accessors where to search the model items- Returns:
 - the list of successive model items, indexed by path
 - Throws:
 IllegalArgumentException- if one of the given paths is null or emptyUndefinedItemPathException- if there is no item defined at one of the given paths in given item accessors
 
- 
getAllModelItemsInPath
public static List<ModelItem> getAllModelItemsInPath(String path, Collection<? extends ModelItemAccessor> itemAccessors) throws IllegalArgumentException, UndefinedItemPathException
Retrieve the list of successive model items represented by the given path.- Parameters:
 path- path of the model items to retrieve. This path is relative to the given accessors. No matter if it is a definition or data path (with repeater entry positions)itemAccessors- model item accessors where to search the model items- Returns:
 - the list of successive model items
 - Throws:
 IllegalArgumentException- if the given path is null or emptyUndefinedItemPathException- if there is no item defined at the given path in given item accessors
 
- 
hasModelItemOfType
public static boolean hasModelItemOfType(ModelItemContainer container, String type)
Determines if a container of model items contains a model item of the given type- Parameters:
 container- the model item containertype- the type identifier to find.- Returns:
 - true if a model item of the given type is found
 
 
- 
findModelItemsByType
public static List<ModelItem> findModelItemsByType(ModelItemContainer container, String type)
Find all model items of the given type- Parameters:
 container- the model item containertype- the type identifier to find.- Returns:
 - the list of 
ModelItems of this type 
 
- 
getDefinitionPathFromDataPath
public static String getDefinitionPathFromDataPath(String dataPath)
Retrieves the given dataPath as a definition path (without the repeaterEntry positions)- Parameters:
 dataPath- the data path- Returns:
 - the definition path
 
 
- 
isGroupSwitchOn
public static boolean isGroupSwitchOn(ModelItem modelItem, Map<String,Object> values)
Checks if this item is in a group with a switch on- Parameters:
 modelItem- the item to checkvalues- all items' values to get switchers' values- Returns:
 - false if this item is part of a group with a switch to off, true otherwise
 
 
- 
evaluateDisableConditions
public static boolean evaluateDisableConditions(DisableConditions disableConditions, Map<String,DefinitionAndValue> definitionAndValues, org.slf4j.Logger logger)
Recursively evaluate theDisableConditionsagainst the given values- Parameters:
 disableConditions- the disable conditions to evaluatedefinitionAndValues- the values to evaluatelogger- the logger for disable conditions evaluation logs- Returns:
 - true if the disable conditions are true, false otherwise
 
 
- 
validateValue
public static List<I18nizableText> validateValue(ElementDefinition definition, Object value)
Validates the given value- Parameters:
 definition- The definition to use to validate the valuevalue- the value to validate- Returns:
 - the structure with errors information if the validation failed.
 
 
- 
validateValue
public static List<I18nizableText> validateValue(ElementDefinition definition, Object value, boolean checkEnumerated)
Validates the given value- Parameters:
 definition- The definition to use to validate the valuevalue- the value to validatecheckEnumerated-truetrue to make sure that the item with an enumerator has its value in the enumerated values- Returns:
 - the structure with errors information if the validation failed. TODO NEWATTRIBUTEAPI RUNTIME-2897: remove this method to always check enumerator when validating a value
 
 
 - 
 
 -