Class Atomic<A>

java.lang.Object
eu.bandm.tools.paisley.Pattern<A>
eu.bandm.tools.paisley.Atomic<A>
Type Parameters:
A - the target type
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
Constraint

public abstract class Atomic<A> extends Pattern<A>
Abstract base class for patterns that contain no subpatterns. Subclasses of this class must represent deterministic patterns that affect no variable.
See Also:
  • Field Details

    • anyObject

      static final Pattern<Object> anyObject
      A pattern that matches anything. This pattern may be shared and reused concurrently.
  • Constructor Details

    • Atomic

      protected Atomic()
      Creates a new atomic pattern.
  • Method Details

    • matchAgain

      public final boolean matchAgain()
      Description copied from class: Pattern
      Attempts to re-match this pattern against a previously matched object. If the class of this pattern imposes a specific order on matches, they are chosen in that order, beginning with the second one. The behaviour of this method is unspecified if the last matching attempt of this pattern has not been successful.

      Patterns classes that do not override this method are deterministic. Pattern classes that overwrite this method to provide additional matches should also override Pattern.isDeterministic().

      Overrides:
      matchAgain in class Pattern<A>
      Returns:
      true if the matching is successful, false if it fails. Which Variables are bound by a successful match depends. The default implementation always returns false.
      See Also:
    • binds

      public final boolean binds(Variable<?> v)
      Description copied from class: Pattern
      Checks whether a variable is bound by this pattern.

      The default implementation returns false.

      Overrides:
      binds in class Pattern<A>
      Parameters:
      v - a pattern variable
      Returns:
      true if the variable is guaranteed to have a meaningful value when this pattern is open, false otherwise.
    • preserves

      public final boolean preserves(Variable<?> v, boolean success)
      Description copied from class: Pattern
      Checks whether a variable is preserved by this pattern, conditionally on success or failure.

      The default implementation returns false.

      Overrides:
      preserves in class Pattern<A>
      Parameters:
      v - a pattern variable
      success - specifies preservation on success or failure
      Returns:
      true if the variable value is guaranteed to be unaffected by a matching attempt with this pattern that returns a value equal to success.
    • preserves

      public final boolean preserves(Variable<?> v)
      Description copied from class: Pattern
      Checks whether a variable is preserved by this pattern, unconditionally.

      The default implementation returns false.

      Overrides:
      preserves in class Pattern<A>
      Parameters:
      v - a pattern variable
      Returns:
      true if the variable value is guaranteed to be unaffected by any matching attempt with this pattern.
    • isDeterministic

      public final boolean isDeterministic()
      Description copied from class: Pattern
      Checks whether this pattern is deterministic.

      The default implementation returns true.

      Overrides:
      isDeterministic in class Pattern<A>
      Returns:
      true if this pattern is guaranteed to match any object at most once, false otherwise.
      See Also:
    • clone

      public Pattern<A> clone()
      Return a reference that behaves like a copy of this pattern. This implementation asserts that no duplication is required, and always returns this.
      Overrides:
      clone in class Pattern<A>
    • compileMatchAgain

      protected final void compileMatchAgain(CompilationContext context)
      Overrides:
      compileMatchAgain in class Pattern<A>
    • compileCut

      protected final void compileCut(CompilationContext context)
      Overrides:
      compileCut in class Pattern<A>
    • compileCut

      protected final void compileCut(CompilationContext context, boolean recursively)
      Overrides:
      compileCut in class Pattern<A>
    • compileClear

      protected final void compileClear(CompilationContext context)
      Overrides:
      compileClear in class Pattern<A>
    • compileClear

      protected final void compileClear(CompilationContext context, boolean recursively)
      Overrides:
      compileClear in class Pattern<A>
    • anyObject

      static Atomic<Object> anyObject()