public String toJavaString() { String result = "for ( " + getElemType().getCollectionTypeName() + " " + getElemName() + " : " + getCollection() + " ) {\n"; result = result + JavaStringHelpers.indent(getBody().toJavaString(), 1) + "\n}"; return result; }
public OJStatement findStatementRecursive(String name){ for(OJStatement statement:getStatements()){ if(statement.getName() != null && statement.getName().equals(name)){ return statement; } if(statement instanceof OJIfStatement){ OJIfStatement ifs = (OJIfStatement) statement; OJStatement s = ifs.getThenPart().findStatementRecursive(name); if(s == null && ifs.getElsePart()!=null){ s = ifs.getElsePart().findStatementRecursive(name); } if(s != null){ return s; } }else if(statement instanceof OJForStatement){ OJForStatement ifs = (OJForStatement) statement; OJStatement s = ifs.getBody().findStatementRecursive(name); if(s != null){ return s; } }else{ // TODO } } return null; } public OJField findLocal(String name){
private void addCreateEdgeSchemas(OJAnnotatedClass globalMap) { OJAnnotatedOperation createEdgeSchemas = new OJAnnotatedOperation("createEdgeSchemas"); UmlgGenerationUtil.addOverrideAnnotation(createEdgeSchemas); createEdgeSchemas.addParam("edgeSchemaCreator", UmlgGenerationUtil.EdgeSchemaCreator); OJForStatement ojForStatement = new OJForStatement("label", new OJPathName("String"), UmlgGenerationUtil.QualifiedNameEdgeSchemaSet); ojForStatement.getBody().addToStatements("edgeSchemaCreator.create(label)"); createEdgeSchemas.getBody().addToStatements(ojForStatement); globalMap.addToOperations(createEdgeSchemas); }
private void addCreateVertexSchemas(OJAnnotatedClass globalMap) { OJAnnotatedOperation createVertexSchemas = new OJAnnotatedOperation("createVertexSchemas"); UmlgGenerationUtil.addOverrideAnnotation(createVertexSchemas); createVertexSchemas.addParam("vertexSchemaCreator", UmlgGenerationUtil.VertexSchemaCreator); OJForStatement ojForStatement = new OJForStatement("hierarchy", new OJPathName("List").addToGenerics("String"), UmlgGenerationUtil.QualifiedNameVertexSchemaSet); ojForStatement.getBody().addToStatements("vertexSchemaCreator.create(hierarchy)"); createVertexSchemas.getBody().addToStatements(ojForStatement); globalMap.addToOperations(createVertexSchemas); }
private static void buildGetAssociationClassForPropertyInstance(OJAnnotatedClass owner, PropertyWrapper propertyWrapper) { OJAnnotatedOperation getAC = new OJAnnotatedOperation(propertyWrapper.associationClassGetterForProperty(), propertyWrapper.getAssociationClassPathName()); getAC.addParam(propertyWrapper.fieldname(), propertyWrapper.javaBaseTypePath()); OJForStatement forAC = new OJForStatement("ac", propertyWrapper.getAssociationClassPathName(), "this." + propertyWrapper.getAssociationClassFakePropertyName()); OJIfStatement ifStatement = new OJIfStatement("ac." + propertyWrapper.getter() + "().equals(" + propertyWrapper.fieldname() + ")", "return ac"); forAC.getBody().addToStatements(ifStatement); getAC.getBody().addToStatements(forAC); getAC.getBody().addToStatements("return null"); owner.addToOperations(getAC); }
OJSimpleStatement ojSimpleStatementConstructor = new OJSimpleStatement(pWrap.javaBaseTypePath().getLast() + " " + pWrap.fieldname() + " = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(row.get(\"id\"))"); ojForStatement.getBody().addToStatements(ojSimpleStatementConstructor); OJSimpleStatement ojSimpleStatementFromJson = new OJSimpleStatement(pWrap.adder() + "(" + pWrap.fieldname() + ")"); ojForStatement.getBody().addToStatements(ojSimpleStatementFromJson);
protected void addImportsRecursively(OJBlock body) { if (body != null) { for (OJField ojField : body.getLocals()) { this.addToImports(ojField.getType()); } for (OJStatement s : body.getStatements()) { if (s instanceof OJIfStatement) { addImportsRecursively(((OJIfStatement) s).getThenPart()); addImportsRecursively(((OJIfStatement) s).getElsePart()); } else if (s instanceof OJBlock) { addImportsRecursively(((OJBlock) s)); } else if (s instanceof OJTryStatement) { addImportsRecursively(((OJTryStatement) s).getTryPart()); addImportsRecursively(((OJTryStatement) s).getCatchPart()); } else if (s instanceof OJWhileStatement) { addImportsRecursively(((OJWhileStatement) s).getBody()); } else if (s instanceof OJForStatement) { addImportsRecursively(((OJForStatement) s).getBody()); addToImports(((OJForStatement) s).getElemType()); } else if (s instanceof OJSwitchStatement) { for (OJSwitchCase ojSwitchCase : ((OJSwitchStatement) s).getCases()) { addImportsRecursively(ojSwitchCase.getBody()); } } } } }
public static void buildDeleteNotification(OJAnnotatedClass owner, OJAnnotatedOperation delete, PropertyWrapper propertyWrapper) { OJIfStatement ifChanged = new OJIfStatement(); ifChanged.setCondition("true"); PropertyWrapper otherEnd = PropertyWrapper.from(propertyWrapper.getOtherEnd()); if (otherEnd.isMany()) { OJForStatement forStatement = new OJForStatement(otherEnd.getName(), otherEnd.javaBaseTypePath(), "this." + otherEnd.getter() + "()"); forStatement.getBody().addToStatements(constructNotifierForOtherEndMany(propertyWrapper, otherEnd)); delete.getBody().addToStatements(0, forStatement); } else { ifChanged.addToThenPart( constructNotifier(propertyWrapper) ); delete.getBody().addToStatements(0, ifChanged); } owner.addToImports(UmlgClassOperations.getPathName(propertyWrapper.getOwningType()).append(UmlgClassOperations.propertyEnumName(propertyWrapper.getOwningType()))); owner.addToImports(UmlgGenerationUtil.UmlgNotificationManager); owner.addToImports(UmlgGenerationUtil.ChangeHolder); owner.addToImports(UmlgGenerationUtil.ChangeHolder); owner.addToImports("java.util.Optional"); }
ojForStatement.getBody().addToLocals(component); ojForStatement.getBody().addToStatements("Object idFromMap = row.get(\"id\")"); OJIfStatement ojIfStatement = new OJIfStatement("(idFromMap instanceof String) && (((String)idFromMap).startsWith(\"fake\"))"); annotatedClass.addToImports("java.lang.reflect.Constructor"); ojForStatement.getBody().addToStatements(ojIfStatement); ojForStatement.getBody().addToStatements(pWrap.fieldname() + ".fromJsonNonCompositeOne(row)"); } else if (pWrap.isMany() && pWrap.isEnumeration()) { throw new IllegalStateException("Should not happen");
new OJPathName("Object")), "array"); ifArrayForUpdate.addToThenPart(forArray); forArray.getBody().addToStatements("put(resultMap, map)"); OJField map = new OJField("map", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object")); map.setInitExp("(Map<String, Object>) o"); jsonResultBlock.addToStatements(forConcreteClassifiers); if (pWrap.isOne()) { forConcreteClassifiers.getBody().addToStatements("result.append(\"{\\\"data\\\": \")"); } else { forConcreteClassifiers.getBody().addToStatements("result.append(\"{\\\"data\\\": [\")"); forConcreteClassifiers.getBody().addToStatements("result.append(resultMap.get(baseClass))"); if (pWrap.isOne()) { forConcreteClassifiers.getBody().addToStatements("result.append(\",\")"); } else { forConcreteClassifiers.getBody().addToStatements("result.append(\"],\")"); forConcreteClassifiers.getBody().addToStatements("result.append(\" \\\"meta\\\" : {\")"); forConcreteClassifiers.getBody().addToStatements("result.append(\"\\\"qualifiedName\\\": \\\"" + pWrap.getQualifiedName() + "AC\\\"\")"); forConcreteClassifiers.getBody().addToStatements("result.append(\", \\\"to\\\": \")"); forConcreteClassifiers.getBody().addToStatements(ifClassInstanceOf); Set<Classifier> concreteImplementations = UmlgClassOperations.getConcreteImplementations(pWrap.getAssociationClass()); boolean first = true; ifLast.addToThenPart("result.append(\"}\")"); ifLast.addToElsePart("result.append(\"},\")"); forConcreteClassifiers.getBody().addToStatements(ifLast);
if (pWrap.isMany()) { OJForStatement forChildToDelete = new OJForStatement("child", pWrap.javaBaseTypePath(), pWrap.getter() + "()"); forChildToDelete.getBody().addToStatements("child.delete()"); delete.getBody().addToStatements(forChildToDelete); } else {
OJSimpleStatement ojSimpleStatementConstructor = new OJSimpleStatement(pWrap.javaBaseTypePath().getLast() + " " + pWrap.fieldname() + " = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(row.get(\"id\"))"); ojForStatement.getBody().addToStatements(ojSimpleStatementConstructor); OJSimpleStatement ojSimpleStatementFromJson = new OJSimpleStatement(pWrap.adder() + "(" + pWrap.fieldname() + ")"); ojForStatement.getBody().addToStatements(ojSimpleStatementFromJson); } else if (pWrap.isMany() && !pWrap.isDataType() && pWrap.isComponent()) { ifNotNull.addToThenPart(pWrap.clearer() + "()"); ojForStatement.getBody().addToLocals(component); OJField idField = new OJField("idField", "String"); idField.setInitExp("(String)row.get(\"id\")"); ojForStatement.getBody().addToLocals(idField); OJIfStatement ojIfStatement = new OJIfStatement("idField != null && !idField.startsWith(\"fake\")"); OJSimpleStatement ojSimpleStatementConstructor = new OJSimpleStatement(pWrap.fieldname() + " = " + UmlgGenerationUtil.UMLGAccess ojForStatement.getBody().addToStatements(ojIfStatement); ojForStatement.getBody().addToStatements(pWrap.fieldname() + ".fromJsonNonCompositeOne(row)"); } else if (pWrap.isMany() && pWrap.isEnumeration()) { ifNotNull.addToThenPart(pWrap.clearer() + "()"); OJForStatement ojForStatement = new OJForStatement("enumLiteral", new OJPathName("String"), pWrap.fieldname()); ojForStatement.getBody().addToStatements(pWrap.adder() + "(" + pWrap.javaBaseTypePath().getLast() + ".valueOf(enumLiteral))"); ifNotNull.addToThenPart(ojForStatement); } else if (pWrap.isMany() && pWrap.isDataType()) { ifNotNull.addToThenPart(pWrap.clearer() + "()"); OJForStatement ojForStatement = new OJForStatement("value", pWrap.javaBaseTypePath(), pWrap.fieldname()); ojForStatement.getBody().addToStatements(pWrap.adder() + "(" + pWrap.javaBaseTypePath().getLast() + ".valueOf(value))"); ifNotNull.addToThenPart(ojForStatement); } else {
new OJPathName("Object")), "array"); ifArrayForInsert.addToThenPart(forArray); forArray.getBody().addToStatements("add(parentResource, map)"); ifArrayForDelete.addToThenPart(forArray); if (pWrap.isComposite()) { forArray.getBody().addToStatements("delete(map)"); } else { forArray.getBody().addToStatements("delete(parentResource, map)"); new OJPathName("Object")), "array"); ifArrayForUpdate.addToThenPart(forArray); forArray.getBody().addToStatements("put(map)"); map = new OJField("map", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object")); map.setInitExp("(Map<String, Object>) o");
ifArrayForInsert.addToThenPart(insertForArray); insertForArray.getBody().addToStatements("objectList.add(add(map))"); ifArrayForUpdate.addToThenPart(updateForArray); updateForArray.getBody().addToStatements("objectList.add(put(map))"); new OJPathName("Object")), "array"); ifArrayForDelete.addToThenPart(deleteForArray); deleteForArray.getBody().addToStatements("delete(map)"); OJField deleteMap = new OJField("map", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object")); deleteMap.setInitExp("(Map<String, Object>) o"); forObjectList.getBody().addToStatements("json.append(umlgNode.toJsonWithoutCompositeParent(true))"); OJIfStatement ifCountSize = new OJIfStatement("++count < objectList.size()", "json.append(\",\")"); forObjectList.getBody().addToStatements(ifCountSize); ojTryStatement.getTryPart().addToStatements(forObjectList);
associationClassPairs.getBody().addToStatements(propertyWrapper.adder() + "(pair.getFirst(), pair.getSecond())"); adder.getBody().addToStatements(associationClassPairs); String elementName = "_" + propertyWrapper.fieldname().substring(0, 1); OJForStatement forAll = new OJForStatement(elementName, propertyWrapper.javaBaseTypePath(), propertyWrapper.fieldname()); forAll.getBody().addToStatements("this." + propertyWrapper.adder() + "(" + elementName + ")"); adder.getBody().addToStatements(forAll);
ojForStatement.getBody().addToStatements(forStatement); statement = ojForStatement; } else {
new OJPathName("Object")), "array"); ifArrayForInsert.addToThenPart(insertForArray); insertForArray.getBody().addToStatements("add(map)"); OJField insertMap = new OJField("map", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object")); insertMap.setInitExp("(Map<String, Object>) o"); new OJPathName("Object")), "array"); ifArrayForUpdate.addToThenPart(updateForArray); updateForArray.getBody().addToStatements("put(map)"); OJField updateMap = new OJField("map", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object")); updateMap.setInitExp("(Map<String, Object>) o"); new OJPathName("Object")), "array"); ifArrayForDelete.addToThenPart(deleteForArray); deleteForArray.getBody().addToStatements("delete(map)"); OJField deleteMap = new OJField("map", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object")); deleteMap.setInitExp("(Map<String, Object>) o");
forStatement = new OJSimpleStatement("this." + pWrap.fieldname() + ".z_internalAdder(s)"); ojForStatement.getBody().addToStatements(forStatement); statement = ojForStatement; } else {