Class MapBasedXPathVariableResolver

java.lang.Object
com.helger.xml.xpath.MapBasedXPathVariableResolver
All Implemented Interfaces:
com.helger.commons.lang.ICloneable<MapBasedXPathVariableResolver>, XPathVariableResolver

@NotThreadSafe public class MapBasedXPathVariableResolver extends Object implements XPathVariableResolver, com.helger.commons.lang.ICloneable<MapBasedXPathVariableResolver>
Class is used in conjunction with XPathExpression to resolve variable values used in XPath queries at runtime. The local part of the QName to resolve is used as the key in the map. The namespace is ignored in this class.
Author:
Philip Helger
See Also:
  • Constructor Details

    • MapBasedXPathVariableResolver

      public MapBasedXPathVariableResolver()
      Default ctor.
    • MapBasedXPathVariableResolver

      public MapBasedXPathVariableResolver(@Nullable Map<String,?> aVars)
      Ctor taking another map.
      Parameters:
      aVars - Variables to re-use. May be null.
    • MapBasedXPathVariableResolver

      public MapBasedXPathVariableResolver(@Nonnull MapBasedXPathVariableResolver aOther)
      Copy constructor
      Parameters:
      aOther - Object to copy data from
  • Method Details

    • addUniqueVariable

      @Nonnull public com.helger.commons.state.EChange addUniqueVariable(@Nonnull String sName, @Nonnull Object aValue)
      Add a new variable.
      Parameters:
      sName - The name (=local part) of the variable
      aValue - The value to be used.
      Returns:
      EChange
    • addAllFrom

      @Nonnull public com.helger.commons.state.EChange addAllFrom(@Nonnull MapBasedXPathVariableResolver aOther, boolean bOverwrite)
      Add all variables from the other variable resolver into this resolver.
      Parameters:
      aOther - The variable resolver to import the variable from. May not be null.
      bOverwrite - if true existing variables will be overwritten with the new variables, otherwise the old variables are kept.
      Returns:
      EChange
    • addAllFrom

      @Nonnull public com.helger.commons.state.EChange addAllFrom(@Nonnull MapBasedXPathVariableResolverQName aOther, boolean bOverwrite)
      Add all variables from the other variable resolver into this resolver. This methods takes only the local part of the QName and loses the namespace URI.
      Parameters:
      aOther - The variable resolver to import the variable from. May not be null.
      bOverwrite - if true existing variables will be overwritten with the new variables, otherwise the old variables are kept.
      Returns:
      EChange
    • removeVariable

      @Nonnull public com.helger.commons.state.EChange removeVariable(@Nullable String sName)
      Remove the variable with the specified name.
      Parameters:
      sName - The name to be removed. May be null.
      Returns:
      EChange
    • removeVariables

      @Nonnull public com.helger.commons.state.EChange removeVariables(@Nullable Iterable<String> aNames)
      Remove multiple variables at once.
      Parameters:
      aNames - The names to be removed. May be null.
      Returns:
      EChange.CHANGED if at least one variable was removed.
    • getAllVariables

      @Nonnull @ReturnsMutableCopy public com.helger.commons.collection.impl.ICommonsMap<String,?> getAllVariables()
      Returns:
      A mutable copy of all contained variables. Never null but maybe empty.
    • getVariableCount

      @Nonnegative public int getVariableCount()
      Returns:
      The number of contained variables. Always ≥ 0.
    • clear

      @Nonnull public com.helger.commons.state.EChange clear()
      Remove all variables at once.
      Returns:
      EChange.CHANGED if at least one variable was removed.
    • setAllVariables

      public void setAllVariables(@Nullable Map<String,?> aVars)
      Set multiple variables at once.
      Parameters:
      aVars - The variables to be set. May be null.
    • resolveVariable

      @Nullable public Object resolveVariable(@Nonnull QName aVariableName)
      Specified by:
      resolveVariable in interface XPathVariableResolver
    • getClone

      @Nonnull @ReturnsMutableCopy public MapBasedXPathVariableResolver getClone()
      Specified by:
      getClone in interface com.helger.commons.lang.ICloneable<MapBasedXPathVariableResolver>
    • equals

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

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

      public String toString()
      Overrides:
      toString in class Object