private void addGetRepresentation(Class clazz, OJAnnotatedClass annotatedClass) { OJAnnotatedOperation get = new OJAnnotatedOperation("get", UmlgRestletGenerationUtil.Representation); get.addToThrows(UmlgRestletGenerationUtil.ResourceException); annotatedClass.addToImports(UmlgRestletGenerationUtil.ResourceException); UmlgGenerationUtil.addOverrideAnnotation(get); OJTryStatement tryStatement = new OJTryStatement(); tryStatement.getTryPart().addToStatements("StringBuilder json = new StringBuilder()"); tryStatement.getTryPart().addToStatements( "this." + getIdFieldName(clazz) + "= " + UmlgRestletGenerationUtil.UmlgURLDecoder.getLast() + ".decode((String)getRequestAttributes().get(\"" + getIdFieldName(clazz) + "\"))"); annotatedClass.addToImports(UmlgRestletGenerationUtil.UmlgURLDecoder); tryStatement.getTryPart().addToStatements( UmlgClassOperations.className(clazz) + " c = " + UmlgGenerationUtil.UMLGAccess + ".getEntity(this." + getIdFieldName(clazz) + ")"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz)); tryStatement.getTryPart().addToStatements("json.append(\"[{\\\"data\\\": \")"); tryStatement.getTryPart().addToStatements("json.append(" + "c.toJsonWithoutCompositeParent())"); tryStatement.getTryPart().addToStatements("meta", "json.append(\", \\\"meta\\\" : {\")"); tryStatement.getTryPart().addToStatements("json.append(\"\\\"qualifiedName\\\": \\\"" + clazz.getQualifiedName() + "\\\"\")"); tryStatement.getTryPart().addToStatements("json.append(\"}}]\")"); tryStatement.getTryPart().addToStatements("return new " + UmlgRestletGenerationUtil.JsonRepresentation.getLast() + "(json.toString())"); get.getBody().addToStatements(tryStatement); tryStatement.setCatchPart(null); tryStatement.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); annotatedClass.addToImports(UmlgGenerationUtil.UMLGPathName); annotatedClass.addToImports(UmlgRestletGenerationUtil.JsonRepresentation); annotatedClass.addToOperations(get); }
public void copyDeepInfoInto(OJTryStatement copy) { super.copyDeepInfoInto(copy); if (getTryPart() != null) { copy.setTryPart(getTryPart().getDeepCopy()); } if (getCatchPart() != null) { copy.setCatchPart(getCatchPart().getDeepCopy()); } if (getCatchParam() != null) { copy.setCatchParam(getCatchParam().getDeepCopy()); } if (getFinallyPart() != null) { copy.setFinallyPart(getFinallyPart().getDeepCopy()); } }
public OJTryStatement getDeepCopy() { OJTryStatement copy = new OJTryStatement(); copyDeepInfoInto(copy); return copy; }
@Override public void renameAll(Set<OJPathName> match, String suffix) { getCatchParam().renameAll(match, suffix); getCatchPart().renameAll(match, suffix); }
/** * Wraps the source expression in a try catch block. If * OclIsInvalidException is caught return true else false */ @Override public String handleOperationExp(OperationCallExp<Classifier, Operation> oc, String sourceResult, List<String> argumentResults) { if (!argumentResults.isEmpty()) { throw new IllegalStateException("oclIsInvalid operation can not have arguments!"); } String operationName = oc.getReferredOperation().getName(); OJAnnotatedOperation oper = new OJAnnotatedOperation(operationName + this.ojClass.countOperationsStartingWith(operationName), new OJPathName("Boolean")); this.ojClass.addToOperations(oper); oper.setVisibility(OJVisibilityKind.PRIVATE); OJTryStatement ojTryStatement = new OJTryStatement(); ojTryStatement.getTryPart().addToStatements("return " + sourceResult + " == null"); // ojTryStatement.getTryPart().addToStatements("return false"); ojTryStatement.setCatchParam(new OJParameter("e", UmlgGenerationUtil.umlgOclIsInvalidException.getCopy())); this.ojClass.addToImports(UmlgGenerationUtil.umlgOclIsInvalidException.getCopy()); ojTryStatement.getCatchPart().addToStatements("return true"); oper.getBody().addToStatements(ojTryStatement); return oper.getName() + "()"; // return ojTryStatement.toJavaString(); } }
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; }
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()); } } } } }
/** 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(OJTryStatement copy) { super.copyInfoInto(copy); if ( getTryPart() != null ) { copy.setTryPart(getTryPart()); } if ( getCatchPart() != null ) { copy.setCatchPart(getCatchPart()); } if ( getCatchParam() != null ) { copy.setCatchParam(getCatchParam()); } }
protected void commitOrRollback(OJTryStatement ojTryStatement) { OJIfStatement ifTransactionNeedsCommitOrRollback = new OJIfStatement("!(getQueryValue(\"" + UmlgGenerationUtil.rollback+ "\") != null && Boolean.valueOf(getQueryValue(\"" + UmlgGenerationUtil.rollback + "\")))"); ifTransactionNeedsCommitOrRollback.addToThenPart(UmlgGenerationUtil.UMLGAccess + ".commit()"); ojTryStatement.getTryPart().addToStatements(ifTransactionNeedsCommitOrRollback); ojTryStatement.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); }
/********************************************************************* * The constructors ********************************************************************/ public OJTryStatement() { super(); setCatchPart(new OJBlock()); setTryPart(new OJBlock()); setFinallyPart(new OJBlock()); }
/** Returns a copy of this instance. 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 returned copy will refer to the same objects as the original (this) instance. */ public OJElement getCopy() { OJTryStatement result = new OJTryStatement(); this.copyInfoInto(result); return result; }
+ getIdFieldName(clazz) + ")"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz)); OJTryStatement ojTry = new OJTryStatement(); ojTry.getTryPart().addToLocals(entityText); ojTry.getTryPart().addToStatements("c.fromJson(" + entityText.getName() + ")"); ojTry.getTryPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".commit()"); ojTry.getTryPart().addToStatements("StringBuilder json = new StringBuilder()"); ojTry.getTryPart().addToStatements("json.append(\"[{\\\"data\\\": \")"); ojTry.getTryPart().addToStatements("json.append(" + "c.toJsonWithoutCompositeParent())"); ojTry.getTryPart().addToStatements("meta", "json.append(\", \\\"meta\\\" : {\")"); ojTry.getTryPart().addToStatements("json.append(\"\\\"qualifiedName\\\": \\\"" + clazz.getQualifiedName() + "\\\"\")"); ojTry.getTryPart().addToStatements("json.append(\", \\\"to\\\": \")"); ojTry.getTryPart().addToStatements("json.append(" + UmlgClassOperations.propertyEnumName(clazz) + ".asJson())"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz).append(UmlgClassOperations.propertyEnumName(clazz))); ojTry.getTryPart().addToStatements("json.append(\"}}]\")"); ojTry.getTryPart().addToStatements("return new " + UmlgRestletGenerationUtil.JsonRepresentation.getLast() + "(json.toString())"); ojTry.setCatchParam(new OJParameter("e", new OJPathName("java.lang.Exception"))); ojTry.getCatchPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); OJIfStatement ifRuntime = new OJIfStatement("e instanceof RuntimeException"); ifRuntime.addToThenPart("throw (RuntimeException)e"); ojTry.getCatchPart().addToStatements(ifRuntime); ojTry.getCatchPart().addToStatements("throw new RuntimeException(e)"); put.getBody().addToStatements(ojTry); ojTry.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()");
+ getIdFieldName(clazz) + ")"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz)); OJTryStatement ojTry = new OJTryStatement(); ojTry.getTryPart().addToLocals(entityText); ojTry.getTryPart().addToStatements("c.fromJson(" + entityText.getName() + ")"); ojTry.getTryPart().addToStatements("String lookupUri = " + UmlgRestletGenerationUtil.UmlgURLEncoder.getLast() + ".decode(getReference().getQueryAsForm(false).getFirstValue(\"lookupUri\"))"); ojTry.getTryPart().addToStatements("lookupUri = \"riap://host\" + lookupUri"); ojTry.getTryPart().addToStatements("int fakeIdIndex = lookupUri.indexOf(\"fake\")"); OJIfStatement ifFakeId = new OJIfStatement("fakeIdIndex != -1"); ifFakeId.addToThenPart("int indexOfForwardSlash = lookupUri.indexOf(\"/\", fakeIdIndex)"); ifFakeId.addToThenPart("Object id = " + UmlgGenerationUtil.UmlgTmpIdManager.getLast() + ".INSTANCE.get(fakeId)"); ifFakeId.addToThenPart("lookupUri = lookupUri.replace(fakeId, " + UmlgRestletGenerationUtil.UmlgURLDecoder.getLast() + ".encode(id.toString()))"); ojTry.getTryPart().addToStatements(ifFakeId); annotatedClass.addToImports(UmlgGenerationUtil.UmlgTmpIdManager); ojTry.getTryPart().addToStatements(UmlgRestletGenerationUtil.ClientResource.getLast() + " cr = new ClientResource(lookupUri)"); annotatedClass.addToImports(UmlgRestletGenerationUtil.ClientResource); annotatedClass.addToImports(UmlgRestletGenerationUtil.UmlgURLEncoder); ojTry.getTryPart().addToStatements(UmlgRestletGenerationUtil.Representation.getLast() + " result = cr.get()"); ojTry.getTryPart().addToStatements("return result"); ojTry.getFinallyPart().addToStatements(UmlgGenerationUtil.UmlgTmpIdManager.getLast() + ".INSTANCE.remove()"); ojTry.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); ojTry.setCatchParam(new OJParameter("e", new OJPathName("java.lang.Exception")));
private void addGetRepresentation(Class clazz, OJAnnotatedClass annotatedClass) { OJAnnotatedOperation get = new OJAnnotatedOperation("get", UmlgRestletGenerationUtil.Representation); get.addToThrows(UmlgRestletGenerationUtil.ResourceException); annotatedClass.addToImports(UmlgRestletGenerationUtil.ResourceException); UmlgGenerationUtil.addOverrideAnnotation(get); OJTryStatement ojTryStatement = new OJTryStatement(); ojTryStatement.setCatchPart(null); ojTryStatement.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); get.getBody().addToStatements(ojTryStatement); ojTryStatement.getTryPart().addToStatements( "this." + getIdFieldName(clazz) + "= " + UmlgRestletGenerationUtil.UmlgURLDecoder.getLast() + ".decode((String)getRequestAttributes().get(\"" + getIdFieldName(clazz) + "\"));"); annotatedClass.addToImports(UmlgRestletGenerationUtil.UmlgURLDecoder); ojTryStatement.getTryPart().addToStatements( UmlgClassOperations.className(clazz) + " c = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(this." + getIdFieldName(clazz) + ")"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz)); ojTryStatement.getTryPart().addToStatements("StringBuilder json = new StringBuilder()"); ojTryStatement.getTryPart().addToStatements("json.append(\"{\\\"data\\\": [\")"); StringBuilder pathToCompositionRootCalc = new StringBuilder("json.append(RestletToJsonUtil.pathToCompositionRootAsJson("); annotatedClass.addToImports(UmlgRestletGenerationUtil.RestletToJsonUtil); pathToCompositionRootCalc.append("c.<" + UmlgRestletGenerationUtil.UmlgRestletNode.getLast() + ">getPathToCompositionalRoot(), "); annotatedClass.addToImports(UmlgRestletGenerationUtil.UmlgRestletNode); pathToCompositionRootCalc.append("\"Root\", \"/" + clazz.getModel().getName() + "\"))"); ojTryStatement.getTryPart().addToStatements(pathToCompositionRootCalc.toString()); ojTryStatement.getTryPart().addToStatements("json.append(\"]}\")"); ojTryStatement.getTryPart().addToStatements("return new " + UmlgRestletGenerationUtil.JsonRepresentation.getLast() + "(json.toString())"); annotatedClass.addToImports(UmlgGenerationUtil.UMLGPathName); annotatedClass.addToImports(UmlgRestletGenerationUtil.JsonRepresentation); annotatedClass.addToOperations(get); }
private void addFromJson(Class clazz) { OJAnnotatedClass annotatedClass = findOJClass(clazz); OJAnnotatedOperation fromJson = new OJAnnotatedOperation("fromJson"); fromJson.addParam("json", new OJPathName("String")); UmlgGenerationUtil.addOverrideAnnotation(fromJson); annotatedClass.addToOperations(fromJson); OJField objectMapper = new OJField("mapper", UmlgGenerationUtil.ObjectMapper); objectMapper.setInitExp(UmlgGenerationUtil.ObjectMapperFactory.getLast() + ".INSTANCE.getObjectMapper()"); annotatedClass.addToImports(UmlgGenerationUtil.ObjectMapperFactory); fromJson.getBody().addToLocals(objectMapper); OJTryStatement tryS = new OJTryStatement(); OJAnnotatedField propertyMap = new OJAnnotatedField("propertyMap", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object")); propertyMap.setInitExp("mapper.readValue(json, Map.class)"); propertyMap.addAnnotationIfNew(new OJAnnotationValue(new OJPathName("java.lang.SuppressWarnings"), "unchecked")); tryS.getTryPart().addToLocals(propertyMap); tryS.getTryPart().addToStatements("fromJson(propertyMap)"); tryS.setCatchParam(new OJParameter("e", new OJPathName("java.lang.Exception"))); tryS.getCatchPart().addToStatements("throw new RuntimeException(e)"); fromJson.getBody().addToStatements(tryS); }
private void addGetObjectRepresentation(PropertyWrapper pWrap/*, OJAnnotatedInterface annotatedInf*/, OJAnnotatedClass annotatedClass) { OJAnnotatedOperation get = new OJAnnotatedOperation("get", UmlgRestletGenerationUtil.Representation); get.addToThrows(UmlgRestletGenerationUtil.ResourceException); annotatedClass.addToImports(UmlgRestletGenerationUtil.ResourceException); UmlgGenerationUtil.addOverrideAnnotation(get); OJTryStatement ojTryStatement = new OJTryStatement(); OJPathName parentPathName = UmlgClassOperations.getPathName(pWrap.getOtherEnd().getType()); ojTryStatement.getTryPart().addToStatements( "this." + parentPathName.getLast().toLowerCase() + "Id = " + UmlgRestletGenerationUtil.UmlgURLDecoder.getLast() + ".decode((String)getRequestAttributes().get(\"" + parentPathName.getLast().toLowerCase() + "Id\"))" ); annotatedClass.addToImports(UmlgRestletGenerationUtil.UmlgURLDecoder); ojTryStatement.getTryPart().addToStatements( parentPathName.getLast() + " resource = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(this." + parentPathName.getLast().toLowerCase() + "Id" + ")" ); annotatedClass.addToImports(parentPathName); buildToJson(pWrap, annotatedClass, ojTryStatement.getTryPart()); ojTryStatement.setCatchPart(null); ojTryStatement.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); get.getBody().addToStatements(ojTryStatement); annotatedClass.addToImports(UmlgGenerationUtil.UMLGPathName); annotatedClass.addToImports(UmlgRestletGenerationUtil.JsonRepresentation); annotatedClass.addToOperations(get); }
constructor.getBody().addToStatements(ifFileExist); OJTryStatement ojTryStatement = new OJTryStatement(); ojTryStatement.getTryPart().addToStatements("final File modelFile = new File(modelFileURL.toURI())"); ojTryStatement.getTryPart().addToStatements("//Load the mode async\nnew Thread(new Runnable() {\n @Override\n public void run() {\n ModelLoader.INSTANCE.loadModel(modelFile);\n UmlgOcl2Parser tumlOcl2Parser = UmlgOcl2Parser.INSTANCE;\n }\n}).start()"); component.addToImports(UmlgGenerationUtil.ModelLoader); component.addToImports(UmlgGenerationUtil.UmlgOcl2Parser); component.addToImports("java.io.File"); component.addToImports("java.net.URL"); ojTryStatement.setCatchParam(new OJParameter("e", new OJPathName("java.lang.Exception"))); ojTryStatement.getCatchPart().addToStatements("throw new RuntimeException(e)"); constructor.getBody().addToStatements(ojTryStatement); component.addToImports(UmlgGenerationUtil.UmlgProperties); OJTryStatement tryLoadClass = new OJTryStatement(); OJIfStatement ifCreateDefaultData = new OJIfStatement(UmlgGenerationUtil.UmlgProperties.getLast() + ".INSTANCE.isCreateDefaultData()"); ifCreateDefaultData.addToThenPart(tryLoadClass); tryLoadClass.getTryPart().addToStatements("DefaultDataCreator defaultDataCreator = (DefaultDataCreator)Class.forName(" + UmlgGenerationUtil.UmlgProperties.getLast() + ".INSTANCE.getDefaultDataLoaderClass()).newInstance()"); tryLoadClass.getTryPart().addToStatements("defaultDataCreator.createData()"); tryLoadClass.setCatchParam(new OJParameter("e", new OJPathName("java.lang.Exception"))); tryLoadClass.getCatchPart().addToStatements("throw new RuntimeException(e)"); constructor.getBody().addToStatements(ifCreateDefaultData); component.addToImports(UmlgRestletGenerationUtil.DefaultDataCreator);
private void addGetObjectRepresentation(PropertyWrapper pWrap, OJAnnotatedClass annotatedClass, boolean asAssociationClass) { OJAnnotatedOperation get = new OJAnnotatedOperation("get", UmlgRestletGenerationUtil.Representation); get.addToThrows(UmlgRestletGenerationUtil.ResourceException); annotatedClass.addToImports(UmlgRestletGenerationUtil.ResourceException); OJTryStatement tryStatement = new OJTryStatement(); OJPathName parentPathName; if (!asAssociationClass) { parentPathName = UmlgClassOperations.getPathName(pWrap.getOtherEnd().getType()); } else { parentPathName = pWrap.getAssociationClassPathName(); } tryStatement.getTryPart().addToStatements( "this." + parentPathName.getLast().toLowerCase() + "Id = " + UmlgRestletGenerationUtil.UmlgURLDecoder.getLast() + ".decode((String)getRequestAttributes().get(\"" + parentPathName.getLast().toLowerCase() + "Id\"))" ); annotatedClass.addToImports(UmlgRestletGenerationUtil.UmlgURLDecoder); tryStatement.getTryPart().addToStatements( parentPathName.getLast() + " parentResource = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(" + parentPathName.getLast().toLowerCase() + "Id" + ")"); annotatedClass.addToImports(parentPathName); buildToJson(pWrap, annotatedClass, tryStatement.getTryPart(), asAssociationClass); get.getBody().addToStatements(tryStatement); tryStatement.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); tryStatement.setCatchPart(null); annotatedClass.addToImports(UmlgGenerationUtil.UMLGPathName); annotatedClass.addToImports(UmlgRestletGenerationUtil.JsonRepresentation); annotatedClass.addToOperations(get); }
/** * Wraps the source expression in a try catch block. If * OclIsInvalidException is caught return true else false */ @Override public String handleOperationExp(OperationCallExp<Classifier, Operation> oc, String sourceResult, List<String> argumentResults) { if (!argumentResults.isEmpty()) { throw new IllegalStateException("oclIsUndefined operation can not have arguments!"); } String operationName = oc.getReferredOperation().getName(); Type sourceType = oc.getSource().getType(); OJAnnotatedOperation oper = new OJAnnotatedOperation(operationName + this.ojClass.countOperationsStartingWith(operationName), new OJPathName("Boolean")); if (!(sourceType instanceof PrimitiveType) && !(sourceType instanceof Enumeration) && sourceType instanceof DataType) { oper.addParam(StringUtils.uncapitalize(sourceType.getName()), DataTypeEnum.getPathNameFromDataType((DataType) sourceType)); } else if (sourceType instanceof PrimitiveType) { oper.addParam(StringUtils.uncapitalize(sourceType.getName()), UmlgPropertyOperations.umlPrimitiveTypeToJava(sourceType)); } else { oper.addParam(StringUtils.uncapitalize(sourceType.getName()), UmlgClassOperations.getPathName(sourceType)); } this.ojClass.addToOperations(oper); oper.setVisibility(OJVisibilityKind.PRIVATE); OJTryStatement ojTryStatement = new OJTryStatement(); ojTryStatement.getTryPart().addToStatements("return " + StringUtils.uncapitalize(sourceType.getName()) + " == null"); ojTryStatement.setCatchParam(new OJParameter("e", UmlgGenerationUtil.umlgOclIsInvalidException.getCopy())); this.ojClass.addToImports(UmlgGenerationUtil.umlgOclIsInvalidException.getCopy()); ojTryStatement.getCatchPart().addToStatements("return true"); oper.getBody().addToStatements(ojTryStatement); return oper.getName() + "(" + sourceResult + ")"; } }
private void addOptionsObjectRepresentation(PropertyWrapper pWrap, OJAnnotatedClass annotatedClass, boolean asAssociationClass) { OJAnnotatedOperation get = new OJAnnotatedOperation("options", UmlgRestletGenerationUtil.Representation); get.addToThrows(UmlgRestletGenerationUtil.ResourceException); annotatedClass.addToImports(UmlgRestletGenerationUtil.ResourceException); OJTryStatement tryStatement = new OJTryStatement(); OJPathName parentPathName; if (!asAssociationClass) { parentPathName = UmlgClassOperations.getPathName(pWrap.getOtherEnd().getType()); } else { parentPathName = pWrap.getAssociationClassPathName(); } tryStatement.getTryPart().addToStatements( "this." + parentPathName.getLast().toLowerCase() + "Id = " + UmlgRestletGenerationUtil.UmlgURLDecoder.getLast() + ".decode((String)getRequestAttributes().get(\"" + parentPathName.getLast().toLowerCase() + "Id\"))" ); annotatedClass.addToImports(UmlgRestletGenerationUtil.UmlgURLDecoder); tryStatement.getTryPart().addToStatements( parentPathName.getLast() + " parentResource = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(" + parentPathName.getLast().toLowerCase() + "Id" + ")"); annotatedClass.addToImports(parentPathName); buildToJsonForOptions(pWrap, annotatedClass, tryStatement.getTryPart(), asAssociationClass); get.getBody().addToStatements(tryStatement); tryStatement.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); tryStatement.setCatchPart(null); annotatedClass.addToImports(UmlgGenerationUtil.UMLGPathName); annotatedClass.addToImports(UmlgRestletGenerationUtil.JsonRepresentation); annotatedClass.addToOperations(get); }