Class StructureUtility

java.lang.Object
org.refcodes.struct.StructureUtility

public class StructureUtility extends Object
Utility class to avoid redundant code regarding various ImmutablePathTable implementations.
  • Field Details

  • Method Details

    • retrieveFrom

      public static <T> void retrieveFrom(ImmutablePathTable<T> aFromPathTable, String aFromPath, PathTable<T> aToPathTable)
      Hook method for implementing the ImmutablePathTable.retrieveFrom(String) method.
      Type Parameters:
      T - The type of the ImmutablePathTable the functionality is to be applied to.
      Parameters:
      aFromPathTable - The ImmutablePathTable from which to retrieve.
      aFromPath - The path from where to start extracting the paths.
      aToPathTable - The PathTable which to put the result in.
    • retrieveTo

      public static <T> void retrieveTo(ImmutablePathTable<T> aFromPathTable, String aToPath, PathTable<T> aToPathTable)
      Hook method for implementing the ImmutablePathTable.retrieveTo(String) method.
      Type Parameters:
      T - The type of the ImmutablePathTable the functionality is to be applied to.
      Parameters:
      aFromPathTable - The ImmutablePathTable from which to retrieve.
      aToPath - The path where to relocate the paths of this ImmutablePathTable to.
      aToPathTable - The PathTable which to put the result in.
    • toDataStructure

      public static Object toDataStructure(ImmutablePathTable<?> aPathTable, String aFromPath)

      Hook method for implementing the ImmutablePathTable.toDataStructure() method.

      The org.refcodes.runtime.SystemProperty#STRUCT_KEEP_MAPS "struct.keepMaps" as well as the org.refcodes.runtime.EnvironmentVariable#STRUCT_KEEP_MAPS "STRUCT_KEEPMAPS" can be used to disable the conversion of Map instances into arrays by setting it to true (system property beats environment variable).

      Parameters:
      aPathTable - The ImmutablePathTable from which to get the data structure.
      aFromPath - The path below which the ImmutablePathTable to be converted into a data structure.
      Returns:
      A data structure being a mixture of Map instances and arrays representing the data below the given path.
    • toGenericPath

      public static String toGenericPath(ImmutablePathTable<?> aPathTable, String aPath)
      Normalizes the path as of ImmutablePathTable.toNormalizedPath(String) and unifies it so that a path never ends with a delimiter (DelimiterAccessor.getDelimiter()). This is necessary as the root path is represented just by the delimiter, meaning that it also ends with the delimiter, though generic operations may require that a path must not end with the delimiter. This means that the root path is an empty String.
      Parameters:
      aPathTable - The ImmutablePathTable for which to unify the path.
      aPath - The path to be unified.
      Returns:
      The resulting generic path never ending with a delimiter.