Update of /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/UMLBuffer
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31463/Plugin/com/ibm/ecute/UMLBuffer
Modified Files:
UMLBuffer.java
Log Message:
fixed aggregate qualifier for the export
Index: UMLBuffer.java
===================================================================
RCS file: /cvsroot/sblim/ecute/Plugin/com/ibm/ecute/UMLBuffer/UMLBuffer.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- UMLBuffer.java 25 Jul 2005 07:57:18 -0000 1.13
+++ UMLBuffer.java 11 Aug 2005 16:10:49 -0000 1.14
@@ -25,6 +25,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
+import com.ibm.ecute.EntryPoint;
import com.ibm.ecute.UMLBuffer.UMLTree.UMLAttribute;
import com.ibm.ecute.UMLBuffer.UMLTree.UMLClass;
import com.ibm.ecute.UMLBuffer.UMLTree.UMLFile;
@@ -36,6 +37,7 @@
import com.ibm.ecute.plugins.ProgressFrame;
import com.ibm.ecute.plugins.output.UMLInterface;
import com.ibm.ecute.plugins.output.funcionality.RSAModelCreator;
+import com.ibm.ecute.plugins.output.funcionality.mofCreator;
import com.ibm.ecute.utils.License;
import com.ibm.ecute.utils.Utils;
public class UMLBuffer implements UMLInterface {
@@ -527,7 +529,7 @@
ArrayList qualifiers = qualifiedElement.getQualifiers(!completeClasses);
for (int i = 0; i < qualifiers.size(); i++) {
UMLQualifier theQualifier = (UMLQualifier) qualifiers.get(i);
- // RSA
+ // RSA import
if (UMLProgram instanceof RSAModelCreator){
// if the aggregation/composition is defined in the second role of a association class
// then the qualifiers have to be added to the other end of the association
@@ -542,7 +544,8 @@
UMLProgram.SetQualifier(qualifiedElement.getType(),
theQualifier.name, theQualifier.value);
}
- // ROSE
+
+ // ROSE & RSA Export
} else {
UMLProgram.SetQualifier(qualifiedElement.getType(),
theQualifier.name, theQualifier.value);
@@ -648,6 +651,53 @@
role2.name, role1.endPointName, role1.name, RclassDiagram);
}
+ //TODO
+ // RSA export
+ } else if (UMLProgram instanceof mofCreator && EntryPoint.isRunningFromEclipse()){
+ if(role1.getType() == TLINK1 &&
+ (theClass.getQualifier("Aggregation", true) != null ||
+ theClass.getQualifier("Composition", true) != null)){
+
+ ArrayList oldQualifiersList = new ArrayList(role2.getQualifiers(true));
+
+ ArrayList newQualifiersList = new ArrayList();
+ newQualifiersList.add(new UMLQualifier("Aggregate", "true"));
+
+ for(int i = 0; i < oldQualifiersList.size(); i++){
+ UMLQualifier thisQualifier = (UMLQualifier)oldQualifiersList.get(i);
+ role2.removeQualifier(thisQualifier.name);
+ newQualifiersList.add(thisQualifier);
+ }
+
+ for(int i = 0; i < newQualifiersList.size(); i++){
+ role2.addQualifier((UMLQualifier)newQualifiersList.get(i));
+ }
+ }
+
+ if(role2.getType() == TLINK1 &&
+ (theClass.getQualifier("Aggregation", true) != null ||
+ theClass.getQualifier("Composition", true) != null)){
+
+ ArrayList oldQualifiersList = new ArrayList(role1.getQualifiers(true));
+
+ ArrayList newQualifiersList = new ArrayList();
+ newQualifiersList.add(new UMLQualifier("Aggregate", "true"));
+
+ for(int i = 0; i < oldQualifiersList.size(); i++){
+ UMLQualifier thisQualifier = (UMLQualifier)oldQualifiersList.get(i);
+ role1.removeQualifier(thisQualifier.name);
+ newQualifiersList.add(thisQualifier);
+ }
+
+ for(int i = 0; i < newQualifiersList.size(); i++){
+ role1.addQualifier((UMLQualifier)newQualifiersList.get(i));
+ }
+ }
+
+ result = UMLProgram.AddAssociation(role1.endPointName,
+ role1.name, role2.endPointName, role2.name, RclassDiagram);
+
+
// ROSE
} else {
result = UMLProgram.AddAssociation(role1.endPointName,
|