svn commit: r15578 - branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal: . ocl ocl/uml14
[email protected] 17 Aug 2008 18:58:29 -0000
Newsgroups
gmane.comp.lang.uml.argouml.cvs
Message-ID
<[email protected] >
Author: maurelio1234
Date: 2008-08-17 11:58:29-0700
New Revision: 15578
Modified:
branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ProfileUML.java
branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java
branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/CollectionsModelInterpreter.java
branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java
branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/Uml14ModelInterpreter.java
Log:
fixing bugs
Modified: branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ProfileUML.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ProfileUML.java?view=diff&rev=15578&p1=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ProfileUML.java&p2=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ProfileUML.java&r1=15577&r2=15578
==============================================================================
--- branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ProfileUML.java (original)
+++ branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ProfileUML.java 2008-08-17 11:58:29-0700
@@ -264,7 +264,7 @@
// 4.5.3.26 [2]
try {
critics.add(new CrOCL("context Namespace inv:"
- + "self.allContents -> select(oclIsKindOf(Association))->"
+ + "self.allContents -> select(x|x.oclIsKindOf(Association))->"
+ "forAll(a1, a2 |a1.name = a2.name and "
+ "a1.connection.participant = a2.connection.participant"
+ " implies a1 = a2)",
Modified: branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java?view=diff&rev=15578&p1=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java&p2=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java&r1=15577&r2=15578
==============================================================================
--- branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java (original)
+++ branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/DefaultOclEvaluator.java 2008-08-17 11:58:29-0700
@@ -28,6 +28,9 @@
import java.io.StringReader;
import java.util.HashMap;
+import org.apache.log4j.Logger;
+import org.argouml.profile.internal.ocl.uml14.Uml14ModelInterpreter;
+
import tudresden.ocl.parser.OclParser;
import tudresden.ocl.parser.lexer.Lexer;
import tudresden.ocl.parser.node.Start;
@@ -39,6 +42,12 @@
*/
public class DefaultOclEvaluator implements OclExpressionEvaluator {
+ /**
+ * Logger.
+ */
+ private static final Logger LOG = Logger
+ .getLogger(DefaultOclEvaluator.class);
+
private static OclExpressionEvaluator instance = null;
/**
@@ -58,6 +67,11 @@
String ocl) throws InvalidOclException {
// XXX this seems to be a bug of the parser,
// it always requires a context
+
+ LOG.debug("OCL: "+ocl);
+ if (ocl.contains("ore")) {
+ System.out.println("VOILA!");
+ }
Lexer lexer = new Lexer(new PushbackReader(new StringReader("context X inv: " + ocl), 2));
OclParser parser = new OclParser(lexer);
Start tree = null;
@@ -65,7 +79,7 @@
try {
tree = parser.parse();
} catch (Exception e) {
- throw new InvalidOclException("Invalid OCL!");
+ throw new InvalidOclException(ocl);
}
EvaluateExpression ee = new EvaluateExpression(vt,mi);
Modified: branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/CollectionsModelInterpreter.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/CollectionsModelInterpreter.java?view=diff&rev=15578&p1=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/CollectionsModelInterpreter.java&p2=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/CollectionsModelInterpreter.java&r1=15577&r2=15578
==============================================================================
--- branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/CollectionsModelInterpreter.java (original)
+++ branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/CollectionsModelInterpreter.java 2008-08-17 11:58:29-0700
@@ -51,10 +51,14 @@
public Object invokeFeature(HashMap<String, Object> vt, Object subject,
String feature, String type, Object[] parameters) {
+ if (subject == null) {
+ return null;
+ }
+
if (!(subject instanceof Collection)) {
if (type.equals("->")) {
Set ns = new HashSet();
- ns.add(subject);
+ ns.add(subject);
subject = ns;
}
}
Modified: branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java?view=diff&rev=15578&p1=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java&p2=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java&r1=15577&r2=15578
==============================================================================
--- branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java (original)
+++ branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/ModelAccessModelInterpreter.java 2008-08-17 11:58:29-0700
@@ -268,7 +268,7 @@
"self.clientDependency->"
+ "select(d |"
+ "d.oclIsKindOf(Abstraction)"
- + "and d.stereotype.name = \"realization\""
+ + "and d.stereotype.name = \"realization\" "
+ "and d.supplier.oclIsKindOf(Classifier))"
+ ".supplier.oclAsType(Classifier)");
}
@@ -279,8 +279,8 @@
vt,
"self.contents->union("
+ "self.parent.allContents->select(e |"
- + "e.elementOwnership.visibility = #public or"
- + "e.elementOwnership.visibility = #protected))");
+ + "e.elementOwnership.visibility = #public or true or "
+ + " e.elementOwnership.visibility = #protected))");
}
if (feature.equals("allDiscriminators")) {
@@ -330,7 +330,7 @@
vt,
"self.resident->union("
+ "self.parent.oclAsType(Component).allResidentElements->select( re |"
- + "re.elementResidence.visibility = #public or"
+ + "re.elementResidence.visibility = #public or "
+ "re.elementResidence.visibility = #protected))");
}
}
@@ -729,7 +729,7 @@
/* 4.6.2.3 Stereotype */
- if (Model.getFacade().isATagDefinition(subject)) {
+ if (Model.getFacade().isAStereotype(subject)) {
if (type.equals(".")) {
if (feature.equals("baseClass")) {
return new HashSet<Object>(Model.getFacade()
@@ -770,7 +770,7 @@
/* 4.6.2.5 TaggedValue */
- if (Model.getFacade().isATagDefinition(subject)) {
+ if (Model.getFacade().isATaggedValue(subject)) {
if (type.equals(".")) {
if (feature.equals("dataValue")) {
return Model.getFacade().getDataValue(subject);
Modified: branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/Uml14ModelInterpreter.java
Url: http://argouml.tigris.org/source/browse/argouml/branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/Uml14ModelInterpreter.java?view=diff&rev=15578&p1=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/Uml14ModelInterpreter.java&p2=branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/Uml14ModelInterpreter.java&r1=15577&r2=15578
==============================================================================
--- branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/Uml14ModelInterpreter.java (original)
+++ branches/gsoc2008/work_issue5042_merged15552_maurelio1234/src/org/argouml/profile/internal/ocl/uml14/Uml14ModelInterpreter.java 2008-08-17 11:58:29-0700
@@ -57,9 +57,6 @@
String feature, String type, Object[] parameters) {
Object ret = super.invokeFeature(vt, subject, feature, type, parameters);
- if (feature.equals("union") && type.equals(".")) {
- System.out.println("VOILA!");
- }
LOG.debug(toString(subject) + type + feature + " ==> " + toString(ret));
return ret;