standup.joke
Class InstantiationConstraintLexeme

java.lang.Object
  extended by standup.joke.InstantiationConstraintLexeme
All Implemented Interfaces:
InstantiationConstraint, JokeConstraint
Direct Known Subclasses:
InstantiationConstraintLexemeClause, InstantiationConstraintLexemeSchema

public class InstantiationConstraintLexeme
extends Object
implements InstantiationConstraint

An InstantiationConstraint that constrains a joke to make use of a specific Lexeme.

Currently, if used to actually generate a joke, it requires the Lexeme to appear in both the schema and clause instantiations! Use either InstantiationConstraintLexemeSchema or InstantiationConstraintLexemeClause instead.

It works as expected for validate(JokeStructure), though.

Author:
Ruli Manurung

Field Summary
(package private)  Lexeme lex
          The Lexeme required to appear in the joke.
 
Constructor Summary
InstantiationConstraintLexeme(Lexeme _lex)
          Constructor is very simple -- just provide the Lexeme.
 
Method Summary
 String getSQLConstraint(Clause s, List<SQLSelectElement> taqlsses)
          Returns an SQL code snippet that is to be appended to the WHERE clause of the SQL query when instantiating the given Clause.
 void handleSchema(SQLQuerySchema schemaSQLQuery)
          Modifies the given SQLQuerySchema to reflect this constraint.
 String toString()
           
 boolean validate(JokeStructure j)
          Returns true if the given JokeStructure satisfies this constraint, and false if not.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

lex

Lexeme lex
The Lexeme required to appear in the joke.

Constructor Detail

InstantiationConstraintLexeme

public InstantiationConstraintLexeme(Lexeme _lex)
Constructor is very simple -- just provide the Lexeme.

Parameters:
_lex -
Method Detail

handleSchema

public void handleSchema(SQLQuerySchema schemaSQLQuery)
Description copied from interface: InstantiationConstraint
Modifies the given SQLQuerySchema to reflect this constraint.

Specified by:
handleSchema in interface InstantiationConstraint

getSQLConstraint

public String getSQLConstraint(Clause s,
                               List<SQLSelectElement> taqlsses)
Description copied from interface: InstantiationConstraint
Returns an SQL code snippet that is to be appended to the WHERE clause of the SQL query when instantiating the given Clause.

Specified by:
getSQLConstraint in interface InstantiationConstraint
Parameters:
s - the Clause being instantiated.
Returns:
-- the String to be appended to the WHERE clause. As a contract, we require that it appear between parentheses, e.g. "(...)" for readability purposes.

validate

public boolean validate(JokeStructure j)
Description copied from interface: JokeConstraint
Returns true if the given JokeStructure satisfies this constraint, and false if not.

Specified by:
validate in interface JokeConstraint
Parameters:
j - the JokeStructure being validated
Returns:
-- true if j satisfies this constraint, false otherwise.

toString

public String toString()
Overrides:
toString in class Object