// We need to build contructor parameters for each properties
generateContructorParameters(clazz, ast, md);
// Content of constructor
Block block = ast.newBlock();
EList<Property> properties = clazz.getAttributes();
for (Property property : properties) {
logger.log(Level.FINE, "Class: " + clazz.getName() + " - "
+ "Property: " + property.getName() + " - "
+ "Property Upper: " + property.getUpper() + " - "
+ "Property Lower: " + property.getLower());
// Left expression
SimpleName simpleName = ast.newSimpleName(property.getName());
ThisExpression thisExpression = ast.newThisExpression();
FieldAccess fieldAccess = ast.newFieldAccess();
fieldAccess.setName(simpleName);
fieldAccess.setExpression(thisExpression);
// Right expression
SimpleName parameter = ast.newSimpleName(property.getName());
Assignment assignment = ast.newAssignment();
assignment
.setOperator(org.eclipse.jdt.core.dom.Assignment.Operator.ASSIGN);
assignment.setLeftHandSide(fieldAccess);
assignment.setRightHandSide(parameter);
// Expression
ExpressionStatement expressionStatement = ast
.newExpressionStatement(assignment);
block.statements().add(expressionStatement);
}
// Set Body to MethodDeclaration
md.setBody(block);
}