/** * 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() { OJPackage result = new OJPackage(); this.copyInfoInto(result); return result; }
public OJPackage getDeepCopy(OJPackage owner) { OJPackage copy = new OJPackage(); copyDeepInfoInto(owner, copy); return copy; }
private void createComponent(Model model) { OJAnnotatedClass component = new OJAnnotatedClass(getComponentName(model)); component.setSuperclass(UmlgRestletGenerationUtil.UmlgRestletComponent); OJPackage org = new OJPackage("org"); OJPackage tuml = new OJPackage("umlg", org); OJPackage restlet = new OJPackage(model.getName().toLowerCase(), tuml); component.setMyPackage(restlet); addToSource(component); addComponentMainMethod(model, component); addComponentAttachApplications(model, component); // addComponentDefaultConstructor(model, component); // addStop(component); }
private void createApplication(Model model) { OJAnnotatedClass component = new OJAnnotatedClass(getApplicationName(model)); component.setSuperclass(UmlgRestletGenerationUtil.UmlgRestletApplication); OJPackage org = new OJPackage("org"); OJPackage tuml = new OJPackage("umlg", org); OJPackage restlet = new OJPackage(model.getName().toLowerCase(), tuml); component.setMyPackage(restlet); addToSource(component); // addApplicationInboundRootMethod(model, component); addApplicationDefaultConstructor(model, component); addAttachAll(model, component); addGetModelFileName(model, component); }
public OJPackage findOrCreatePackage(OJPathName packageName){ OJPackage parent = findLocalPackage(packageName.getFirst()); if(parent == null){ parent = new OJPackage(packageName.getFirst()); addToRootPackages(parent); } OJPackage child = parent; Iterator<String> iter = packageName.getNames().subList(1, packageName.getNames().size()).iterator(); while(iter.hasNext()){ String name = iter.next(); child = (OJPackage) parent.findPackage(new OJPathName(name)); if(child == null){ child = new OJPackage(name); parent.addToSubpackages(child); } parent = child; } return child; } }
@Override public void visitBefore(Model model) { OJPackage org = new OJPackage("org"); OJPackage tuml = new OJPackage("umlg"); tuml.setParent(org); OJPackage ojPackage = new OJPackage("restlet"); ojPackage.setParent(tuml); OJAnnotatedClass annotatedClass = new OJAnnotatedClass("RootServerResourceImpl"); annotatedClass.setSuperclass(UmlgRestletGenerationUtil.ServerResource); annotatedClass.setMyPackage(ojPackage); addToSource(annotatedClass); addDefaultConstructor(annotatedClass); addGetRootObjectRepresentation(model, annotatedClass); addOptionsRootObjectRepresentation(model, annotatedClass); addToRouterEnum(model, annotatedClass, "ROOT", "\"/umlgRoot\""); }
@Override public void renameAll(Set<OJPathName> renamePathNames, String newName) { super.renameAll(renamePathNames, newName); outer.renameAll(renamePathNames, newName); classDeclaration.setMyPackage(new OJPackage("")); classDeclaration.renameAll(renamePathNames, newName); }
public static OJPathName getMetaClassPathName(Classifier clazz) { OJPackage ojPackage = new OJPackage(Namer.name(clazz.getNearestPackage()) + ".meta"); OJPathName result = ojPackage.getPathName().append(UmlgClassOperations.getMetaClassName(clazz)); return result; }
public void visitBefore(Activity activity) { OJAnnotatedClass annotatedClass = new OJAnnotatedClass(Namer.name(activity)); OJPackage ojPackage = new OJPackage(Namer.name(activity.getNearestPackage())); annotatedClass.setMyPackage(ojPackage); addToSource(annotatedClass); }
@Override public void visitBefore(Model model) { OJAnnotatedClass root = new OJAnnotatedClass(StringUtils.capitalize(model.getName())); root.setComment(String.format("This class represents the model %s.\nIt is a singleton and allows on access to all the root classes in the model.", model.getQualifiedName())); // root.addToImplementedInterfaces(UmlgGenerationUtil.UmlgApplicationNode); OJPackage ojPackage = new OJPackage(UmlgGenerationUtil.UmlgRootPackage.toJavaString()); root.setMyPackage(ojPackage); addToSource(root); root.getDefaultConstructor().setVisibility(OJVisibilityKind.PRIVATE); root.addToImports(UmlgGenerationUtil.UMLGPathName); root.addToImports(UmlgGenerationUtil.vertexPathName); // addINSTANCE(root, model); // addGetRootVertex(root); addModelAndRebuildAsJson(model, root); // implementTumlRootNode(root); // addGetMetaClassForQualifiedName(root); generateInternalPropertyFile(model); }
@Override public void visitBefore(Model model) { OJPackage ojPackage = new OJPackage(UmlgGenerationUtil.UmlgRootPackage.toJavaString()); OJAnnotatedClass diagramTreeView = new OJAnnotatedClass(UmlgRestletGenerationUtil.UmlgDiagramPackageResource.getLast()); diagramTreeView.setMyPackage(ojPackage); diagramTreeView.setSuperclass(UmlgRestletGenerationUtil.ServerResource); addToSource(diagramTreeView); addDefaultConstructor(diagramTreeView); addGetRepresentation(diagramTreeView); addToRouterEnum(model, diagramTreeView, "DIAGRAM_PACKAGE", "\"/diagramPackages\""); //Add the diagram resource to the router addDiagramResourceToRouterEnum("DIAGRAM", "\"/diagram\""); }
@Override public void visitBefore(Model element) { OJAnnotatedClass metaNodeCreator = new OJAnnotatedClass("MetaNodeCreator"); metaNodeCreator.setComment("This class is responsible to create the meta singleton upfront.\n * It is invoked via reflection the first time a graph is created."); OJPackage ojPackage = new OJPackage(UmlgGenerationUtil.UmlgRootPackage.toJavaString()); metaNodeCreator.setMyPackage(ojPackage); metaNodeCreator.addToImplementedInterfaces(UmlgGenerationUtil.UmlgMetaNodeManager); addToSource(metaNodeCreator); OJAnnotatedOperation createAll = new OJAnnotatedOperation("createAllMetaNodes"); metaNodeCreator.addToOperations(createAll); List<Class> concreteClasses = ModelLoader.INSTANCE.getAllConcreteClasses(); for (Class c : concreteClasses) { createAll.getBody().addToStatements(UmlgClassOperations.getMetaClassName(c) + ".getInstance()"); metaNodeCreator.addToImports(UmlgClassOperations.getMetaClassPathName(c)); } OJAnnotatedOperation count = new OJAnnotatedOperation("count", "int"); count.getBody().addToStatements("return " + concreteClasses.size()); metaNodeCreator.addToOperations(count); }
@Override public void visitBefore(Model model) { OJAnnotatedInterface enumLookupInf = new OJAnnotatedInterface(UmlgRestletGenerationUtil.EnumerationLookupServerResource.getLast()); OJPackage ojPackage = new OJPackage(UmlgGenerationUtil.UmlgRootPackage.toJavaString()); enumLookupInf.setMyPackage(ojPackage); addToSource(enumLookupInf); OJAnnotatedClass enumLookup = new OJAnnotatedClass(UmlgRestletGenerationUtil.EnumerationLookupServerResouceImpl.getLast()); enumLookup.setMyPackage(ojPackage); enumLookup.addToImplementedInterfaces(UmlgRestletGenerationUtil.EnumerationLookupServerResource); enumLookup.setSuperclass(UmlgRestletGenerationUtil.ServerResource); addToSource(enumLookup); addDefaultConstructor(enumLookup); addGetRepresentation(enumLookupInf, enumLookup); addToRouterEnum(model, enumLookup, "ENUM_LOOKUP", "\"/tumlEnumLookup\""); }
@Override @VisitSubclasses({Class.class, AssociationClass.class}) public void visitBefore(Class clazz) { OJPackage ojPackage = new OJPackage(Namer.name(clazz.getNearestPackage())); OJAnnotatedClass annotatedClass = new OJAnnotatedClass(UmlgClassOperations.className(clazz) + "CompositePathServerResourceImpl"); annotatedClass.setSuperclass(UmlgRestletGenerationUtil.ServerResource); annotatedClass.setMyPackage(ojPackage); annotatedClass.setVisibility(UmlgClassOperations.getVisibility(clazz.getVisibility())); addToSource(annotatedClass); addPrivateIdVariable(clazz, annotatedClass); addDefaultConstructor(annotatedClass); addGetRepresentation(clazz, annotatedClass); addToRouterEnum(clazz, annotatedClass); }
public void visitBefore(org.eclipse.uml2.uml.Interface inf) { OJAnnotatedInterface annotatedInterface = new OJAnnotatedInterface(Namer.name(inf)); OJPackage ojPackage = new OJPackage(Namer.name(inf.getNearestPackage())); annotatedInterface.setMyPackage(ojPackage); if (UmlgInterfaceOperations.hasCompositeOwner(inf)) { extendCompositionNode(annotatedInterface); } else { extendTumlNode(annotatedInterface); } for (Classifier c : inf.getGenerals()) { annotatedInterface.addToSuperInterfaces(UmlgClassOperations.getPathName(c)); } addAllInstances(inf, annotatedInterface); addAllInstancesWithFilter(inf, annotatedInterface); addToSource(annotatedInterface); }
@Override public void visitBefore(Property p) { OJAnnotatedClass globalMap = this.workspace.findOJClass(UmlgGenerationUtil.QualifiedNameClassMap.toJavaString()); if (globalMap == null) { globalMap = new OJAnnotatedClass(UmlgGenerationUtil.QualifiedNameClassMap.getLast()); OJPackage ojPackage = new OJPackage(UmlgGenerationUtil.UmlgRootPackage.toJavaString()); globalMap.setMyPackage(ojPackage); addINSTANCE(globalMap); addMap(globalMap); createPropertyClassAdderMethod(globalMap); addToSource(globalMap); OJConstructor constructor = addPrivateConstructor(globalMap); constructor.getBody().addToStatements("addAllEntries()"); addGetForQualifiedName(globalMap); } addEntries(globalMap, p); }
@Override @VisitSubclasses({Class.class, AssociationClass.class}) public void visitBefore(org.eclipse.uml2.uml.Class clazz) { OJAnnotatedClass annotatedClass = new OJAnnotatedClass(UmlgClassOperations.className(clazz)); OJPackage ojPackage = new OJPackage(Namer.name(clazz.getNearestPackage())); annotatedClass.setMyPackage(ojPackage); annotatedClass.setVisibility(UmlgClassOperations.getVisibility(clazz.getVisibility())); annotatedClass.setAbstract(clazz.isAbstract()); annotatedClass.getDefaultConstructor(); // The super class will be set later after all classes have been created if (UmlgBehavioredClassifierOperations.hasBehavior(clazz)) { annotatedClass.setSuperclass(UmlgGenerationUtil.BASE_BEHAVIORED_CLASSIFIER); } else { annotatedClass.setSuperclass(UmlgGenerationUtil.BaseUmlgCompositionNode); } addToSource(annotatedClass); }
@Override @VisitSubclasses({Class.class, AssociationClass.class}) public void visitBefore(Class clazz) { if (!clazz.isAbstract() && !UmlgClassOperations.hasCompositeOwner(clazz) && !(clazz instanceof AssociationClass)) { OJPackage ojPackage = new OJPackage(Namer.name(clazz.getNearestPackage())); OJAnnotatedClass annotatedClass = new OJAnnotatedClass(UmlgClassOperations.className(clazz) + "s_ServerResourceImpl"); annotatedClass.setSuperclass(UmlgRestletGenerationUtil.ServerResource); annotatedClass.setMyPackage(ojPackage); annotatedClass.setVisibility(UmlgClassOperations.getVisibility(clazz.getVisibility())); addToSource(annotatedClass); addDefaultConstructor(annotatedClass); addGetRootObjectRepresentation(clazz, annotatedClass); addOptionsRootObjectRepresentation(clazz, annotatedClass); addPostObjectRepresentation(clazz, annotatedClass); addToRouterEnum(clazz, annotatedClass); } }
@Override @VisitSubclasses({Class.class, AssociationClass.class}) public void visitBefore(Class clazz) { if (!clazz.isAbstract()) { OJPackage ojPackage = new OJPackage(Namer.name(clazz.getNearestPackage())); OJAnnotatedClass annotatedClass = new OJAnnotatedClass(getLookupServerResourceImplName(clazz)); annotatedClass.setSuperclass(UmlgRestletGenerationUtil.ServerResource); annotatedClass.setMyPackage(ojPackage); annotatedClass.setVisibility(UmlgClassOperations.getVisibility(clazz.getVisibility())); addToSource(annotatedClass); addPrivateIdVariable(clazz, annotatedClass); addDefaultConstructor(annotatedClass); if (!clazz.isAbstract()) { addPutRepresentation(clazz, annotatedClass); } addToRouterEnum(clazz, annotatedClass); } }
@Override @VisitSubclasses({org.eclipse.uml2.uml.Interface.class, org.eclipse.uml2.uml.Class.class, AssociationClass.class}) public void visitBefore(Classifier c) { if (c instanceof Interface || c instanceof org.eclipse.uml2.uml.Class) { OJAnnotatedInterface annotatedInf = new OJAnnotatedInterface(getServerResourceMetaDataName(c)); OJPackage ojPackage = new OJPackage(Namer.name(c.getNearestPackage())); annotatedInf.setMyPackage(ojPackage); addToSource(annotatedInf); OJAnnotatedClass annotatedClass = new OJAnnotatedClass(getServerResourceMetatDataImplName(c)); annotatedClass.setSuperclass(UmlgRestletGenerationUtil.ServerResource); annotatedClass.addToImplementedInterfaces(annotatedInf.getPathName()); annotatedClass.setMyPackage(ojPackage); annotatedClass.setVisibility(UmlgClassOperations.getVisibility(c.getVisibility())); addToSource(annotatedClass); addDefaultConstructor(annotatedClass); addGetRepresentation(c, annotatedInf, annotatedClass); addToRouterEnum(c, annotatedClass); } }