Package net.sf.saxon.pattern

## Class ItemTypePattern

- java.lang.Object
- - net.sf.saxon.expr.Expression
  - - net.sf.saxon.expr.PseudoExpression
    - - net.sf.saxon.pattern.Pattern
      - - net.sf.saxon.pattern.ItemTypePattern

- All Implemented Interfaces:
    `ExportAgent`, `Locatable`, `IdentityComparable`, `Traceable`

      public class ItemTypePattern
      extends Pattern

  An ItemTypePattern is a pattern that consists simply of an ItemType; although a node test is an item type, this class is used only for non-node item types, such as atomic types, map types, array types etc.

- - ### Field Summary

    - ### Fields inherited from class net.sf.saxon.expr.Expression

      `EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, MAX_COST, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, UPDATE_METHOD, WATCH_METHOD`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ItemTypePattern​(ItemType test)` | Create an ItemTypePattern that matches all items of a given type

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `computeHashCode()` | Hashcode supporting equals()
    `Pattern` | `copy​(RebindingMap rebindings)` | Copy a pattern.
    `boolean` | `equals​(java.lang.Object other)` | Determine whether this pattern is the same as another pattern
    `void` | `export​(ExpressionPresenter presenter)` | Diagnostic print of expression structure.
    `ItemType` | `getItemType()` | Get an ItemType that all the items matching this pattern must satisfy
    `UType` | `getUType()` | Get a UType indicating which kinds of items this Pattern can match.
    `boolean` | `matches​(Item item, XPathContext context)` | Determine whether this Pattern matches the given Node.
    `java.lang.String` | `reconstruct()` | Display the pattern for diagnostics

    - ### Methods inherited from class net.sf.saxon.pattern.Pattern

      `allocateSlots, bindCurrent, convertToTypedPattern, effectiveBooleanValue, getDefaultPriority, getDependencies, getFingerprint, getHostLanguage, getOriginalText, handleDynamicError, isLiftable, isMotionless, isRecoverable, make, matchesBeneathAnchor, matchesCurrentGroup, optimize, patternContainsVariable, replaceCurrent, selectNodes, setOriginalText, setPriority, setRecoverable, simplify, toPattern, toShortString, toString, typeCheck`

    - ### Methods inherited from class net.sf.saxon.expr.PseudoExpression

      `computeCardinality, evaluateAsString, evaluateItem, getImplementationMethod, iterate, process`

    - ### Methods inherited from class net.sf.saxon.expr.Expression

      `addToPathMap, adoptChildExpression, allowExtractingCommonSubexpressions, checkedOperands, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeSpecialProperties, computeStaticProperties, dynamicError, evaluatePendingUpdates, explain, getCardinality, getConfiguration, getCost, getEvaluationMethod, getExpressionName, getExtraProperty, getIntegerBounds, getInterpretedExpression, getIntrinsicDependencies, getLocalRetainedStaticContext, getLocation, getNetCost, getObjectName, getPackageData, getParentExpression, getProperties, getProperty, getRetainedStaticContext, getScopingExpression, getSlotsUsed, getSpecialProperties, getStaticBaseURI, getStaticBaseURIString, getStaticType, getStaticUType, getStreamerName, getTracingTag, hasCompatibleStaticContext, hashCode, hasSpecialProperty, hasVariableBinding, identityHashCode, implementsStaticTypeCheck, isCallOn, isEqual, isIdentical, isInstruction, isMultiThreaded, isStaticPropertiesKnown, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, markTailFunctionCalls, operandList, operands, operandSparseList, optimizeChildren, prepareForStreaming, resetLocalStaticProperties, restoreParentPointers, setEvaluationMethod, setExtraProperty, setFiltered, setFlattened, setLocation, setParentExpression, setRetainedStaticContext, setRetainedStaticContextLocally, setRetainedStaticContextThoroughly, setStaticProperty, simplifyChildren, staticTypeCheck, suppressValidation, typeCheckChildren, typeError, unordered, verifyParentPointers`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface net.sf.saxon.trace.Traceable

      `gatherProperties`

- - ### Constructor Detail

    - #### ItemTypePattern

          public ItemTypePattern​(ItemType test)

      Create an ItemTypePattern that matches all items of a given type
      Parameters:
        `test` - the type that the items must satisfy for the pattern to match

  - ### Method Detail

    - #### matches

          public boolean matches​(Item item,
                                 XPathContext context)
                          throws XPathException

      Determine whether this Pattern matches the given Node. This is the main external interface for matching patterns: it sets current() to the node being tested
      Specified by:
        `matches` in class `Pattern`
      Parameters:
        `item` - The item to be tested against the Pattern
        `context` - The context in which the match is to take place.
      Returns:
        true if the item matches the Pattern, false otherwise
      Throws:
        `XPathException` - if an error occurs while matching the pattern (the caller will usually treat this the same as a false result)

    - #### getItemType

          public ItemType getItemType()

      Get an ItemType that all the items matching this pattern must satisfy
      Specified by:
        `getItemType` in class `Pattern`
      Returns:
        an ItemType, as specific as possible, which all the matching items satisfy

    - #### getUType

          public UType getUType()

      Get a UType indicating which kinds of items this Pattern can match.
      Specified by:
        `getUType` in class `Pattern`
      Returns:
        a UType indicating all the primitive types of item that the pattern can match.

    - #### reconstruct

          public java.lang.String reconstruct()

      Display the pattern for diagnostics
      Overrides:
        `reconstruct` in class `Pattern`

    - #### equals

          public boolean equals​(java.lang.Object other)

      Determine whether this pattern is the same as another pattern
      Overrides:
        `equals` in class `Expression`
      Parameters:
        `other` - the other object
      Returns:
        true if the other operand is an expression and if it can be determined that the two expressions are equivalent, in the sense that they will always return the same result.

    - #### computeHashCode

          public int computeHashCode()

      Hashcode supporting equals()
      Overrides:
        `computeHashCode` in class `Expression`
      Returns:
        a computed hash code

    - #### export

          public void export​(ExpressionPresenter presenter)
                      throws XPathException

      Description copied from class: `Expression`
      Diagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.
      Specified by:
        `export` in interface `ExportAgent`
      Specified by:
        `export` in class `Pattern`
      Parameters:
        `presenter` - the expression presenter used to display the structure
      Throws:
        `XPathException` - if the export fails, for example if an expression is found that won't work in the target environment.

    - #### copy

          public Pattern copy​(RebindingMap rebindings)

      Copy a pattern. This makes a deep copy.
      Specified by:
        `copy` in class `Pattern`
      Parameters:
        `rebindings` - variables that need to be re-bound
      Returns:
        the copy of the original pattern