/** 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() { OJParameter result = new OJParameter(); this.copyInfoInto(result); return result; }
public OJParameter findParameter(String fieldname) { for (OJParameter p : getParameters()) { if (p.getName().equals(fieldname)) { return p; } } return null; }
public OJParameter getDeepCopy() { OJParameter result = new OJParameter(); this.copyDeepInfoInto(result); return result; }
/****************************************************** * The following operations are the implementations of the operations defined for this classifier. *******************************************************/ public void addParam(String name,OJPathName type){ OJParameter param = new OJParameter(); param.setName(name); param.setType(type); this.addToParameters(param); } public void addParam(String name,String type){
public String toJavaString() { if (getType() == null) { System.err.println("type of param " + getName() + " is null"); return ""; } StringBuilder result = new StringBuilder(); if (isFinal) { result.append("final "); } result.append(getType().getCollectionTypeName()); result.append(" "); result.append(getName()); return result.toString(); }
/** * @param result */ protected void addJavaDocComment(StringBuilder result){ String comment = getComment(); comment = JavaStringHelpers.replaceAllSubstrings(comment, "\n", "\n * "); result.append("/**\n * " + comment); boolean first = true; Iterator it = getParameters().iterator(); while(it.hasNext()){ OJParameter par = (OJParameter) it.next(); String paramStr = "@param " + par.getName() + " " + par.getComment(); if(first){ result.append("\n * "); first = false; } result.append("\n * " + paramStr); } result.append("\n */\n"); } protected StringBuilder paramsToJava(OJOperation op){
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 void copyDeepInfoInto(OJAnnotatedParameter copy) { super.copyDeepInfoInto(copy); Collection<OJAnnotationValue> annotations = getAnnotations(); for (OJAnnotationValue ojAnnotationValue : annotations) { OJAnnotationValue copyAnnotation = ojAnnotationValue.getDeepCopy(); copy.addAnnotationIfNew(copyAnnotation); } }
@Override public OJAnnotatedOperation getCopy() { OJAnnotatedOperation oper = new OJAnnotatedOperation(getName()); super.copyValues(oper); oper.removeAllFromParameters(); for (OJParameter f : getParameters()) { oper.addToParameters((OJParameter) f.getCopy()); } for (OJAnnotationValue v : getAnnotations()) { oper.addAnnotationIfNew(v.getCopy()); } // TODO copy exception return oper; }
protected void copyValuesDeep(OJOperation result){ result.setComment(getComment()); result.setBody(this.getBody().getDeepCopy()); result.setReturnType(this.getReturnType().getDeepCopy()); result.setFinal(this.isFinal()); result.setStatic(this.isStatic()); result.setVolatile(this.isVolatile()); result.setName(this.getName()); result.setAbstract(isAbstract()); for(OJParameter ojParameter:this.getParameters()){ result.addToParameters(ojParameter.getDeepCopy()); } result.setVisibility(this.getVisibility()); } protected void copyValues(OJOperation result){
public List<OJParameter> getOJParametersExceptReturn() { List<OJParameter> result = new ArrayList<OJParameter>(); for (Parameter parameter : UmlgOperationOperations.getParametersExceptReturn(this.operation)) { result.add(new OJParameter(parameter.getName(), UmlgClassOperations.getPathName(parameter.getType()))); } return result; }
public static StringBuilder paramsToActuals(OJOperation op){ StringBuilder result = new StringBuilder(); Iterator it = op.getParameters().iterator(); boolean first = true; while(it.hasNext()){ OJParameter elem = (OJParameter) it.next(); if(first){ first = false; }else{ result.append(", "); } result.append(elem.getName()); } return result; } // TODO find out whether we can use the generated copy method
private void createCopyOnePrimitivePropertiesToEdge(OJAnnotatedClass annotatedClass, Class clazz) { OJAnnotatedOperation copyOnePrimitivePropertiesToEdge = new OJAnnotatedOperation("z_internalCopyOnePrimitivePropertiesToEdge"); UmlgGenerationUtil.addOverrideAnnotation(copyOnePrimitivePropertiesToEdge); copyOnePrimitivePropertiesToEdge.addToParameters(new OJParameter("edge", UmlgGenerationUtil.edgePathName)); annotatedClass.addToOperations(copyOnePrimitivePropertiesToEdge); }
while (iterator.hasNext()) { OJParameter ojParameter = (OJParameter) iterator.next(); sb.append(ojParameter.getName()); if (iterator.hasNext()) { sb.append(",");
OJAnnotatedOperation finder = new OJAnnotatedOperation(StringUtils.uncapitalize(c.getName()) + "_" + propertyWrapper.finder()); finder.setStatic(true); OJParameter finderParam = new OJParameter(propertyWrapper.fieldname(), propertyWrapper.javaBaseTypePath()); finder.addToParameters(finderParam); Stereotype stereotype = ModelLoader.INSTANCE.findStereotype("Index");
ifExprParameterNames.addAll(ojParametersExceptReturn.stream().map(p -> p.getName()).collect(Collectors.toList()));
private void addDeleteResource(PropertyWrapper pWrap, OJAnnotatedClass annotatedClass, OJPathName parentPathName) { OJAnnotatedOperation delete = new OJAnnotatedOperation("delete"); delete.setVisibility(OJVisibilityKind.PRIVATE); annotatedClass.addToOperations(delete); annotatedClass.addToImports(pWrap.javaBaseTypePath()); if (pWrap.isComposite()) { delete.addToParameters(new OJParameter("propertyMap", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object"))); delete.getBody().addToStatements("Object id = propertyMap.get(\"id\")"); delete.getBody().addToStatements(pWrap.javaBaseTypePath().getLast() + " childResource = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(id)"); delete.getBody().addToStatements("childResource.delete()"); } else { delete.addToParameters(new OJParameter("parentResource", parentPathName)); delete.addToParameters(new OJParameter("propertyMap", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object"))); delete.getBody().addToStatements("Object id = propertyMap.get(\"id\")"); delete.getBody().addToStatements(pWrap.javaBaseTypePath().getLast() + " childResource = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(id)"); delete.getBody().addToStatements("parentResource." + pWrap.remover() + "(childResource)"); } }
private void addDeleteResource(PropertyWrapper pWrap, OJAnnotatedClass annotatedClass, OJPathName parentPathName) { OJAnnotatedOperation delete = new OJAnnotatedOperation("delete"); delete.setVisibility(OJVisibilityKind.PRIVATE); annotatedClass.addToOperations(delete); annotatedClass.addToImports(pWrap.javaBaseTypePath()); if (pWrap.isComposite()) { delete.addToParameters(new OJParameter("propertyMap", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object"))); delete.getBody().addToStatements("Object id = propertyMap.get(\"id\")"); delete.getBody().addToStatements(pWrap.javaBaseTypePath().getLast() + " childResource = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(id)"); delete.getBody().addToStatements("childResource.delete()"); } else { delete.addToParameters(new OJParameter("parentResource", parentPathName)); delete.addToParameters(new OJParameter("propertyMap", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object"))); delete.getBody().addToStatements("Object id = propertyMap.get(\"id\")"); delete.getBody().addToStatements(pWrap.javaBaseTypePath().getLast() + " childResource = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(id)"); delete.getBody().addToStatements("parentResource." + pWrap.remover() + "(childResource)"); } }
/** * 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 addDeleteResource(Classifier classifier, OJAnnotatedClass annotatedClass) { OJAnnotatedOperation delete = new OJAnnotatedOperation("delete"); delete.setVisibility(OJVisibilityKind.PRIVATE); delete.addToParameters(new OJParameter("propertyMap", new OJPathName("java.util.Map").addToGenerics("String").addToGenerics("Object"))); annotatedClass.addToOperations(delete); delete.getBody().addToStatements("Object id = propertyMap.get(\"id\")"); delete.getBody().addToStatements( UmlgClassOperations.getPathName(classifier).getLast() + " childResource = " + UmlgGenerationUtil.UMLGAccess + "." + UmlgGenerationUtil.getEntity + "(id)"); annotatedClass.addToImports(UmlgClassOperations.getPathName(classifier)); delete.getBody().addToStatements("childResource.delete()"); }