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()
      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:
      false
      See Also:
    • binds

      public final boolean binds(Variable<?> v)
      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:
      false
    • preserves

      public final boolean preserves(Variable<?> v, boolean success)
      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
    • preserves

      public final boolean preserves(Variable<?> v)
      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
    • isDeterministic

      public final boolean isDeterministic()
      Checks whether this pattern is deterministic.

      The default implementation returns true.

      Overrides:
      isDeterministic in class Pattern<A>
      Returns:
      true
      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()