public OJIfStatement(String condition, String thenPart, String elsePart) { super(); this.setThenPart(new OJBlock()); this.setCondition(condition); this.addToThenPart(thenPart); this.addToElsePart(elsePart); }
private void addTmpIdToFromJson(OJAnnotatedClass annotatedClass) { OJAnnotatedOperation fromJson = annotatedClass.findOperation("fromJsonDataTypeAndComposite", new OJPathName("java.util.Map")); OJIfStatement ifStatement = new OJIfStatement("propertyMap.containsKey(\"tmpId\")"); OJIfStatement ifStatement1 = new OJIfStatement("propertyMap.get(\"tmpId\") != null"); ifStatement.addToThenPart(ifStatement1); ifStatement1.addToThenPart("this.tmpId = (String)propertyMap.get(\"tmpId\")"); ifStatement1.addToThenPart(UmlgGenerationUtil.UmlgTmpIdManager.getLast() + ".INSTANCE.put(this.tmpId, getId())"); annotatedClass.addToImports(UmlgGenerationUtil.UmlgTmpIdManager); ifStatement1.addToElsePart("this.tmpId = null"); fromJson.getBody().addToStatements(ifStatement); }
private void addMetaClassGetterToRoot(Classifier classifier, OJAnnotatedClass metaClass) { OJAnnotatedOperation INSTANCE = new OJAnnotatedOperation("getInstance"); INSTANCE.setStatic(true); INSTANCE.setReturnType(metaClass.getPathName()); metaClass.addToOperations(INSTANCE); OJField result = new OJField("result", metaClass.getPathName()); INSTANCE.getBody().addToLocals(result); INSTANCE.getBody().addToStatements("Iterator<Edge> iter = " + UmlgGenerationUtil.UMLGAccess + ".getRoot().edges(Direction.OUT, " + UmlgGenerationUtil.UmlgLabelConverterFactoryPathName.getLast() + ".getUmlgLabelConverter().convert(\"" + UmlgGenerationUtil.getEdgeToRootLabelStrategyMeta(classifier) + "\"))"); OJIfStatement ifHasNext = new OJIfStatement("iter.hasNext()"); ifHasNext.addToThenPart("result = new " + UmlgClassOperations.getMetaClassName(classifier) + "(iter.next().inVertex())"); INSTANCE.getBody().addToStatements(ifHasNext); ifHasNext.addToElsePart("iter = " + UmlgGenerationUtil.UMLGAccess + ".getRoot().edges(Direction.OUT, " + UmlgGenerationUtil.UmlgLabelConverterFactoryPathName.getLast() + ".getUmlgLabelConverter().convert(\"" + UmlgGenerationUtil.getEdgeToRootLabelStrategyMeta(classifier) + "\"))"); OJIfStatement ifIter2 = new OJIfStatement("!iter.hasNext()"); ifIter2.addToThenPart("result = new " + metaClass.getName() + "()"); ifIter2.addToElsePart("result = new " + metaClass.getName() + "(iter.next().inVertex())"); ifHasNext.addToElsePart(ifIter2); INSTANCE.getBody().addToStatements("return result"); metaClass.addToImports("java.util.Iterator"); metaClass.addToImports(UmlgGenerationUtil.tinkerDirection); metaClass.addToImports(UmlgGenerationUtil.edgePathName); metaClass.addToImports(UmlgGenerationUtil.UMLGPathName); }
INSTANCE.getBody().addToStatements(ifHasNext); ifHasNext.addToElsePart("iter = " + UmlgGenerationUtil.UMLGAccess + ".getRoot().edges(Direction.OUT, " + UmlgGenerationUtil.UmlgLabelConverterFactoryPathName.getLast() + ".getUmlgLabelConverter().convert(\"" + UmlgGenerationUtil.getEdgeToRootLabelStrategyMeta(clazz) + "\"))"); ifIter2.addToElsePart("result = new " + metaClass.getName() + "(iter.next().inVertex())"); ifHasNext.addToElsePart(ifIter2);
ojClass.addToImports(qualified.javaClosableIteratorTypePath()); ifHasNext.addToThenPart(ojSimpleStatement); ifHasNext.addToElsePart("return " + qualified.emptyCollection()); ojClass.addToImports(UmlgGenerationUtil.umlgUmlgCollections);
@Override public void visitBefore(Enumeration element) { OJAnnotatedClass annotatedClass = findOJClass(element); OJAnnotatedOperation toJson = new OJAnnotatedOperation("toJson", new OJPathName("String")); toJson.getBody().addToStatements("return name()"); annotatedClass.addToOperations(toJson); OJAnnotatedOperation fromJson = new OJAnnotatedOperation("fromJson", annotatedClass.getPathName()); fromJson.setStatic(true); fromJson.addParam("json", new OJPathName("String")); OJIfStatement ifS = new OJIfStatement("json == null || json.equals(\"null\")", "return null"); ifS.addToElsePart("return " + annotatedClass.getPathName().getLast() + ".valueOf(json)"); fromJson.getBody().addToStatements(ifS); annotatedClass.addToOperations(fromJson); }
protected void persistUid(OJAnnotatedClass ojClass) { OJAnnotatedOperation getUid = new OJAnnotatedOperation("getUid"); getUid.setReturnType(new OJPathName("String")); getUid.addAnnotationIfNew(new OJAnnotationValue(new OJPathName("java.lang.Override"))); getUid.getBody().removeAllFromStatements(); new OJField(getUid.getBody(), "uid", "String"); OJIfStatement ifUidNotPresent = new OJIfStatement("!this.vertex.property(\"uid\").isPresent()"); ifUidNotPresent.addToThenPart("uid=UUID.randomUUID().toString()"); ifUidNotPresent.addToThenPart("this.vertex.property(\"uid\", uid)"); ifUidNotPresent.addToElsePart("uid=this.vertex.value(\"uid\")"); getUid.getBody().addToStatements(ifUidNotPresent); getUid.getBody().addToStatements("return uid"); ojClass.addToImports("java.util.UUID"); ojClass.addToOperations(getUid); }
public static void buildGetterForAssociationClass(OJAnnotatedClass ac, PropertyWrapper propertyWrapper) { PropertyWrapper otherEnd = new PropertyWrapper(propertyWrapper.getOtherEnd()); OJAnnotatedOperation getter = new OJAnnotatedOperation(otherEnd.getter(), otherEnd.javaBaseTypePath()); OJAnnotatedField tmpField = new OJAnnotatedField("tmp", otherEnd.javaTumlTypePath(true)); getter.getBody().addToLocals(tmpField); tmpField.setInitExp("this." + otherEnd.fieldname()); OJIfStatement ifFieldNotEmpty = new OJIfStatement("!" + tmpField.getName() + ".isEmpty()"); if (otherEnd.isOrdered()) { ifFieldNotEmpty.addToThenPart("return " + tmpField.getName() + ".get(0)"); } else { ifFieldNotEmpty.addToThenPart("return " + tmpField.getName() + ".iterator().next()"); } ifFieldNotEmpty.addToElsePart("return null"); getter.getBody().addToStatements(ifFieldNotEmpty); ac.addToOperations(getter); }
public static void buildGetterForAssociationClass(OJAnnotatedClass ac, PropertyWrapper propertyWrapper) { PropertyWrapper otherEnd = new PropertyWrapper(propertyWrapper.getOtherEnd()); OJAnnotatedOperation getter = new OJAnnotatedOperation(otherEnd.getter(), otherEnd.javaBaseTypePath()); OJAnnotatedField tmpField = new OJAnnotatedField("tmp", otherEnd.javaTumlTypePath(true)); getter.getBody().addToLocals(tmpField); tmpField.setInitExp("this." + otherEnd.fieldname()); OJIfStatement ifFieldNotEmpty = new OJIfStatement("!" + tmpField.getName() + ".isEmpty()"); if (otherEnd.isOrdered()) { ifFieldNotEmpty.addToThenPart("return " + tmpField.getName() + ".get(0)"); } else { ifFieldNotEmpty.addToThenPart("return " + tmpField.getName() + ".iterator().next()"); } ifFieldNotEmpty.addToElsePart("return null"); getter.getBody().addToStatements(ifFieldNotEmpty); ac.addToOperations(getter); }
ifInverse.addToThenPart("runtimeProperty = " + "(" + UmlgClassOperations.propertyEnumName(clazz) + ".fromQualifiedName(tumlRuntimeProperty.getQualifiedName()))"); ifInverse.addToElsePart("runtimeProperty = " + "(" + UmlgClassOperations.propertyEnumName(clazz) + ".fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName()))"); ifNotNull.addToThenPart(ojSwitchStatement); ifNotNull.addToThenPart("return runtimeProperty"); ifNotNull.addToElsePart("return null"); ifRuntimeNull.addToElsePart(ifInverse); ifRuntimeNull.addToElsePart(ifNotNull); initialiseProperty.getBody().addToStatements(ifRuntimeNull); } else {
ifInverse.addToThenPart("runtimeProperty = " + "(" + UmlgClassOperations.propertyEnumName(associationClass) + ".fromQualifiedName(tumlRuntimeProperty.getQualifiedName()))"); ifInverse.addToElsePart("runtimeProperty = " + "(" + UmlgClassOperations.propertyEnumName(associationClass) + ".fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName()))"); ifNotNull.addToThenPart(ojSwitchStatement); ifNotNull.addToThenPart("return runtimeProperty"); ifNotNull.addToElsePart("return null"); ifRuntimeNull.addToElsePart(ifInverse); ifRuntimeNull.addToElsePart(ifNotNull); initialiseProperty.getBody().addToStatements(ifRuntimeNull); } else {
ifFieldNotEmpty.addToThenPart("return " + tmpField.getName() + ".iterator().next()"); ifFieldNotEmpty.addToElsePart("return null"); getter.getBody().addToStatements(ifFieldNotEmpty); owner.addToOperations(getter); ifFieldNotEmpty.addToThenPart("return " + tmpField.getName() + ".iterator().next()"); ifFieldNotEmpty.addToElsePart("return null"); getter.getBody().addToStatements(ifFieldNotEmpty); owner.addToOperations(getter);
private void addPutResource(PropertyWrapper pWrap, OJAnnotatedClass annotatedClass, OJPathName parentPathName) { OJAnnotatedOperation put = new OJAnnotatedOperation("put"); put.setVisibility(OJVisibilityKind.PRIVATE); put.addToParameters(new OJParameter("resultMap", new OJPathName("java.util.Map").addToGenerics(new OJPathName("Class").addToGenerics("? extends " + pWrap.getAssociationClassPathName().getLast())).addToGenerics("java.lang.StringBuilder"))); put.addToParameters(new OJParameter("propertyMap", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object"))); annotatedClass.addToOperations(put); OJBlock firstBlock = new OJBlock(); firstBlock.addToStatements("Object id = propertyMap.get(\"id\")"); firstBlock.addToStatements(pWrap.getAssociationClassPathName().getLast() + " childResource = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(id)"); annotatedClass.addToImports(pWrap.javaBaseTypePath()); firstBlock.addToStatements("childResource.fromJson(propertyMap)"); put.getBody().addToStatements(firstBlock); OJBlock secondBlock = new OJBlock(); OJField baseTumlClass = new OJField("baseTumlClass", new OJPathName("Class").addToGenerics("? extends " + pWrap.getAssociationClassPathName().getLast())); baseTumlClass.setInitExp("childResource.getClass()"); secondBlock.addToLocals(baseTumlClass); OJField sb = new OJField("sb", "StringBuilder"); secondBlock.addToLocals(sb); OJIfStatement ifSbExist = new OJIfStatement("!resultMap.containsKey(baseTumlClass)"); ifSbExist.addToThenPart("sb = new StringBuilder()"); ifSbExist.addToThenPart("resultMap.put(baseTumlClass, sb)"); ifSbExist.addToElsePart("sb = resultMap.get(baseTumlClass)"); ifSbExist.addToElsePart("sb.append(\",\")"); secondBlock.addToStatements(ifSbExist); secondBlock.addToStatements("sb.append(childResource.toJsonWithoutCompositeParent())"); put.getBody().addToStatements(secondBlock); }
ifCompositeParentNotNull.addToElsePart("result = null"); getOwningObject.getBody().addToStatements(ifCompositeParentNotNull); getOwningObject.getBody().addToStatements("return result");
ojIfStatement.addToElsePart("return null"); getter.getBody().addToStatements(ojIfStatement); } else {
ifInverse.addToThenPart("runtimeProperty = " + UmlgClassOperations.propertyEnumName(clazz) + ".fromQualifiedName(tumlRuntimeProperty.getQualifiedName())"); ifInverse.addToElsePart("runtimeProperty = " + UmlgClassOperations.propertyEnumName(clazz) + ".fromQualifiedName(tumlRuntimeProperty.getInverseQualifiedName())"); getQualifiers.getBody().addToStatements(ifInverse);
ifSbExist.addToThenPart("sb = new StringBuilder()"); ifSbExist.addToThenPart("resultMap.put(baseTumlClass, sb)"); ifSbExist.addToElsePart("sb = resultMap.get(baseTumlClass)"); ifSbExist.addToElsePart("sb.append(\",\")"); add.getBody().addToStatements(ifSbExist);
ojIfStatement.addToElsePart("return null"); getter.getBody().addToStatements(ojIfStatement); } else {
ifValidated.addToElsePart("throw new UmlgConstraintViolationException(violations)"); owner.addToImports(UmlgGenerationUtil.UmlgConstraintViolationException);
ifSbExist.addToThenPart("objectList = new ArrayList<" + UmlgRestletGenerationUtil.UmlgNodeJsonHolder.getLast() + ">()"); ifSbExist.addToThenPart("resultMap.put(baseTumlClass, objectList)"); ifSbExist.addToElsePart("objectList = resultMap.get(baseTumlClass)"); secondBlock.addToStatements(ifSbExist);