public OJTryStatement getDeepCopy() { OJTryStatement copy = new OJTryStatement(); copyDeepInfoInto(copy); return copy; }
/** 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; }
/** * 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(); } }
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); }
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); }
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); }
UmlgGenerationUtil.addOverrideAnnotation(get); OJTryStatement ojTryStatement = new OJTryStatement();
private void addOptionsObjectRepresentation(PropertyWrapper pWrap, OJAnnotatedClass annotatedClass) { OJAnnotatedOperation option = new OJAnnotatedOperation("options", UmlgRestletGenerationUtil.Representation); UmlgGenerationUtil.addOverrideAnnotation(option); option.addToThrows(UmlgRestletGenerationUtil.ResourceException); annotatedClass.addToImports(UmlgRestletGenerationUtil.ResourceException); annotatedClass.addToOperations(option); OJTryStatement tryStatement = new OJTryStatement(); OJPathName parentPathName; if (pWrap.getOtherEnd() != null) { parentPathName = UmlgClassOperations.getPathName(pWrap.getOtherEnd().getType()); } else { parentPathName = UmlgClassOperations.getPathName(pWrap.getOwningType()); } 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); //do the stuff here man buildToJsonForOption(pWrap, annotatedClass, tryStatement.getTryPart()); option.getBody().addToStatements(tryStatement); tryStatement.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); tryStatement.setCatchPart(null); annotatedClass.addToImports(UmlgGenerationUtil.UMLGPathName); annotatedClass.addToImports(UmlgRestletGenerationUtil.JsonRepresentation); }
private void addGetObjectRepresentation(PropertyWrapper pWrap, OJAnnotatedClass annotatedClass) { OJAnnotatedOperation get = new OJAnnotatedOperation("get", UmlgRestletGenerationUtil.Representation); UmlgGenerationUtil.addOverrideAnnotation(get); get.addToThrows(UmlgRestletGenerationUtil.ResourceException); UmlgGenerationUtil.addOverrideAnnotation(get); annotatedClass.addToImports(UmlgRestletGenerationUtil.ResourceException); OJTryStatement tryStatement = new OJTryStatement(); OJPathName parentPathName; if (pWrap.getOtherEnd() != null) { parentPathName = UmlgClassOperations.getPathName(pWrap.getOtherEnd().getType()); } else { parentPathName = UmlgClassOperations.getPathName(pWrap.getOwningType()); } 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()); get.getBody().addToStatements(tryStatement); tryStatement.getFinallyPart().addToStatements(UmlgGenerationUtil.UMLGAccess + ".rollback()"); tryStatement.setCatchPart(null); annotatedClass.addToImports(UmlgGenerationUtil.UMLGPathName); annotatedClass.addToImports(UmlgRestletGenerationUtil.JsonRepresentation); annotatedClass.addToOperations(get); }
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); }
/** * 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 + ")"; } }
constructor.getBody().addToStatements(ifFileExist); OJTryStatement ojTryStatement = new OJTryStatement(); component.addToImports(UmlgGenerationUtil.UmlgProperties); OJTryStatement tryLoadClass = new OJTryStatement(); OJIfStatement ifCreateDefaultData = new OJIfStatement(UmlgGenerationUtil.UmlgProperties.getLast() + ".INSTANCE.isCreateDefaultData()"); ifCreateDefaultData.addToThenPart(tryLoadClass);
UmlgGenerationUtil.addOverrideAnnotation(options); OJTryStatement tryStatement = new OJTryStatement(); SortedSet<Classifier> sortedConcreteImplementations = UmlgClassOperations.getConcreteImplementations(clazz); OJBlock block = tryStatement.getTryPart();
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); }
UmlgGenerationUtil.addOverrideAnnotation(get); OJTryStatement tryStatement = new OJTryStatement(); Set<Classifier> concreteImplementations = UmlgClassOperations.getConcreteImplementations(clazz); OJBlock block = tryStatement.getTryPart();
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); }
annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz)); OJTryStatement ojTry = new OJTryStatement(); Set<Property> parentProperties = UmlgClassOperations.getOtherEndToComposite(clazz); for (Property parentProperty : parentProperties) {
+ getIdFieldName(clazz) + ")"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz)); OJTryStatement ojTry = new OJTryStatement();
+ getIdFieldName(clazz) + ")"); annotatedClass.addToImports(UmlgClassOperations.getPathName(clazz)); OJTryStatement ojTry = new OJTryStatement();
add.getBody().addToStatements(ifSbExist); OJTryStatement tryInstantiate = new OJTryStatement(); add.getBody().addToStatements(tryInstantiate);