Class ExpressionWriter
- java.lang.Object
-
- net.ssehub.easy.instantiation.core.model.expressions.AbstractWriter
-
- net.ssehub.easy.instantiation.core.model.expressions.ExpressionWriter
-
- All Implemented Interfaces:
IExpressionVisitor
- Direct Known Subclasses:
WriterVisitor
public class ExpressionWriter extends AbstractWriter implements IExpressionVisitor
Implements a writer for expressions using the default VIL expression syntax.- Author:
- Holger Eichelberger
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Stack<CompositeExpression>compositeExpressionsprivate booleanisInContentprivate booleanisInExpressionprivate static booleanoclComplianceDetect, warn, report about and write to avoid OCL compliance problems.
-
Constructor Summary
Constructors Constructor Description ExpressionWriter(java.io.Writer out)Creates a build language writer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static booleanconsiderOclCompliance()Returns whether OCL compliance shall be considered.protected booleanisInComposite()Check if Expression is in CompositeExpression.protected booleanisInContent()Check if Expression is in content.protected voidprintArgumentList(IArgumentProvider provider, int start)Prints an argument list.protected voidprintArguments(IArgumentProvider provider, int start)Prints arguments (see alsoprintArgumentList(IArgumentProvider, int)).private voidprintCallAccess(CallExpression call)Prints the call access operator.protected voidprintContentExpressions(IExpressionIterator iter)Prints a content expressions given by an expression iterator.private voidprintIteratorDeclarators(CallExpression call)Prints the iterator declarators if appropriate.private voidprintName(CallExpression call)Prints the name of a call expression.protected voidprintType(TypeDescriptor<?> type)Prints the given type.protected booleanquoteExpression(Expression expression)Returns if visitingexpressioninprintContentExpressions(IExpressionIterator)shall lead to quote constant expressions or unquoted constant expressionsisInExpression.protected voidsetInContent(boolean isInContent)Set that expression is in content.static voidsetOclCompliance(boolean compliance)Changes the OCL compliance setting.java.lang.ObjectvisitCallExpression(CallExpression call)Visits a call node.java.lang.ObjectvisitCompositeExpression(CompositeExpression ex)Visits a composite expression.java.lang.ObjectvisitConstantExpression(ConstantExpression cst)Visits a constant node.java.lang.ObjectvisitContainerInitializerExpression(ContainerInitializerExpression ex)Visits a container initializer expression.java.lang.ObjectvisitExpression(Expression ex)Visits an unspecified expression (in case of specialized nodes).java.lang.ObjectvisitExpressionEvaluator(ExpressionEvaluator ex)Visits an expression evaluator.java.lang.ObjectvisitFieldAccessExpression(FieldAccessExpression ex)Visits a field access expression.java.lang.ObjectvisitMultiAndExpression(MultiAndExpression ex)Visits a multi-and expression.java.lang.ObjectvisitParenthesisExpression(ParenthesisExpression par)Visits a parenthesis node.java.lang.ObjectvisitResolvableOperationCallExpression(ResolvableOperationCallExpression ex)Visits resolvable operation call expression (function pointer call).java.lang.ObjectvisitResolvableOperationExpression(ResolvableOperationExpression ex)Visits resolvable operation expression (function pointer resolution).java.lang.ObjectvisitStringExpression(StringExpression ex)Visits a string expression.java.lang.ObjectvisitValueAssignmentExpression(ValueAssignmentExpression ex)Visits a value assignment expression.java.lang.ObjectvisitVariableExpression(VariableExpression cst)Visits a constant node.java.lang.ObjectvisitVarModelIdentifierExpression(VarModelIdentifierExpression identifier)Visits a variability model identifier.java.lang.ObjectvisitVilTypeExpression(VilTypeExpression typeExpression)Visits a VIL type expression.-
Methods inherited from class net.ssehub.easy.instantiation.core.model.expressions.AbstractWriter
decreaseIndentation, flush, getOut, increaseIndentation, print, print, print, print, printIndentation, printJavaEscaped, println, println, println, println, println, printWhitespace, setIndentation
-
-
-
-
Field Detail
-
oclCompliance
private static boolean oclCompliance
Detect, warn, report about and write to avoid OCL compliance problems.
-
compositeExpressions
private transient java.util.Stack<CompositeExpression> compositeExpressions
-
isInContent
private transient boolean isInContent
-
isInExpression
private transient boolean isInExpression
-
-
Method Detail
-
setOclCompliance
public static void setOclCompliance(boolean compliance)
Changes the OCL compliance setting. Similar to IVML, but we separate this in case that the UI shall do different settings for IVML and VIL.- Parameters:
compliance- operate with OCL compliance (true), allow both IVML + OCL (false
-
considerOclCompliance
public static boolean considerOclCompliance()
Returns whether OCL compliance shall be considered. Similar to IVML, but we separate this in case that the UI shall do different settings for IVML and VIL.- Returns:
truefor OCL compliance,falseelse
-
visitParenthesisExpression
public java.lang.Object visitParenthesisExpression(ParenthesisExpression par) throws VilException
Description copied from interface:IExpressionVisitorVisits a parenthesis node.- Specified by:
visitParenthesisExpressionin interfaceIExpressionVisitor- Parameters:
par- the node- Returns:
- the result of visiting this expression (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
printName
private void printName(CallExpression call)
Prints the name of a call expression.- Parameters:
call- the call to print the name for
-
printType
protected void printType(TypeDescriptor<?> type)
Prints the given type.- Parameters:
type- the type to be printed
-
printIteratorDeclarators
private void printIteratorDeclarators(CallExpression call) throws VilException
Prints the iterator declarators if appropriate.- Parameters:
call- the call expression to print the declarators for- Throws:
VilException- if visiting fails
-
visitCallExpression
public java.lang.Object visitCallExpression(CallExpression call) throws VilException
Description copied from interface:IExpressionVisitorVisits a call node.- Specified by:
visitCallExpressionin interfaceIExpressionVisitor- Parameters:
call- the node- Returns:
- the result of visiting this expression (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
printCallAccess
private void printCallAccess(CallExpression call) throws VilException
Prints the call access operator.- Parameters:
call- the call to print- Throws:
VilException- in case of type resolution problems
-
printArguments
protected void printArguments(IArgumentProvider provider, int start) throws VilException
Prints arguments (see alsoprintArgumentList(IArgumentProvider, int)).- Parameters:
provider- the argument providerstart- the start argument index (usually 0)- Throws:
VilException- in case that visiting fails
-
printArgumentList
protected void printArgumentList(IArgumentProvider provider, int start) throws VilException
Prints an argument list.- Parameters:
provider- the argument providerstart- the start argument index (usually 0)- Throws:
VilException- in case that visiting fails
-
visitStringExpression
public java.lang.Object visitStringExpression(StringExpression ex) throws VilException
Description copied from interface:IExpressionVisitorVisits a string expression.- Specified by:
visitStringExpressionin interfaceIExpressionVisitor- Parameters:
ex- the expression- Returns:
- the result of visiting the given statement (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitConstantExpression
public java.lang.Object visitConstantExpression(ConstantExpression cst) throws VilException
Description copied from interface:IExpressionVisitorVisits a constant node.- Specified by:
visitConstantExpressionin interfaceIExpressionVisitor- Parameters:
cst- the node- Returns:
- the result of visiting this expression (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitVarModelIdentifierExpression
public java.lang.Object visitVarModelIdentifierExpression(VarModelIdentifierExpression identifier) throws VilException
Description copied from interface:IExpressionVisitorVisits a variability model identifier.- Specified by:
visitVarModelIdentifierExpressionin interfaceIExpressionVisitor- Parameters:
identifier- the identifier- Returns:
- the result of visiting this expression (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitVilTypeExpression
public java.lang.Object visitVilTypeExpression(VilTypeExpression typeExpression) throws VilException
Description copied from interface:IExpressionVisitorVisits a VIL type expression.- Specified by:
visitVilTypeExpressionin interfaceIExpressionVisitor- Parameters:
typeExpression- the expression- Returns:
- the result of visiting this expression (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitExpression
public java.lang.Object visitExpression(Expression ex) throws VilException
Description copied from interface:IExpressionVisitorVisits an unspecified expression (in case of specialized nodes).- Specified by:
visitExpressionin interfaceIExpressionVisitor- Parameters:
ex- the node- Returns:
- the result of visiting this expression (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitExpressionEvaluator
public java.lang.Object visitExpressionEvaluator(ExpressionEvaluator ex) throws VilException
Description copied from interface:IExpressionVisitorVisits an expression evaluator.- Specified by:
visitExpressionEvaluatorin interfaceIExpressionVisitor- Parameters:
ex- the evaluator- Returns:
- the result of visiting this expression (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitVariableExpression
public java.lang.Object visitVariableExpression(VariableExpression cst) throws VilException
Description copied from interface:IExpressionVisitorVisits a constant node.- Specified by:
visitVariableExpressionin interfaceIExpressionVisitor- Parameters:
cst- the node- Returns:
- the result of visiting the given statement (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitFieldAccessExpression
public java.lang.Object visitFieldAccessExpression(FieldAccessExpression ex) throws VilException
Description copied from interface:IExpressionVisitorVisits a field access expression.- Specified by:
visitFieldAccessExpressionin interfaceIExpressionVisitor- Parameters:
ex- the expression- Returns:
- the result of visiting the given statement (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitValueAssignmentExpression
public java.lang.Object visitValueAssignmentExpression(ValueAssignmentExpression ex) throws VilException
Description copied from interface:IExpressionVisitorVisits a value assignment expression.- Specified by:
visitValueAssignmentExpressionin interfaceIExpressionVisitor- Parameters:
ex- the expression- Returns:
- the result of visiting the given statement (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitContainerInitializerExpression
public java.lang.Object visitContainerInitializerExpression(ContainerInitializerExpression ex) throws VilException
Description copied from interface:IExpressionVisitorVisits a container initializer expression.- Specified by:
visitContainerInitializerExpressionin interfaceIExpressionVisitor- Parameters:
ex- the expression- Returns:
- the result of visiting the given statement (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitCompositeExpression
public java.lang.Object visitCompositeExpression(CompositeExpression ex) throws VilException
Description copied from interface:IExpressionVisitorVisits a composite expression.- Specified by:
visitCompositeExpressionin interfaceIExpressionVisitor- Parameters:
ex- the expression- Returns:
- the result of visiting the given statement
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
printContentExpressions
protected void printContentExpressions(IExpressionIterator iter) throws VilException
Prints a content expressions given by an expression iterator.- Parameters:
iter- the expression iterator- Throws:
VilException- if printing fails for some reason
-
quoteExpression
protected boolean quoteExpression(Expression expression)
Returns if visitingexpressioninprintContentExpressions(IExpressionIterator)shall lead to quote constant expressions or unquoted constant expressionsisInExpression.- Parameters:
expression- the expression to visit- Returns:
truefor quoting,falseelse
-
visitResolvableOperationExpression
public java.lang.Object visitResolvableOperationExpression(ResolvableOperationExpression ex) throws VilException
Description copied from interface:IExpressionVisitorVisits resolvable operation expression (function pointer resolution).- Specified by:
visitResolvableOperationExpressionin interfaceIExpressionVisitor- Parameters:
ex- the expression- Returns:
- the result of visiting the given statement (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitResolvableOperationCallExpression
public java.lang.Object visitResolvableOperationCallExpression(ResolvableOperationCallExpression ex) throws VilException
Description copied from interface:IExpressionVisitorVisits resolvable operation call expression (function pointer call).- Specified by:
visitResolvableOperationCallExpressionin interfaceIExpressionVisitor- Parameters:
ex- the expression- Returns:
- the result of visiting the given statement (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
visitMultiAndExpression
public java.lang.Object visitMultiAndExpression(MultiAndExpression ex) throws VilException
Description copied from interface:IExpressionVisitorVisits a multi-and expression.- Specified by:
visitMultiAndExpressionin interfaceIExpressionVisitor- Parameters:
ex- the expression- Returns:
- the result of visiting the given statement (may be null)
- Throws:
VilException- in case that visiting fails (e.g., execution)
-
isInComposite
protected boolean isInComposite()
Check if Expression is in CompositeExpression.- Returns:
- boolean
-
isInContent
protected boolean isInContent()
Check if Expression is in content.- Returns:
- boolean
-
setInContent
protected void setInContent(boolean isInContent)
Set that expression is in content.- Parameters:
isInContent- boolean
-
-