@Override public Object caseInterface(Interface interface_) { if (!isEGenericType(interface_) && !interface_.isTemplateParameter()) { org.eclipse.uml2.uml.Package package_ = interface_ .getNearestPackage(); if (package_ != null) { EClass eClass = EcoreFactory.eINSTANCE.createEClass(); elementToEModelElementMap.put(interface_, eClass); EPackage ePackage = (EPackage) doSwitch(package_); ePackage.getEClassifiers().add(eClass); setName(eClass, interface_); eClass.setAbstract(true); eClass.setInterface(true); defaultCase(interface_); return eClass; } } return super.caseInterface(interface_); }
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(Interface clazz) { OJAnnotatedClass metaClass = new OJAnnotatedClass(UmlgClassOperations.getMetaClassName(clazz)); OJPackage ojPackage = new OJPackage(Namer.name(clazz.getNearestPackage()) + ".meta"); metaClass.setMyPackage(ojPackage); metaClass.setVisibility(UmlgClassOperations.getVisibility(clazz.getVisibility())); if (ModelLoader.INSTANCE.isUmlGLibIncluded()) { metaClass.setSuperclass(UmlgGenerationUtil.BASE_CLASS_UMLG); addDefaultConstructor(metaClass, clazz); addContructorWithVertex(metaClass, clazz); //Ensure the meta class instance does not also try to create a edge to a meta class as it is also a normal entity addAddToThreadEntityVar(metaClass); } else { metaClass.setSuperclass(UmlgGenerationUtil.BASE_META_NODE); addDefaultConstructorStandAlone(metaClass, clazz); addConstructorWithVertexStandAlone(metaClass, clazz); } addToSource(metaClass); addGetEdgeToRootLabel(metaClass, clazz); addImplementsTumlMetaNode(metaClass); addMetaClassGetterToRoot(clazz, metaClass); addDefaultCreate(metaClass); // addGetAllInstancesForAbstractClass(clazz, metaClass); // addGetAllInstancesWithFilterForAbstractClass(clazz, metaClass); }