# Package org.eclipse.incquery.runtime.matchers.psystem.rewriters

- Interface Summary
  Interface | Description
  --- | ---
  IConstraintFilter | Helper interface to exclude constraints from PBody copy processes
  IFlattenCallPredicate | Interface used by the PQueryFlattener to decide which pattern calls to flatten
  IVariableRenamer | Helper interface to ease the naming of the new variables during flattening

- Class Summary
  Class | Description
  --- | ---
  CachingPDisjunctionRewriter | Deprecated Use the `PDisjunctionRewriterCacher` implementation instead.
  DefaultFlattenCallPredicate |
  FlattenerCopier | This rewriter class can add new equality constraints to the copied body
  IConstraintFilter.AllowAllFilter |
  IConstraintFilter.ExportedParameterFilter |
  IVariableRenamer.HierarchicalName |
  IVariableRenamer.SameName |
  PBodyCopier | This class can create a new PBody for a PQuery.
  PBodyNormalizer | A disjunction rewriter for creating a normalized form of specification, unifying variables and running basic sanity checks.
  PDisjunctionRewriter | An abstract base class for creating alternative representations for PDisjunctions.
  PDisjunctionRewriterCacher | A rewriter that stores the previously computed results of a rewriter or a rewriter chain.
  PQueryFlattener | This rewriter class holds the query flattening logic
  SurrogateQueryRewriter |

- Exception Summary
  Exception | Description
  --- | ---
  RewriterException | An exception to wrap various issues during PDisjunction rewriting.