Class GenericConcatenation<T extends QueryLanguageSyntax>

java.lang.Object
dev.roanh.gmark.lang.generic.GenericConcatenation<T>
Type Parameters:
T - The concrete query language fragment syntax.
All Implemented Interfaces:
QueryFragment, OutputFormal, OutputSQL
Direct Known Subclasses:
ConcatCPQ, ConcatRPQ

public abstract class GenericConcatenation<T extends QueryLanguageSyntax> extends Object implements OutputSQL, OutputFormal, QueryFragment
Generic definition of a number of query language fragments. (also known as the join operation).
  • Field Details

    • elements

      protected final List<T extends QueryLanguageSyntax> elements
      The sub queries to concatenate in order from first to last.
  • Constructor Details

    • GenericConcatenation

      protected GenericConcatenation(List<T> elements) throws IllegalArgumentException
      Constructs a new concatenation with the given list of fragments.
      Parameters:
      elements - The query language fragments to concatenate.
      Throws:
      IllegalArgumentException - When the given list of fragments is empty.
  • Method Details

    • toFormalSyntax

      public String toFormalSyntax()
      Description copied from interface: OutputFormal
      Converts this object to its formal logic form.
      Specified by:
      toFormalSyntax in interface OutputFormal
      Returns:
      The formal representation of this object.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • writeSQL

      public void writeSQL(IndentWriter writer)
      Description copied from interface: OutputSQL
      Writes the SQL representation of this object to the given writer.
      Specified by:
      writeSQL in interface OutputSQL
      Parameters:
      writer - The writer to write to.
    • getOperationType

      public OperationType getOperationType()
      Description copied from interface: QueryFragment
      The top level operation represented by this query fragment.
      Specified by:
      getOperationType in interface QueryFragment
      Returns:
      The top level operation for this query fragment.
    • toAbstractSyntaxTree

      public QueryTree toAbstractSyntaxTree()
      Description copied from interface: QueryFragment
      Converts this query fragment to an equivalent abstract syntax tree.
      Specified by:
      toAbstractSyntaxTree in interface QueryFragment
      Returns:
      The constructed Abstract Syntax Tree (AST).