Class FieldLocation

java.lang.Object
org.assertj.core.api.recursive.comparison.FieldLocation
All Implemented Interfaces:
Comparable<FieldLocation>

public final class FieldLocation extends Object implements Comparable<FieldLocation>
Represents the path to a given field. Immutable
  • Constructor Details

    • FieldLocation

      public FieldLocation(List<String> path)
    • FieldLocation

      public FieldLocation(String s)
  • Method Details

    • exactlyMatches

      public boolean exactlyMatches(FieldLocation field)
    • exactlyMatches

      public boolean exactlyMatches(String fieldPath)
    • matches

      @Deprecated public boolean matches(String fieldPath)
      Deprecated.
      Reruns true if it exactly matches this field, false otherwise.
      Parameters:
      fieldPath - field path to check
      Returns:
      true if it exactly matches this field, false otherwise
    • matches

      @Deprecated public boolean matches(FieldLocation field)
      Deprecated.
      Reruns true if it exactly matches this field, false otherwise.
      Parameters:
      field - field to check
      Returns:
      true if it exactly matches this field, false otherwise
    • hierarchyMatches

      public boolean hierarchyMatches(String fieldPath)
      Checks whether this fieldLocation or any of its parents matches the given fieldPath.

      Examples:

      
       | fieldLocation       | fieldPath    | matches?
       -----------------------------------------------
       | name.first          | "name"       | true
       | name.first.nickname | "name"       | true
       | name.first          | "name.first" | true
       | name.first.nickname | "name.first" | true
       | name                | "name"       | true
       | name                | "name.first" | false
       | person.name         | "name"       | false
       | names               | "name"       | false
       | nickname            | "name"       | false
       | name                | "nickname"   | false
       | first.nickname      | "name"       | false
       
      Parameters:
      fieldPath - the field path to test
      Returns:
      true if this fieldLocation is the given fieldPath or a child of it, false otherwise.
    • hierarchyMatchesRegex

      public boolean hierarchyMatchesRegex(Pattern regex)
      Checks whether this fieldLocation or any of its parents matches the given regex.

      Examples:

      
       | fieldLocation       | regex        | matches?
       -----------------------------------------------
       | name.first          | "name"       | true
       | name.first          | "..me"       | true
       | name.first.nickname | "name"       | true
       | name.first          | "name.first" | true
       | name.first.nickname | "name.first" | true
       | name                | "name"       | true
       | name                | "name.first" | false
       | person.name         | "name"       | false
       | names               | "name"       | false
       | nickname            | "name"       | false
       | name                | "nickname"   | false
       | first.nickname      | "name"       | false
       
      Parameters:
      regex - the regex to test
      Returns:
      true this fieldLocation or any of its parent matches the given regex., false otherwise.
    • getDecomposedPath

      public List<String> getDecomposedPath()
    • getPathToUseInRules

      public String getPathToUseInRules()
    • field

      public FieldLocation field(String field)
    • compareTo

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

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

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

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

      public String shortDescription()
    • getPathToUseInErrorReport

      public String getPathToUseInErrorReport()
    • getFieldName

      public String getFieldName()
    • isRoot

      public boolean isRoot()
    • isTopLevelField

      public boolean isTopLevelField()
    • 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.