java.lang.Object
org.qubership.atp.dataset.model.utils.Utils

public class Utils extends Object
  • Field Details

    • JOINER_DOT

      public static final com.google.common.base.Joiner JOINER_DOT
  • Constructor Details

    • Utils

      public Utils()
  • Method Details

    • emptySup

      @Nonnull public static <T> Supplier<T> emptySup()
    • isEqual

      public static boolean isEqual(@Nonnull Identified o1, @Nullable Object o2)
      To not to copy paste Object.equals(Object) logic.
      Parameters:
      o1 - object to compare with o2
      o2 - object to compare with o1
      Returns:
      true if equals
    • isEqual

      public static <T extends Identified> boolean isEqual(@Nonnull Class<T> clazz, @Nonnull T o1, @Nullable Object o2)
      To not to copy paste Object.equals(Object) logic.
      Type Parameters:
      T - general superclass of o1 and o2
      Parameters:
      clazz - general superclass of o1 and o2
      o1 - object to compare with o2
      o2 - object to compare with o1
      Returns:
      true if equals
    • isEqual

      public static <T extends Identified> boolean isEqual(@Nonnull Class<T> clazz, @Nonnull Object id, @Nullable Object target)
      Checks target object has expected class and id.
      Type Parameters:
      T - type
      Parameters:
      clazz - which should be extended by target
      id - expected id of target
      target - checking object
      Returns:
      true if target has expected type and id
    • allRefs

      @Nonnull public static Stream<Identified> allRefs(@Nonnull Identified root)
      Makes Stream of root and all it's dependencies tree collected by Identified.getReferences().
    • doFlatData

      @Nonnull public static FlatDataImpl doFlatData(@Nonnull Identified root)
      Takes the root object. Fills and returns FlatDataImpl with this object plus all the dependencies tree collected by Identified.getReferences().
    • doFlatData

      public static FlatDataImpl doFlatData(@Nonnull DataSetList dataSetList)
      Takes DatasetList and creates flat data from it.
      Parameters:
      dataSetList - root DataSetList object.
      Returns:
      mapped data without duplicates as FlatDataImpl
    • doUiDs

      public static UiManDataSetList doUiDs(@Nonnull DataSetList dataSetList, @Nonnull DsEvaluator eval, boolean expandAll)
      Creates UiManDataSetList decorator for provided DataSetList.
    • doUiDs

      public static UiManDataSetList doUiDs(@Nonnull DataSetList dataSetList, MacroContext macroContext, DataSetParameterProvider dataSetParameterProvider, DsEvaluator eval, boolean evaluate, boolean expandAll)
      Creates UiManDataSetList decorator for provided DataSetList.
    • doUiAttr

      @Nullable public static UiManAttribute doUiAttr(@Nonnull DataSet dataSet, @Nonnull DsEvaluator eval, @Nonnull List<UUID> attrPath)
      Finds attribute by provided path inclusive.
      Parameters:
      attrPath - should not be empty.
    • memoize

      @Nonnull public static <T> Supplier<T> memoize(@Nonnull Supplier<T> delegate)
      See Suppliers.memoize(com.google.common.base.Supplier).
    • paramsInDslWalker

      public static Iterator<Leaf> paramsInDslWalker(DataSetList root, DsEvaluator evaluator)
      Creates a walker which is able to iterate over dataSets and parameters recursively. Handles case when parameter references to another dataSet.
      Parameters:
      root - data set to find parameters in
      Returns:
      walker which is able to iterate over data sets and parameters
    • paramsInDsWalker

      public static Iterator<Leaf> paramsInDsWalker(DataSet root, DsEvaluator evaluator)
      Creates a walker which is able to iterate over dataSets and parameters recursively. Handles case when parameter references to another dataSet.
      Parameters:
      root - data set to find parameters in
      Returns:
      walker which is able to iterate over data sets and parameters
    • attributesInDslWalker

      public static Iterator<List<String>> attributesInDslWalker(DataSetList root)
      Creates a walker which is able to iterate over dataSetLists and attributes recursively. Handles case when attribute references to another dataSetList.
      Parameters:
      root - data set list to find parameters in
      Returns:
      walker which is able to iterate over data set lists and attributes
    • serializeInItfWay

      @Nonnull public static com.fasterxml.jackson.databind.node.ObjectNode serializeInItfWay(@Nonnull DataSet ds, @Nonnull com.fasterxml.jackson.databind.ObjectMapper mapper, @Nonnull DsEvaluator eval)
      Serializes dataSet in ITF way: {attribute = parameter, attribute2 : {attribute = parameter2}} and so on.
      Parameters:
      ds - root to serialize
      mapper - serialization factory
      Returns:
      serializable json object
    • serializeAttrInItfWay

      @Nonnull public static com.fasterxml.jackson.databind.node.ArrayNode serializeAttrInItfWay(@Nonnull DataSetList dsl, @Nonnull com.fasterxml.jackson.databind.ObjectMapper mapper)
      Serializes dataSetLists attributes in ITF way: [attribute, attribute.attribute1] and so on.
      Parameters:
      dsl - root to serialize
      mapper - serialization factory
      Returns:
      serializable json array
    • combinations

      public static <T, A, R> Stream<R> combinations(@Nonnull List<? extends Collection<? extends T>> values, @Nonnull Collector<T,A,R> collector)
      Makes combinations between elements in the different collections in the list. https://stackoverflow.com/questions/32131987/how-can-i-make-cartesian-product-with-java-8-streams . Consider using Lists.cartesianProduct(java.util.List<? extends java.util.List<? extends B>>) instead.
    • appendFriendlyMessage

      @Nonnull public static StringBuilder appendFriendlyMessage(@Nonnull StringBuilder to, @Nonnull Throwable throwable)
      Makes a friendly message from the throwable.
    • isUuid

      public static boolean isUuid(Object value)
      Returns true if argument is UUID.