Class FieldLocation

  • All Implemented Interfaces:
    java.lang.Comparable<FieldLocation>

    public final class FieldLocation
    extends java.lang.Object
    implements java.lang.Comparable<FieldLocation>
    Represents the path to a given field. Immutable
    • Field Detail

      • pathToUseInRules

        private final java.lang.String pathToUseInRules
      • decomposedPath

        private final java.util.List<java.lang.String> decomposedPath
    • Constructor Detail

      • FieldLocation

        public FieldLocation​(java.util.List<java.lang.String> path)
      • FieldLocation

        public FieldLocation​(java.lang.String s)
    • Method Detail

      • matches

        public boolean matches​(java.lang.String fieldPath)
      • getDecomposedPath

        public java.util.List<java.lang.String> getDecomposedPath()
      • getPathToUseInRules

        public java.lang.String getPathToUseInRules()
      • compareTo

        public int compareTo​(FieldLocation other)
        Specified by:
        compareTo in interface java.lang.Comparable<FieldLocation>
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • shortDescription

        public java.lang.String shortDescription()
      • pathToUseInRules

        private static java.lang.String pathToUseInRules​(java.util.List<java.lang.String> path)
      • getPathToUseInErrorReport

        public java.lang.String getPathToUseInErrorReport()
      • getFieldName

        public java.lang.String getFieldName()
      • rootFieldLocation

        public static FieldLocation rootFieldLocation()
      • hasParent

        public boolean hasParent​(FieldLocation parent)
        Returns true if this has the given parent (direct or indirect), false otherwise.

        Examples:

         | field                 | parent       | hasParent? 
         -----------------------------------------------  
         | "name.first"          | "name"       | true       
         | "name.first.nickname" | "name"       | true       
         | "name.first.nickname" | "name.first" | true       
         | "name"                | "name"       | false      
         | "names"               | "name"       | false      
         | "nickname"            | "name"       | false      
         | "name"                | "nickname"   | false      
         | "first.nickname"      | "name"       | false      
         
        Parameters:
        parent - the field to check for being a parent
        Returns:
        true if this has the given parent (direct or indirect), false otherwise.
      • hasChild

        public boolean hasChild​(FieldLocation child)
        Returns true if this field has the given child (direct or indirect), false otherwise.

        Examples:

         | field                 | child           | hasChild? 
         -----------------------------------------------  
         | "name"                | "name.first"    | true       
         | "name"                | "name.last"     | true       
         | "one"                 | "one.two.three" | true
         | "name.first"          | "name "         | false       
         | "name"                | "name"          | false      
         | "names"               | "name"          | false      
         | "nickname"            | "name"          | false      
         | "name"                | "nickname"      | false      
         | "first.nickname"      | "name"          | false      
         
        Parameters:
        child - the field to check for being a child
        Returns:
        true if this has the given child (direct or indirect), false otherwise.