Skip to content

Commit

Permalink
issue705: complete generation of derived properties
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomassetti committed Feb 15, 2017
1 parent cad9553 commit f13f87d
Showing 1 changed file with 19 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,21 +53,21 @@ public void generateDerivedProperty(Class<?> nodeClass, Method method, ClassOrIn
final String typeName = fieldType.getTypeName().replace('$', '.');
final String propertyMetaModelFieldName = getterToPropertyName(method.getName()) + "PropertyMetaModel";
nodeMetaModelClass.addField("PropertyMetaModel", propertyMetaModelFieldName, PUBLIC);
// final String propertyInitializer = f("new PropertyMetaModel(%s, \"%s\", %s.class, %s, %s, %s, %s, %s, %s)",
// nodeMetaModelFieldName,
// field.getName(),
// typeName,
// optionalOf(decapitalize(nodeMetaModelName(fieldType)), isNode(fieldType)),
// fieldAnalysis.isOptional,
// isNonEmpty(field),
// fieldAnalysis.isNodeList,
// fieldAnalysis.isEnumSet,
// fieldAnalysis.isSelfType);
// final String fieldSetting = f("%s.%s=%s;", nodeMetaModelFieldName, propertyMetaModelFieldName, propertyInitializer);
// final String fieldAddition = f("%s.getDeclaredPropertyMetaModels().add(%s.%s);", nodeMetaModelFieldName, nodeMetaModelFieldName, propertyMetaModelFieldName);
//
// initializePropertyMetaModelsStatements.add(parseStatement(fieldSetting));
// initializePropertyMetaModelsStatements.add(parseStatement(fieldAddition));
final String propertyInitializer = f("new PropertyMetaModel(%s, \"%s\", %s.class, %s, %s, %s, %s, %s, %s)",
nodeMetaModelFieldName,
getterToPropertyName(method.getName()),
typeName,
optionalOf(decapitalize(nodeMetaModelName(fieldType)), isNode(fieldType)),
fieldAnalysis.isOptional,
isNonEmpty(method),
fieldAnalysis.isNodeList,
fieldAnalysis.isEnumSet,
fieldAnalysis.isSelfType);
final String fieldSetting = f("%s.%s=%s;", nodeMetaModelFieldName, propertyMetaModelFieldName, propertyInitializer);
final String fieldAddition = f("%s.getDerivedPropertyMetaModels().add(%s.%s);", nodeMetaModelFieldName, nodeMetaModelFieldName, propertyMetaModelFieldName);

initializePropertyMetaModelsStatements.add(parseStatement(fieldSetting));
initializePropertyMetaModelsStatements.add(parseStatement(fieldAddition));
}

private boolean isNonEmpty(Field field) {
Expand All @@ -84,6 +84,10 @@ private boolean isNonEmpty(Field field) {
(c == VariableDeclarationExpr.class && name.equals("variables"));
}

private boolean isNonEmpty(Method method) {
return true;
}

private String getter(Field field) {
return getterName(field.getType(), field.getName());
}
Expand Down

0 comments on commit f13f87d

Please sign in to comment.