/** Copies all attributes and associations of this instance into 'copy'. True parts, i.e. associations marked 'aggregate' or 'composite', and attributes, are copied as well. References to other objects, i.e. associations not marked 'aggregate' or 'composite', will not be copied. The 'copy' will refer to the same objects as the original (this) instance. * * @param copy */ public void copyInfoInto(OJBlock copy) { super.copyInfoInto(copy); Iterator statementsIt = new ArrayList<OJStatement>(getStatements()).iterator(); while ( statementsIt.hasNext() ) { OJStatement elem = (OJStatement) statementsIt.next(); copy.addToStatements(elem); } Iterator localsIt = new ArrayList<OJField>(getLocals()).iterator(); while ( localsIt.hasNext() ) { OJField elem = (OJField) localsIt.next(); copy.addToLocals(elem); } }
private OJBlock addToElseIf(String s) { OJBlock block = new OJBlock(); block.addToStatements(s); this.elseIfPart.add(block); return block; }
public void copyDeepInfoInto(OJBlock copy){ for(OJStatement statement:getStatements()){ copy.addToStatements(statement.getDeepCopy()); } for(OJField ojField:getLocals()){ copy.addToLocals(ojField.getDeepCopy()); } } public void renameAll(Set<OJPathName> renamePathNames,String newName){
public OJBlock getDeepCopy(){ OJBlock copy = new OJBlock(); copyDeepInfoInto(copy); return copy; } public void copyDeepInfoInto(OJBlock copy){
/** * @return */ public OJBlock getCopy(){ OJBlock newBody = new OJBlock(); List<OJStatement> stats = new ArrayList<OJStatement>(this.getStatements()); newBody.setStatements(stats); return newBody; } public OJBlock getDeepCopy(){
private void addPutResource(PropertyWrapper pWrap, OJAnnotatedClass annotatedClass, OJPathName parentPathName) { OJAnnotatedOperation put = new OJAnnotatedOperation("put"); put.setVisibility(OJVisibilityKind.PRIVATE); 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.javaBaseTypePath().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.javaBaseTypePath().getLast())); baseTumlClass.setInitExp("childResource.getClass()"); secondBlock.addToLocals(baseTumlClass); put.getBody().addToStatements(secondBlock); }
/** * @param string */ public void addToThenPart(String string) { this.getThenPart().addToStatements(string); }
/********************************************************************* * The constructor ********************************************************************/ public OJIfStatement() { super(); this.setThenPart(new OJBlock()); }
private void addPrimitiveInitVariables(OJAnnotatedClass annotatedClass, Class clazz) { OJOperation initVariables = new OJAnnotatedOperation(INIT_DATE_TYPE_VARIABLES_WITH_DEFAULT_VALUES); if (UmlgClassOperations.hasSupertype(clazz)) { OJSimpleStatement simpleStatement = new OJSimpleStatement("super." + INIT_DATE_TYPE_VARIABLES_WITH_DEFAULT_VALUES + "()"); if (initVariables.getBody().getStatements().isEmpty()) { initVariables.getBody().addToStatements(simpleStatement); } else { initVariables.getBody().getStatements().set(0, simpleStatement); } } annotatedClass.addToOperations(initVariables); }
private OJBlock addToElseIf(OJField f) { OJBlock block = new OJBlock(); block.addToLocals(f); this.elseIfPart.add(block); return block; }
asJson.getBody().removeAllFromStatements(); asJson.getBody().addToStatements("StringBuilder sb = new StringBuilder();"); asJson.getBody().addToStatements("sb.append(\"{\\\"name\\\": \\\"" + model.getName() + "\\\", \")"); asJson.getBody().addToStatements("uri", "sb.append(\"\\\"uri\\\": \\\"TODO\\\", \")"); asJson.getBody().addToStatements("properties", "sb.append(\"\\\"properties\\\": [\")"); asJson.getBody().addToStatements("sb.append(" + StringUtils.capitalize(model.getName()) + "RuntimePropertyEnum." + model.getName() + ".toJson())"); asJson.getBody().addToStatements("sb.append(\",\")"); asJson.getBody().addToStatements( "sb.append(" + ojEnum.getName() + "." + StringUtils.uncapitalize(UmlgClassOperations.className(clazz)) + ".toJson())"); if (count != result.size()) { asJson.getBody().addToStatements("sb.append(\",\")"); asJson.getBody().addToStatements("sb.append(\"]}\")"); asJson.getBody().addToStatements("return sb.toString()"); for (OJStatement s : fromLabel.getBody().getStatements()) { if (s.toJavaString().equals("return null;")) { toRemove.add(count); fromLabel.getBody().getStatements().remove(integer.intValue()); fromLabel.getBody().addToStatements("return null"); for (OJStatement s : fromQualifiedName.getBody().getStatements()) { if (s.toJavaString().equals("return null;")) { toRemove.add(count);
private void add_getUriToObject(Class clazz, OJEnum ojEnum) { OJAnnotatedOperation getUriToObject = new OJAnnotatedOperation("getUriToObject", new OJPathName("String")); getUriToObject.setStatic(true); getUriToObject.getBody().addToStatements( "return " + "\"/" + this.workspace.getModel().getName() + "/" + UmlgClassOperations.getPathName(clazz).getLast().toLowerCase() + "s/{" + UmlgClassOperations.getPathName(clazz).getLast().toLowerCase() + "Id}\""); ojEnum.addToOperations(getUriToObject); OJAnnotatedOperation asJson = ojEnum.findOperation("asJson"); OJSimpleStatement s = (OJSimpleStatement) asJson.getBody().findStatement("uri"); s.setExpression("sb.append(\"\\\"uri\\\": \\\"\" + getUriToObject() + \"\\\", \")"); }
public String toJavaString(){ String result = ""; if(getComment().length() != 0) result = "/* " + getComment() + "*/\n"; if(!getLocals().isEmpty()){ result = result + JavaUtil.collectionToJavaString(getLocals(), "\n") + "\n"; } result = result + JavaUtil.collectionToJavaString(getStatements(), "\n"); return result; } /**
public void addToStatements(int index,OJStatement statement){ getStatements().add(index, statement); } public void addToStatements(int indexOfRemoveVertex,String expression){
public void renameAll(Set<OJPathName> renamePathNames,String newName){ for(OJStatement statement:getStatements()){ statement.renameAll(renamePathNames, newName); } for(OJField ojField:getLocals()){ ojField.renameAll(renamePathNames, newName); } } public OJStatement findStatement(String name){
public OJField(OJBlock block, String name, OJPathName type) { this(name, type); block.addToLocals(this); }
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){
public String toJavaString() { String result = ""; result = "try {\n"; result = result + JavaStringHelpers.indent(getTryPart().toJavaString(), 1); if (getCatchPart() != null) { result = result + "\n} catch (" + getCatchParam().toJavaString() + ") {\n"; result = result + JavaStringHelpers.indent(getCatchPart().toJavaString(), 1); result = result + "\n}"; } if (getFinallyPart() != null && !getFinallyPart().getStatements().isEmpty()) { if (getCatchPart() == null) { result = result + "\n} finally {\n"; } else { result = result + " finally {\n"; } result = result + JavaStringHelpers.indent(getFinallyPart().toJavaString(), 1); result = result + "\n}"; } return result; }
private void addUriToObject(Model model, OJEnum ojEnum) { OJAnnotatedOperation asJson = ojEnum.findOperation("asJson"); OJSimpleStatement s = (OJSimpleStatement) asJson.getBody().findStatement("uri"); s.setExpression("sb.append(\"\\\"uri\\\": \\\"/" + model.getName() + "\\\", \")"); }
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); }