[jboss-svn-commits] JBL Code SVN: r7683 - in labs/jbossrules/trunk: . drools-core drools-core/META-INF drools-core/src/main/java/org/drools/reteoo drools-core/src/test/java/org/drools/reteoo drools-decisiontables drools-ide drools-ide/META-INF drools-ide/src drools-ide/src/main/java/org/drools drools-ide/src/main/java/org/drools/ide/editors drools-ide/src/main/java/org/drools/ide/editors/rete drools-ide/src/main/java/org/drools/ide/editors/rete/commands drools-ide/src/main/java/org/drools/ide/editors/rete/figure drools-ide/src/main/java/org/drools/ide/editors/rete/model drools-ide/src/main/java/org/drools/ide/editors/rete/part drools-ide/src/main/java/org/drools/reteoo drools-ide-feature drools-ide-test drools-ide-test/.settings drools-ide-test/META-INF drools-ide-test/src drools-ide-test/src/test drools-ide-test/src/test/java drools-ide-test/src/test/java/org drools-ide-test/src/test/java/org/drools drools-ide-test/src/test/java/org/drools/ide drools-ide-test/src/test/java/org/drools! /ide/editors drools-ide-test/src/test/java/org/drools/ide/editors/completion drools-ide-test/src/test/java/org/drools/ide/editors/rete drools-ide-test/src/test/java/org/drools/ide/wizard drools-ide-test/src/test/java/org/drools/ide/wizard/rule drools-ide-test/src/test/resources drools-jsr94
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Nov 17 10:54:21 EST 2006
Author: ahtik
Date: 2006-11-17 10:52:24 -0500 (Fri, 17 Nov 2006)
New Revision: 7683
Added:
labs/jbossrules/trunk/drools-ide-test/
labs/jbossrules/trunk/drools-ide-test/.classpath
labs/jbossrules/trunk/drools-ide-test/.project
labs/jbossrules/trunk/drools-ide-test/.settings/
labs/jbossrules/trunk/drools-ide-test/.settings/org.eclipse.jdt.core.prefs
labs/jbossrules/trunk/drools-ide-test/META-INF/
labs/jbossrules/trunk/drools-ide-test/META-INF/MANIFEST.MF
labs/jbossrules/trunk/drools-ide-test/build.properties
labs/jbossrules/trunk/drools-ide-test/src/
labs/jbossrules/trunk/drools-ide-test/src/test/
labs/jbossrules/trunk/drools-ide-test/src/test/java/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ReteooLayoutFactoryTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/wizard/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/wizard/rule/
labs/jbossrules/trunk/drools-ide-test/src/test/resources/
labs/jbossrules/trunk/drools-ide-test/src/test/resources/simplerule.drl
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/ZoomInAction2.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/ZoomOutAction2.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteooLayoutFactory.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/Row.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/RowList.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/commands/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/commands/NodeSetConstraintCommand.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/ConnectionFigure.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/VertexFigure.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/Connection.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/GraphicalVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ModelElement.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ReteGraph.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/ConnectionEditPart.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/DiagramEditPart.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPart.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPartFactory.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AlphaNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/BaseVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/EvalConditionNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/JoinNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/LeftInputAdapterNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/NotNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ObjectTypeNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteooVisitor.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/RightInputAdapterNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/TerminalNodeVertex.java
Removed:
labs/jbossrules/trunk/drools-ide-test/.classpath
labs/jbossrules/trunk/drools-ide-test/.project
labs/jbossrules/trunk/drools-ide-test/.settings/
labs/jbossrules/trunk/drools-ide-test/.settings/org.eclipse.jdt.core.prefs
labs/jbossrules/trunk/drools-ide-test/META-INF/
labs/jbossrules/trunk/drools-ide-test/META-INF/MANIFEST.MF
labs/jbossrules/trunk/drools-ide-test/build.properties
labs/jbossrules/trunk/drools-ide-test/src/
labs/jbossrules/trunk/drools-ide-test/src/test/
labs/jbossrules/trunk/drools-ide-test/src/test/java/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ReteooLayoutFactoryTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/wizard/
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/wizard/rule/
labs/jbossrules/trunk/drools-ide-test/src/test/resources/
labs/jbossrules/trunk/drools-ide-test/src/test/resources/simplerule.drl
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/ReteViewer.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteooLayoutFactory.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/Row.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/RowList.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/commands/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/commands/NodeSetConstraintCommand.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/ConnectionFigure.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/VertexFigure.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/Connection.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/GraphicalVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ModelElement.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ReteGraph.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/ConnectionEditPart.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/DiagramEditPart.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPart.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPartFactory.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AlphaNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/BaseVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/EvalConditionNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/JoinNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/LeftInputAdapterNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/NotNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ObjectTypeNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteooVisitor.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/RightInputAdapterNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/TerminalNodeVertex.java
labs/jbossrules/trunk/drools-ide/src/test/
Modified:
labs/jbossrules/trunk/drools-core/.classpath
labs/jbossrules/trunk/drools-core/META-INF/MANIFEST.MF
labs/jbossrules/trunk/drools-core/build.properties
labs/jbossrules/trunk/drools-core/pom.xml
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSource.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java
labs/jbossrules/trunk/drools-decisiontables/.classpath
labs/jbossrules/trunk/drools-ide-feature/.project
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/DSLAdapterTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/ExpressionSpaceNormaliseTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/ContextScanningTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/DRLCompletionProcessorTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/KeywordsTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/LocationDeterminatorTest.java
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/test.dsl
labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/wizard/rule/DRLGenTemplateTest.java
labs/jbossrules/trunk/drools-ide/.classpath
labs/jbossrules/trunk/drools-ide/META-INF/MANIFEST.MF
labs/jbossrules/trunk/drools-ide/plugin.xml
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java
labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditorActionContributor.java
labs/jbossrules/trunk/drools-jsr94/.classpath
Log:
JBRULES-524 Migrated GEF rete viewer from branch 3.0.x. Removed JUNG dependencies. Minor changes were required to trunk to make viewer work here.
Modified: labs/jbossrules/trunk/drools-core/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-core/.classpath 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-core/.classpath 2006-11-17 15:52:24 UTC (rev 7683)
@@ -7,7 +7,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.jar"/>
<classpathentry kind="var" path="M2_REPO/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
- <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Modified: labs/jbossrules/trunk/drools-core/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-core/META-INF/MANIFEST.MF 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-core/META-INF/MANIFEST.MF 2006-11-17 15:52:24 UTC (rev 7683)
@@ -25,5 +25,4 @@
org.drools.visualize
Require-Bundle: org.eclipse.osgi
Bundle-ClassPath: lib/drools-asm-2.2.1.jar,
- lib/jung-1.7.2.jar,
lib/xstream-1.1.3.jar
Modified: labs/jbossrules/trunk/drools-core/build.properties
===================================================================
--- labs/jbossrules/trunk/drools-core/build.properties 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-core/build.properties 2006-11-17 15:52:24 UTC (rev 7683)
@@ -11,5 +11,4 @@
source.drools-core.jar = src/main/java/
output.drools-core.jar = target/classes/
jars.extra.classpath = lib/drools-asm-2.2.1.jar,\
- lib/jung-1.7.2.jar,\
lib/xstream-1.1.3.jar
Modified: labs/jbossrules/trunk/drools-core/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-core/pom.xml 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-core/pom.xml 2006-11-17 15:52:24 UTC (rev 7683)
@@ -22,12 +22,6 @@
<dependencies>
<!-- following are required for parser (lang). May be refactored out of core module. -->
<dependency>
- <groupId>jung</groupId>
- <artifactId>jung</artifactId>
- <version>1.7.2</version>
- </dependency>
-
- <dependency>
<groupId>xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.1.3</version>
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -106,6 +106,12 @@
}
public AlphaNodeFieldConstraint[] getConstraints() {
+
+ // Sanity check
+ if ( this.constraints == null ) {
+ return null;
+ }
+
final LinkedList constraints = this.constraints.getConstraints();
final AlphaNodeFieldConstraint[] array = new AlphaNodeFieldConstraint[constraints.size()];
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -16,6 +16,8 @@
* limitations under the License.
*/
+import java.util.Map;
+
import org.drools.RuleBaseConfiguration;
import org.drools.common.BaseNode;
import org.drools.common.InternalFactHandle;
@@ -90,6 +92,10 @@
}
// public AlphaNodeFieldConstraint[] getConstraints() {
+ // // Sanity check
+ // if ( this.constraints == null ) {
+ // return null;
+ // }
// LinkedList constraints = this.constraints.getConstraints();
//
// AlphaNodeFieldConstraint[] array = new AlphaNodeFieldConstraint[constraints.size()];
@@ -100,6 +106,7 @@
// return array;
// }
+
/* (non-Javadoc)
* @see org.drools.reteoo.BaseNode#attach()
*/
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSource.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSource.java 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSource.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -106,6 +106,10 @@
}
}
+ public TupleSinkPropagator getSinkPropagator() {
+ return this.sink;
+ }
+
public abstract void updateSink(TupleSink sink,
PropagationContext context,
InternalWorkingMemory workingMemory);
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/NotNodeTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -25,11 +25,13 @@
import org.drools.FactException;
import org.drools.RuleBaseConfiguration;
import org.drools.RuleBaseFactory;
+import org.drools.common.BetaConstraints;
import org.drools.common.DefaultBetaConstraints;
import org.drools.common.DefaultFactHandle;
import org.drools.common.PropagationContextImpl;
import org.drools.rule.Rule;
import org.drools.spi.BetaNodeFieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.MockConstraint;
import org.drools.spi.PropagationContext;
@@ -294,5 +296,16 @@
Assert.fail( "No exception should be raised in this procedure, but got: " + e.toString() );
}
}
+
+ public void testGetConstraints_ReturnsNullEvenWithEmptyBinder() {
+ BetaConstraints nullConstraints = null;
+ NotNode notNode = new NotNode( 1,
+ this.tupleSource,
+ this.objectSource, nullConstraints);
+ AlphaNodeFieldConstraint[] constraints = notNode.getConstraints();
+ assertNull(constraints);
+
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-decisiontables/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/.classpath 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-decisiontables/.classpath 2006-11-17 15:52:24 UTC (rev 7683)
@@ -2,8 +2,8 @@
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources"/>
- <classpathentry output="target/test-classes" kind="src" path="src/test/java"/>
- <classpathentry output="target/test-classes" kind="src" path="src/test/resources"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.0.666/core-3.2.0.666.jar"/>
<classpathentry kind="src" path="/drools-compiler"/>
@@ -14,13 +14,9 @@
<classpathentry kind="src" path="/drools-core"/>
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.0ea8/antlr-3.0ea8.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging-api/1.0.4/commons-logging-api-1.0.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/jung/jung/1.7.2/jung-1.7.2.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/colt/colt/1.2.0/colt-1.2.0.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
<classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-jci-eclipse/3.2.0.666/commons-jci-eclipse-3.2.0.666.jar"/>
<classpathentry kind="var" path="M2_REPO/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
Modified: labs/jbossrules/trunk/drools-ide/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-ide/.classpath 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-ide/.classpath 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,17 +1,24 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/test/java"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="lib" path="lib/jxl-2.4.2.jar"/>
- <classpathentry kind="lib" path="lib/xstream-1.1.3.jar"/>
- <classpathentry kind="lib" path="lib/commons-lang-2.1.jar"/>
- <classpathentry kind="lib" path="lib/junit-3.8.1.jar"/>
- <classpathentry kind="lib" path="lib/antlr-3.0ea8.jar"/>
- <classpathentry kind="lib" path="lib/commons-jci-core-1.0-406301.jar"/>
- <classpathentry kind="lib" path="lib/drools-compiler.jar"/>
- <classpathentry kind="lib" path="lib/drools-core.jar"/>
- <classpathentry kind="lib" path="lib/drools-decisiontables.jar"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/antlr-3.0ea8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-logging-api-1.0.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.3.4.O.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xstream-1.1.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jsr94-1.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-jci-core-1.0-406301.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-jci-eclipse-3.2.0.666.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-jci-janino-2.4.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/janino-2.4.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/drools-compiler.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/drools-core.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/drools-decisiontables.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/drools-jsr94.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/stringtemplate-2.3b6.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Modified: labs/jbossrules/trunk/drools-ide/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-ide/META-INF/MANIFEST.MF 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-ide/META-INF/MANIFEST.MF 2006-11-17 15:52:24 UTC (rev 7683)
@@ -17,33 +17,20 @@
org.eclipse.jdt.ui,
org.eclipse.jface.text,
org.eclipse.ui,
- org.eclipse.ui.browser,
- org.eclipse.ui.cheatsheets,
org.eclipse.ui.console,
org.eclipse.ui.editors,
- org.eclipse.ui.externaltools,
org.eclipse.ui.forms,
org.eclipse.ui.ide,
- org.eclipse.ui.intro,
- org.eclipse.ui.navigator,
- org.eclipse.ui.navigator.resources,
- org.eclipse.ui.presentations.r21,
org.eclipse.ui.views,
org.eclipse.ui.workbench.texteditor,
- org.eclipse.pde.ui,
+ org.eclipse.gef,
com.ibm.icu
Eclipse-LazyStart: true
Bundle-ClassPath: ide.jar,
lib/antlr-2.7.6.jar,
lib/antlr-3.0ea8.jar,
- lib/colt-1.2.0.jar,
- lib/commons-collections-3.1.jar,
lib/commons-lang-2.1.jar,
lib/commons-logging-api-1.0.4.jar,
- lib/concurrent-1.3.4.jar,
- lib/jung-1.7.2.jar,
- lib/stringtemplate-2.3b6.jar,
- lib/xercesImpl-2.6.2.jar,
lib/xml-apis-1.0.b2.jar,
lib/xpp3-1.1.3.4.O.jar,
lib/xstream-1.1.3.jar,
@@ -56,4 +43,66 @@
lib/drools-core.jar,
lib/drools-decisiontables.jar,
lib/drools-jsr94.jar,
- lib/jxl-2.4.2.jar
+ lib/stringtemplate-2.3b6.jar
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
+Export-Package: org.drools,
+ org.drools.asm,
+ org.drools.asm.attrs,
+ org.drools.asm.commons,
+ org.drools.asm.signature,
+ org.drools.asm.tree,
+ org.drools.asm.tree.analysis,
+ org.drools.asm.util,
+ org.drools.asm.util.attrs,
+ org.drools.asm.xml,
+ org.drools.audit,
+ org.drools.audit.event,
+ org.drools.base,
+ org.drools.base.evaluators,
+ org.drools.common,
+ org.drools.compiler,
+ org.drools.conflict,
+ org.drools.decisiontable,
+ org.drools.decisiontable.model,
+ org.drools.decisiontable.parser,
+ org.drools.decisiontable.parser.csv,
+ org.drools.decisiontable.parser.xls,
+ org.drools.event,
+ org.drools.ide,
+ org.drools.ide.builder,
+ org.drools.ide.debug,
+ org.drools.ide.debug.actions,
+ org.drools.ide.debug.core,
+ org.drools.ide.dsl.editor,
+ org.drools.ide.editors,
+ org.drools.ide.editors.completion,
+ org.drools.ide.editors.outline,
+ org.drools.ide.editors.rete,
+ org.drools.ide.editors.rete.commands,
+ org.drools.ide.editors.rete.figure,
+ org.drools.ide.editors.rete.model,
+ org.drools.ide.editors.rete.part,
+ org.drools.ide.editors.scanners,
+ org.drools.ide.launching,
+ org.drools.ide.menu,
+ org.drools.ide.preferences,
+ org.drools.ide.util,
+ org.drools.ide.wizard.decisiontable,
+ org.drools.ide.wizard.dsl,
+ org.drools.ide.wizard.project,
+ org.drools.ide.wizard.rule,
+ org.drools.lang,
+ org.drools.lang.descr,
+ org.drools.lang.dsl,
+ org.drools.lang.dsl.template,
+ org.drools.reteoo,
+ org.drools.rule,
+ org.drools.semantics.java,
+ org.drools.semantics.java.parser,
+ org.drools.spi,
+ org.drools.util,
+ org.drools.util.asm,
+ org.drools.util.concurrent.locks,
+ org.drools.xml,
+ org.drools.jsr94.rules,
+ org.drools.jsr94.rules.admin
Modified: labs/jbossrules/trunk/drools-ide/plugin.xml
===================================================================
--- labs/jbossrules/trunk/drools-ide/plugin.xml 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-ide/plugin.xml 2006-11-17 15:52:24 UTC (rev 7683)
@@ -48,7 +48,7 @@
<extension
point="org.eclipse.ui.editors">
<editor
- class="org.drools.ide.editors.DRLRuleEditor"
+ class="org.drools.ide.editors.DRLRuleEditor2"
contributorClass="org.drools.ide.editors.DRLRuleEditorActionContributor"
extensions="drl,jbrule,drools,rule"
icon="icons/drools.gif"
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,74 +1,304 @@
package org.drools.ide.editors;
+/*
+ * Copyright 2006 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.lang.reflect.InvocationTargetException;
+
import org.drools.ide.DroolsIDEPlugin;
+import org.drools.ide.editors.rete.ReteViewer;
+import org.drools.ide.editors.rete.model.ReteGraph;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.gef.editparts.ZoomManager;
+import org.eclipse.gef.ui.actions.ZoomComboContributionItem;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.text.DocumentEvent;
+import org.eclipse.jface.text.IDocumentListener;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.editor.FormEditor;
-//import org.eclipse.ui.texteditor.IDocumentProvider;
-//import org.eclipse.ui.texteditor.IDocumentProviderExtension;
/**
* This is a multi table editor wrapper for both the text editor and the RETE
* viewer.
- * @author Kris.
+ *
+ * @author Kris
+ * @author Ahti Kitsik
*/
public class DRLRuleEditor2 extends FormEditor {
- private DRLRuleEditor textEditor;
+ private DRLRuleEditor textEditor;
- private ReteViewer reteViewer;
+ private ReteViewer reteViewer;
- public void init(IEditorSite site, IEditorInput input) throws PartInitException {
- super.init(site, input);
- setPartName(input.getName());
- }
+ private ZoomComboContributionItem zitem;
- protected void addPages() {
- try {
- textEditor = new DRLRuleEditor() {
- public void close(boolean save) {
- super.close(save);
- DRLRuleEditor2.this.close(save);
- }
- protected void setPartName(String partName) {
- super.setPartName(partName);
- DRLRuleEditor2.this.setPartName(partName);
- }
- };
- //IDocumentProvider provider = textEditor.getDocumentProvider();
- //if (provider instanceof IDocumentProviderExtension) {
- // IDocumentProviderExtension extension = (IDocumentProviderExtension) provider;
- // extension.isModifiable(getEditorInput());
- //}
- reteViewer = new ReteViewer(textEditor, textEditor.getDocumentProvider());
+ private ZoomInAction2 zoomIn;
+ private ZoomOutAction2 zoomOut;
- int text = addPage(textEditor, getEditorInput());
- int rete = addPage(reteViewer, getEditorInput());
+ protected ReteGraph graph;
- setPageText(text, "Text Editor");
- setPageText(rete, "Rete Tree");
- } catch (PartInitException e) {
- DroolsIDEPlugin.log(e);
- }
- }
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.forms.editor.FormEditor#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+ */
+ public void init(IEditorSite site,
+ IEditorInput input) throws PartInitException {
+ super.init( site,
+ input );
+ setPartName( input.getName() );
+ }
- public void doSave(IProgressMonitor monitor) {
- textEditor.doSave(monitor);
- setInput(getEditorInput());
- reteViewer.clear();
- }
+ /**
+ * Adds Text Editor for rules and Rete graph viewer
+ *
+ * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
+ */
+ protected void addPages() {
+ try {
+ textEditor = new DRLRuleEditor() {
+ public void close(boolean save) {
+ super.close( save );
+ DRLRuleEditor2.this.close( save );
+ }
- public void doSaveAs() {
- textEditor.doSaveAs();
- }
+ protected void setPartName(String partName) {
+ super.setPartName( partName );
+ DRLRuleEditor2.this.setPartName( partName );
+ }
+ };
- public boolean isSaveAsAllowed() {
- return textEditor.isSaveAsAllowed();
- }
+ reteViewer = new ReteViewer();
+ int text = addPage( textEditor,
+ getEditorInput() );
+
+ int rete = addPage( reteViewer,
+ getEditorInput() );
+
+ setPageText( text,
+ "Text Editor" );
+ setPageText( rete,
+ "Rete Tree" );
+
+ textEditor.getDocumentProvider().getDocument( getEditorInput() ).addDocumentListener( new IDocumentListener() {
+
+ public void documentAboutToBeChanged(DocumentEvent event) {
+ }
+
+ public void documentChanged(DocumentEvent event) {
+ reteViewer.fireDocumentChanged();
+ }
+
+ } );
+
+ } catch ( PartInitException e ) {
+ DroolsIDEPlugin.log( e );
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public void doSave(IProgressMonitor monitor) {
+ textEditor.doSave( monitor );
+ setInput( getEditorInput() );
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+ */
+ public void doSaveAs() {
+ textEditor.doSaveAs();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+ */
+ public boolean isSaveAsAllowed() {
+ return textEditor.isSaveAsAllowed();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.MultiPageEditorPart#getAdapter(java.lang.Class)
+ */
public Object getAdapter(Class adapter) {
- return textEditor.getAdapter(adapter);
+ if ( adapter == ZoomManager.class ) {
+
+ if ( getActiveEditor() instanceof ReteViewer ) {
+ return reteViewer.getAdapter( adapter );
+ } else if ( getActiveEditor() instanceof DRLRuleEditor ) {
+ return null;
+ }
+
+ } else if ( adapter == ZoomInAction2.class ) {
+ return zoomIn;
+ } else if ( adapter == ZoomOutAction2.class ) {
+ return zoomOut;
+ } else if ( adapter == ZoomComboContributionItem.class ) {
+ return zitem;
+ }
+
+ return textEditor.getAdapter( adapter );
}
+
+ /**
+ * Updates ZoomManagers for contributed actions.
+ */
+ private void updateZoomItems() {
+ updateZoomIn();
+
+ updateZoomOut();
+
+ updateZoomCombo();
+
+ }
+
+ private void updateZoomCombo() {
+ if ( zitem != null ) {
+ zitem.setZoomManager( getZoomManager() );
+ }
+ }
+
+ private void updateZoomIn() {
+ boolean zoomActive = getZoomManager() != null;
+ if ( zoomIn != null ) {
+ zoomIn.setZoomManager( getZoomManager() );
+ zoomIn.setEnabled( zoomActive );
+ }
+ }
+
+ private void updateZoomOut() {
+ boolean zoomActive = getZoomManager() != null;
+ if ( zoomOut != null ) {
+ zoomOut.setZoomManager( getZoomManager() );
+ zoomOut.setEnabled( zoomActive );
+ }
+ }
+
+ /**
+ * Sets ZoomComboContributionItem to be used for updating it's
+ * ZoomManager when multipage tab is switched.
+ *
+ * @param zitem contribution item
+ */
+ public void setZoomComboContributionItem(ZoomComboContributionItem zitem) {
+ this.zitem = zitem;
+ updateZoomCombo();
+ }
+
+ private ZoomManager getZoomManager() {
+ return (ZoomManager) getAdapter( ZoomManager.class );
+ }
+
+ /**
+ * Sets ZoomOutAction2 to be used for updating it's
+ * ZoomManager when multipage tab is switched.
+ *
+ * @param zoomOutAction zoom action
+ */
+ public void setZoomOutAction(ZoomOutAction2 zoomOutAction) {
+ this.zoomOut = zoomOutAction;
+ updateZoomOut();
+ }
+
+ /**
+ * Sets ZoomInAction to be used for updating it's
+ * ZoomManager when multipage tab is switched.
+ * @param zoomInAction zoom action
+ */
+ public void setZoomInAction(ZoomInAction2 zoomInAction) {
+ this.zoomIn = zoomInAction;
+ updateZoomIn();
+ }
+
+ public void setFocus() {
+ if ( getActivePage() == 1 ) {
+ boolean reteFailed = false;
+ graph = null;
+ try {
+ final String contents = textEditor.getDocumentProvider().getDocument( getEditorInput() ).get();
+ final IRunnableWithProgress runnable = new IRunnableWithProgress() {
+
+ public void run(IProgressMonitor monitor) throws InvocationTargetException,
+ InterruptedException {
+ try {
+ graph = reteViewer.loadReteModel( monitor,
+ contents );
+ } catch ( Throwable e ) {
+ if ( e instanceof InvocationTargetException ) {
+ throw (InvocationTargetException) e;
+ } else if ( e instanceof InterruptedException ) {
+ throw (InterruptedException) e;
+ }
+ throw new InvocationTargetException( e );
+ }
+
+ }
+
+ };
+
+ getEditorSite().getWorkbenchWindow().getWorkbench().getProgressService().busyCursorWhile( runnable );
+
+ reteViewer.drawGraph( graph );
+
+ } catch ( InvocationTargetException e ) {
+ handleError( e );
+ reteFailed = true;
+ } catch ( InterruptedException e ) {
+ MessageDialog.openError( getSite().getShell(),
+ "Rete Tree Error!",
+ "Rete Tree Calculation Cancelled!" );
+ reteFailed = true;
+ } catch ( Throwable t ) {
+ handleError( t );
+ reteFailed = true;
+ }
+ if ( reteFailed ) {
+ setActivePage( 0 );
+ }
+ }
+
+ super.setFocus();
+ updateZoomItems();
+
+ }
+
+ private void handleError(Throwable t) {
+ DroolsIDEPlugin.log( t );
+ Throwable cause = t.getCause();
+ if ( cause == null ) {
+ cause = t;
+ }
+ String message = cause.getMessage();
+ if ( message == null || message.length() == 0 ) {
+ message = "Uncategorized Error!";
+ }
+ MessageDialog.openError( getSite().getShell(),
+ "Rete Tree Error!",
+ message );
+
+ }
+
+ /**
+ * Increasing visibility to allow switching tabs by page index
+ */
+ public void setActivePage(int pageIndex) {
+ super.setActivePage( pageIndex );
+ }
+
}
Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditorActionContributor.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditorActionContributor.java 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditorActionContributor.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,5 +1,25 @@
package org.drools.ide.editors;
+/*
+ * Copyright 2006 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.eclipse.gef.editparts.ZoomManager;
+import org.eclipse.gef.ui.actions.ZoomComboContributionItem;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.Separator;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
@@ -7,22 +27,85 @@
import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
import org.eclipse.ui.texteditor.ITextEditor;
+/**
+ * ActionContributors for DRLRuleEditor2
+ *
+ * Currently implements contributors to zoom feature at rete viewer.
+ *
+ * @author Ahti Kitsik
+ *
+ */
public class DRLRuleEditorActionContributor extends MultiPageEditorActionBarContributor {
- private TextEditorActionContributor contributor = new TextEditorActionContributor();
-
- public void init(IActionBars bars, IWorkbenchPage page) {
- contributor.init(bars);
- super.init(bars, page);
- }
-
- public void setActivePage(IEditorPart activeEditor) {
- IActionBars bars = getActionBars();
- if (activeEditor instanceof ITextEditor) {
- if (bars != null) {
- contributor.setActiveEditor(activeEditor);
- }
- }
- }
+ private TextEditorActionContributor contributor = new TextEditorActionContributor();
+ private ZoomComboContributionItem zitem;
+ private ZoomOutAction2 zoomOut;
+ private ZoomInAction2 zoomIn;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.EditorActionBarContributor#init(org.eclipse.ui.IActionBars, org.eclipse.ui.IWorkbenchPage)
+ */
+ public void init(IActionBars bars,
+ IWorkbenchPage page) {
+ contributor.init( bars );
+ super.init( bars,
+ page );
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.part.MultiPageEditorActionBarContributor#setActivePage(org.eclipse.ui.IEditorPart)
+ */
+ public void setActivePage(IEditorPart activeEditor) {
+ IActionBars bars = getActionBars();
+ if ( activeEditor instanceof ITextEditor ) {
+ if ( bars != null ) {
+ contributor.setActiveEditor( activeEditor );
+ }
+ }
+ }
+
+ /**
+ * In addition to @link org.eclipse.ui.part.MultiPageEditorActionBarContributor#setActiveEditor(org.eclipse.ui.IEditorPart)
+ * it sets contribution items to DRLRuleEditor2 for later use when
+ * multipageditor tabs are switched.
+ *
+ */
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor( part );
+ if ( part instanceof DRLRuleEditor2 ) {
+ DRLRuleEditor2 p = (DRLRuleEditor2) part;
+ p.setZoomComboContributionItem( zitem );
+ p.setZoomInAction( zoomIn );
+ p.setZoomOutAction( zoomOut );
+ }
+ }
+
+ /**
+ * Adds Zoom-related contributions.
+ *
+ * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToToolBar(org.eclipse.jface.action.IToolBarManager)
+ */
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ super.contributeToToolBar( toolBarManager );
+ toolBarManager.add( new Separator() );
+ String[] zoomStrings = new String[]{ZoomManager.FIT_ALL, ZoomManager.FIT_HEIGHT, ZoomManager.FIT_WIDTH};
+
+ zitem = new ZoomComboContributionItem( getPage(),
+ zoomStrings );
+ zitem.setZoomManager( null );
+ zitem.setVisible( false );
+
+ zoomIn = new ZoomInAction2();
+ zoomIn.setEnabled( false );
+
+ zoomOut = new ZoomOutAction2();
+ zoomOut.setEnabled( false );
+
+ toolBarManager.add( zitem );
+ toolBarManager.add( zoomIn );
+ toolBarManager.add( zoomOut );
+
+ }
+
}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/ReteViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/ReteViewer.java 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/ReteViewer.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,138 +0,0 @@
-package org.drools.ide.editors;
-
-import java.awt.BorderLayout;
-import java.awt.Frame;
-
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.ide.DRLInfo;
-import org.drools.ide.DroolsIDEPlugin;
-import org.drools.rule.Package;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.awt.SWT_AWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-
-public class ReteViewer extends EditorPart {
-
- private DRLRuleEditor drlEditor;
-
- private Frame frame;
-
- private Composite parent;
-
- public ReteViewer(DRLRuleEditor drlEditor, IDocumentProvider documentProvider) {
- this.drlEditor = drlEditor;
- }
-
- public void createPartControl(Composite parent) {
- this.parent = parent;
- GridLayout layout = new GridLayout();
- layout.numColumns = 1;
- parent.setLayout(layout);
- Button generateButton = new Button(parent, SWT.PUSH);
- generateButton.setText("Generate Rete View");
- generateButton.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- generateReteView();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- generateReteView();
- }
- });
-
- try {
- Composite frameParent = new Composite(parent, SWT.EMBEDDED);
- frameParent.setLayoutData(new GridData(GridData.FILL_BOTH));
- frame = SWT_AWT.new_Frame(frameParent);
- frame.setLayout(new BorderLayout());
- } catch (SWTError exc) {
- // it is possible that this exception is thrown if
- // SWT is not supported, e.g. in Mac
- DroolsIDEPlugin.log(exc);
- }
- }
-
- private RuleBase getRuleBase() {
- try {
- DRLInfo drlInfo = DroolsIDEPlugin.getDefault().parseResource(drlEditor, true, true);
- if (drlInfo != null) {
- Package pkg = drlInfo.getPackage();
- // add the package to a rulebase
- RuleBase ruleBase = RuleBaseFactory.newRuleBase();
- ruleBase.addPackage(pkg);
- return ruleBase;
- }
- } catch (Throwable t) {
- DroolsIDEPlugin.log(t);
- }
- return null;
- }
-
- public void doSave(IProgressMonitor monitor) {
- // Do nothing
- }
-
- public void doSaveAs() {
- // Do nothing
- }
-
- public void init(IEditorSite site, IEditorInput input)
- throws PartInitException {
- setSite(site);
- setInput(input);
- }
-
- public void clear() {
- if (frame != null) { // possible if frame creation failed
- frame.removeAll();
- }
- }
-
- public boolean isDirty() {
- return false;
- }
-
- public boolean isSaveAsAllowed() {
- return false;
- }
-
- public void setFocus() {
- if (drlEditor.isDirty()) {
- clear();
- }
- }
-
- private void generateReteView() {
- if (frame != null) { // possible if frame creation failed
- clear();
- try {
- RuleBase ruleBase = getRuleBase();
- if (ruleBase == null) {
- // TODO signal user that rule cannot be parsed
- } else {
-// ReteooJungViewerPanel viewer = new ReteooJungViewerPanel(
-// ruleBase);
-// frame.add(viewer);
- frame.validate();
- parent.layout();
- }
- } catch (Throwable t) {
- t.printStackTrace();
- DroolsIDEPlugin.log(t);
- }
- }
- }
-}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/ZoomInAction2.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/ZoomInAction2.java)
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/ZoomOutAction2.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/ZoomOutAction2.java)
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,368 +0,0 @@
-package org.drools.ide.editors.rete;
-
-/*
- * Copyright 2006 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.drools.PackageIntegrationException;
-import org.drools.RuleBase;
-import org.drools.compiler.DrlParser;
-import org.drools.compiler.DroolsParserException;
-import org.drools.compiler.PackageBuilder;
-import org.drools.ide.DroolsIDEPlugin;
-import org.drools.ide.builder.DroolsBuilder;
-import org.drools.ide.editors.DSLAdapter;
-import org.drools.ide.editors.rete.model.ReteGraph;
-import org.drools.ide.editors.rete.part.VertexEditPartFactory;
-import org.drools.ide.util.ProjectClassLoader;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.reteoo.BaseVertex;
-import org.drools.reteoo.ReteooRuleBase;
-import org.drools.reteoo.ReteooVisitor;
-import org.drools.rule.Package;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.ConnectionLayer;
-import org.eclipse.draw2d.ConnectionRouter;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.ShortestPathConnectionRouter;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.MouseWheelHandler;
-import org.eclipse.gef.MouseWheelZoomHandler;
-import org.eclipse.gef.editparts.LayerManager;
-import org.eclipse.gef.editparts.ScalableFreeformRootEditPart;
-import org.eclipse.gef.editparts.ZoomManager;
-import org.eclipse.gef.ui.parts.GraphicalEditor;
-import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IFileEditorInput;
-
-/**
- * GEF-based RETE Viewer
- *
- * @author Ahti Kitsik
- *
- */
-public class ReteViewer extends GraphicalEditor {
-
- private static final String MSG_PARSE_ERROR = "Unable to parse rules to show RETE view!";
-
- private static final String JAVA_NATURE = "org.eclipse.jdt.core.javanature";
-
- private static final int SIMPLE_ROUTER_MIN_NODES = 100;
-
- ScalableFreeformRootEditPart rootEditPart = new ScalableFreeformRootEditPart();
-
- private ReteGraph diagram = new ReteGraph();
-
- private boolean relayoutRequired = true;
-
- /**
- * Constructor.
- *
- * @param documentProvider documentProvider must contain Document with rules.
- */
- public ReteViewer() {
- super();
- setEditDomain( new DefaultEditDomain( this ) );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.ui.parts.GraphicalEditor#configureGraphicalViewer()
- */
- protected void configureGraphicalViewer() {
- super.configureGraphicalViewer();
- GraphicalViewer viewer = getGraphicalViewer();
- viewer.getControl().setBackground( ColorConstants.white );
- viewer.setEditPartFactory( new VertexEditPartFactory() );
- viewer.setRootEditPart( rootEditPart );
- viewer.setKeyHandler( new GraphicalViewerKeyHandler( viewer ) );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.ui.parts.GraphicalEditor#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class type) {
-
- if ( type == ZoomManager.class ) return ((ScalableFreeformRootEditPart) getGraphicalViewer().getRootEditPart()).getZoomManager();
- if ( type == GraphicalViewer.class ) return getGraphicalViewer();
- if ( type == EditPart.class && getGraphicalViewer() != null ) return getGraphicalViewer().getRootEditPart();
- if ( type == IFigure.class && getGraphicalViewer() != null ) return ((GraphicalEditPart) getGraphicalViewer().getRootEditPart()).getFigure();
- return super.getAdapter( type );
- }
-
- private RuleBase getRuleBase(String contents) {
- if ( getEditorInput() instanceof IFileEditorInput ) {
- try {
-
- ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
- ClassLoader newLoader = DroolsBuilder.class.getClassLoader();
- IFile file = ((IFileEditorInput) getEditorInput()).getFile();
- if ( file.getProject().getNature( JAVA_NATURE ) != null ) {
- IJavaProject project = JavaCore.create( file.getProject() );
- newLoader = ProjectClassLoader.getProjectClassLoader( project );
- }
-
- Reader dslReader = DSLAdapter.getDSLContent( contents,
- file );
-
- try {
- Thread.currentThread().setContextClassLoader( newLoader );
-
- return parseRuleBase( contents,
- dslReader );
-
- } catch ( Exception t ) {
- throw t;
- } finally {
- Thread.currentThread().setContextClassLoader( oldLoader );
- }
- } catch ( Throwable t ) {
- DroolsIDEPlugin.log( t );
- }
- }
-
- return null;
-
- }
-
- /**
- *
- *
- * @param contents
- * @param dslReader
- * @return
- * @throws DroolsParserException
- * @throws PackageIntegrationException
- */
- public static RuleBase parseRuleBase(String contents,
- Reader dslReader) throws DroolsParserException,
- PackageIntegrationException {
- DrlParser parser = new DrlParser();
-
- PackageDescr packageDescr = null;
- if ( dslReader == null ) {
- packageDescr = parser.parse( contents );
- } else {
- packageDescr = parser.parse( contents,
- dslReader );
- }
-
- //pre build the package
- PackageBuilder builder = new PackageBuilder();
- builder.addPackage( packageDescr );
- Package pkg = builder.getPackage();
-
- //add the package to a rulebase
- ReteooRuleBase ruleBase = new ReteooRuleBase();
- ruleBase.addPackage( pkg );
- return ruleBase;
- }
-
- /**
- * Loads model from rule base,
- * calculates rete view and initializes diagram model.
- * @param monitor
- * @param contents
- * @return
- */
- public ReteGraph loadReteModel(IProgressMonitor monitor,
- String contents) throws Throwable {
- if ( relayoutRequired == false ) {
- return diagram;
- }
-
- ReteGraph newDiagram = new ReteGraph();
-
- try {
-
- monitor.beginTask( "Loading RETE Tree",
- 100 );
-
- monitor.subTask( "Loading Rule Base" );
- RuleBase ruleBase = getRuleBase( contents );
- if ( ruleBase == null ) {
- final Exception error = new Exception( MSG_PARSE_ERROR );
- throw error;
- }
- monitor.worked( 50 );
- if ( monitor.isCanceled() ) {
- throw new InterruptedException();
- }
-
- monitor.subTask( "Building RETE Tree" );
- final ReteooVisitor visitor = new ReteooVisitor( newDiagram );
- visitor.visit( ruleBase );
- monitor.worked( 30 );
- if ( monitor.isCanceled() ) {
- throw new InterruptedException();
- }
-
- monitor.subTask( "Calculating RETE Tree Layout" );
- BaseVertex rootVertex = visitor.getRootVertex();
- RowList rowList = ReteooLayoutFactory.calculateReteRows( rootVertex );
- ReteooLayoutFactory.layoutRowList( newDiagram,
- rowList );
- zeroBaseDiagram( newDiagram );
- monitor.worked( 20 );
- if ( monitor.isCanceled() ) {
- throw new InterruptedException();
- }
- monitor.done();
-
- } catch ( Throwable t ) {
- if ( !(t instanceof InterruptedException) ) {
- DroolsIDEPlugin.log( t );
- }
- throw t;
- }
- relayoutRequired = false;
- return newDiagram;
- }
-
- private ReteGraph getModel() {
- return diagram;
- }
-
- /**
- * Loads Rete model and initializes zoom manager.
- *
- */
- protected void initializeGraphicalViewer() {
- ZoomManager zoomManager = rootEditPart.getZoomManager();
-
- //List<String>
- List zoomLevels = new ArrayList( 3 );
-
- zoomLevels.add( ZoomManager.FIT_ALL );
- zoomLevels.add( ZoomManager.FIT_HEIGHT );
- zoomLevels.add( ZoomManager.FIT_WIDTH );
-
- zoomManager.setZoomLevelContributions( zoomLevels );
-
- // Zoom mousewheel - Ctrl+Mousewheel for zoom in/out
- getGraphicalViewer().setProperty( MouseWheelHandler.KeyGenerator.getKey( SWT.MOD1 ),
- MouseWheelZoomHandler.SINGLETON );
-
- }
-
- /**
- * Moves all <code>diagram</code> nodes to upper left corner
- * and shifting to right if neccessary to get rid of negative XY coordinates.
- *
- */
- private void zeroBaseDiagram(ReteGraph graph) {
-
- Dimension dim = rootEditPart.getContentPane().getSize();
-
- int minx = 0, miny = 0, maxx = 0, x = dim.width;
-
- final Iterator nodeIter = graph.getChildren().iterator();
- while ( nodeIter.hasNext() ) {
- Point loc = ((BaseVertex) (nodeIter.next())).getLocation();
- minx = Math.min( loc.x,
- minx );
- maxx = Math.max( loc.x,
- maxx );
- miny = Math.min( loc.y,
- miny );
- }
-
- int delta = (x - (maxx - minx + 20)) / 2;
- minx = minx - (delta);
-
- final Iterator nodeIter2 = graph.getChildren().iterator();
- while ( nodeIter2.hasNext() ) {
- final BaseVertex vertex = (BaseVertex) (nodeIter2.next());
- Point loc = vertex.getLocation();
- vertex.setLocation( new Point( loc.x - minx,
- loc.y - miny ) );
- }
- }
-
- /**
- * No save operation in ReteViewer
- */
- public void doSave(IProgressMonitor monitor) {
-
- }
-
- /**
- * ReteViewer is never dirty.
- * This prevents editor close mechanism to ask file save confirmation
- * even after one of the vertices is moved.
- */
- public boolean isDirty() {
- return false;
- }
-
- /**
- * Fired when underlying source is modified.
- * Marks graph viewer to be relayouted when activated.
- */
- public void fireDocumentChanged() {
- relayoutRequired = true;
- }
-
- /**
- * Draws graph.
- *
- * @param newGraph used to replace existing graph. if null then existing graph is simply redrawn.
- */
- public void drawGraph(ReteGraph newGraph) {
-
- LayerManager manager = (LayerManager) getGraphicalViewer().getEditPartRegistry().get( LayerManager.ID );
- ConnectionLayer connLayer = (ConnectionLayer) manager.getLayer( LayerConstants.CONNECTION_LAYER );
-
- // Lazy-init model initialization
- if ( getGraphicalViewer().getContents() == null ) {
- getGraphicalViewer().setContents( getModel() );
- }
-
- final boolean isNewDiagram = newGraph != null && newGraph != diagram;
-
- if ( isNewDiagram ) {
- diagram.removeAll();
- }
-
- // Update connection router according to new model size
- ConnectionRouter router;
- if ( (isNewDiagram && newGraph.getChildren().size() < SIMPLE_ROUTER_MIN_NODES) || (!isNewDiagram && getModel().getChildren().size() < SIMPLE_ROUTER_MIN_NODES) ) {
- router = new ShortestPathConnectionRouter( (IFigure) rootEditPart.getContentPane().getChildren().get( 0 ) );
- } else {
- router = ConnectionRouter.NULL;
- }
- connLayer.setConnectionRouter( router );
-
- if ( newGraph != null && newGraph != diagram ) {
- diagram.addAll( newGraph.getChildren() );
- }
-
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java)
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -0,0 +1,369 @@
+package org.drools.ide.editors.rete;
+
+/*
+ * Copyright 2006 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.drools.PackageIntegrationException;
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.compiler.DrlParser;
+import org.drools.compiler.DroolsParserException;
+import org.drools.compiler.PackageBuilder;
+import org.drools.ide.DroolsIDEPlugin;
+import org.drools.ide.builder.DroolsBuilder;
+import org.drools.ide.editors.DSLAdapter;
+import org.drools.ide.editors.rete.model.ReteGraph;
+import org.drools.ide.editors.rete.part.VertexEditPartFactory;
+import org.drools.ide.util.ProjectClassLoader;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.reteoo.BaseVertex;
+import org.drools.reteoo.ReteooRuleBase;
+import org.drools.reteoo.ReteooVisitor;
+import org.drools.rule.Package;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.ConnectionLayer;
+import org.eclipse.draw2d.ConnectionRouter;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.ShortestPathConnectionRouter;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gef.LayerConstants;
+import org.eclipse.gef.MouseWheelHandler;
+import org.eclipse.gef.MouseWheelZoomHandler;
+import org.eclipse.gef.editparts.LayerManager;
+import org.eclipse.gef.editparts.ScalableFreeformRootEditPart;
+import org.eclipse.gef.editparts.ZoomManager;
+import org.eclipse.gef.ui.parts.GraphicalEditor;
+import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.IFileEditorInput;
+
+/**
+ * GEF-based RETE Viewer
+ *
+ * @author Ahti Kitsik
+ *
+ */
+public class ReteViewer extends GraphicalEditor {
+
+ private static final String MSG_PARSE_ERROR = "Unable to parse rules to show RETE view!";
+
+ private static final String JAVA_NATURE = "org.eclipse.jdt.core.javanature";
+
+ private static final int SIMPLE_ROUTER_MIN_NODES = 100;
+
+ ScalableFreeformRootEditPart rootEditPart = new ScalableFreeformRootEditPart();
+
+ private ReteGraph diagram = new ReteGraph();
+
+ private boolean relayoutRequired = true;
+
+ /**
+ * Constructor.
+ *
+ * @param documentProvider documentProvider must contain Document with rules.
+ */
+ public ReteViewer() {
+ super();
+ setEditDomain( new DefaultEditDomain( this ) );
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.gef.ui.parts.GraphicalEditor#configureGraphicalViewer()
+ */
+ protected void configureGraphicalViewer() {
+ super.configureGraphicalViewer();
+ GraphicalViewer viewer = getGraphicalViewer();
+ viewer.getControl().setBackground( ColorConstants.white );
+ viewer.setEditPartFactory( new VertexEditPartFactory() );
+ viewer.setRootEditPart( rootEditPart );
+ viewer.setKeyHandler( new GraphicalViewerKeyHandler( viewer ) );
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.gef.ui.parts.GraphicalEditor#getAdapter(java.lang.Class)
+ */
+ public Object getAdapter(Class type) {
+
+ if ( type == ZoomManager.class ) return ((ScalableFreeformRootEditPart) getGraphicalViewer().getRootEditPart()).getZoomManager();
+ if ( type == GraphicalViewer.class ) return getGraphicalViewer();
+ if ( type == EditPart.class && getGraphicalViewer() != null ) return getGraphicalViewer().getRootEditPart();
+ if ( type == IFigure.class && getGraphicalViewer() != null ) return ((GraphicalEditPart) getGraphicalViewer().getRootEditPart()).getFigure();
+ return super.getAdapter( type );
+ }
+
+ private RuleBase getRuleBase(String contents) {
+ if ( getEditorInput() instanceof IFileEditorInput ) {
+ try {
+
+ ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
+ ClassLoader newLoader = DroolsBuilder.class.getClassLoader();
+ IFile file = ((IFileEditorInput) getEditorInput()).getFile();
+ if ( file.getProject().getNature( JAVA_NATURE ) != null ) {
+ IJavaProject project = JavaCore.create( file.getProject() );
+ newLoader = ProjectClassLoader.getProjectClassLoader( project );
+ }
+
+ Reader dslReader = DSLAdapter.getDSLContent( contents,
+ file );
+
+ try {
+ Thread.currentThread().setContextClassLoader( newLoader );
+
+ return parseRuleBase( contents,
+ dslReader );
+
+ } catch ( Exception t ) {
+ throw t;
+ } finally {
+ Thread.currentThread().setContextClassLoader( oldLoader );
+ }
+ } catch ( Throwable t ) {
+ DroolsIDEPlugin.log( t );
+ }
+ }
+
+ return null;
+
+ }
+
+ /**
+ *
+ *
+ * @param contents
+ * @param dslReader
+ * @return
+ * @throws DroolsParserException
+ * @throws PackageIntegrationException
+ */
+ public static RuleBase parseRuleBase(String contents,
+ Reader dslReader) throws DroolsParserException,
+ PackageIntegrationException {
+ DrlParser parser = new DrlParser();
+
+ PackageDescr packageDescr = null;
+ if ( dslReader == null ) {
+ packageDescr = parser.parse( contents );
+ } else {
+ packageDescr = parser.parse( contents,
+ dslReader );
+ }
+
+ //pre build the package
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackage( packageDescr );
+ Package pkg = builder.getPackage();
+
+ //add the package to a rulebase
+ ReteooRuleBase ruleBase = (ReteooRuleBase) RuleBaseFactory.newRuleBase( RuleBase.RETEOO );
+ ruleBase.addPackage( pkg );
+ return ruleBase;
+ }
+
+ /**
+ * Loads model from rule base,
+ * calculates rete view and initializes diagram model.
+ * @param monitor
+ * @param contents
+ * @return
+ */
+ public ReteGraph loadReteModel(IProgressMonitor monitor,
+ String contents) throws Throwable {
+ if ( relayoutRequired == false ) {
+ return diagram;
+ }
+
+ ReteGraph newDiagram = new ReteGraph();
+
+ try {
+
+ monitor.beginTask( "Loading RETE Tree",
+ 100 );
+
+ monitor.subTask( "Loading Rule Base" );
+ RuleBase ruleBase = getRuleBase( contents );
+ if ( ruleBase == null ) {
+ final Exception error = new Exception( MSG_PARSE_ERROR );
+ throw error;
+ }
+ monitor.worked( 50 );
+ if ( monitor.isCanceled() ) {
+ throw new InterruptedException();
+ }
+
+ monitor.subTask( "Building RETE Tree" );
+ final ReteooVisitor visitor = new ReteooVisitor( newDiagram );
+ visitor.visit( ruleBase );
+ monitor.worked( 30 );
+ if ( monitor.isCanceled() ) {
+ throw new InterruptedException();
+ }
+
+ monitor.subTask( "Calculating RETE Tree Layout" );
+ BaseVertex rootVertex = visitor.getRootVertex();
+ RowList rowList = ReteooLayoutFactory.calculateReteRows( rootVertex );
+ ReteooLayoutFactory.layoutRowList( newDiagram,
+ rowList );
+ zeroBaseDiagram( newDiagram );
+ monitor.worked( 20 );
+ if ( monitor.isCanceled() ) {
+ throw new InterruptedException();
+ }
+ monitor.done();
+
+ } catch ( Throwable t ) {
+ if ( !(t instanceof InterruptedException) ) {
+ DroolsIDEPlugin.log( t );
+ }
+ throw t;
+ }
+ relayoutRequired = false;
+ return newDiagram;
+ }
+
+ private ReteGraph getModel() {
+ return diagram;
+ }
+
+ /**
+ * Loads Rete model and initializes zoom manager.
+ *
+ */
+ protected void initializeGraphicalViewer() {
+ ZoomManager zoomManager = rootEditPart.getZoomManager();
+
+ //List<String>
+ List zoomLevels = new ArrayList( 3 );
+
+ zoomLevels.add( ZoomManager.FIT_ALL );
+ zoomLevels.add( ZoomManager.FIT_HEIGHT );
+ zoomLevels.add( ZoomManager.FIT_WIDTH );
+
+ zoomManager.setZoomLevelContributions( zoomLevels );
+
+ // Zoom mousewheel - Ctrl+Mousewheel for zoom in/out
+ getGraphicalViewer().setProperty( MouseWheelHandler.KeyGenerator.getKey( SWT.MOD1 ),
+ MouseWheelZoomHandler.SINGLETON );
+
+ }
+
+ /**
+ * Moves all <code>diagram</code> nodes to upper left corner
+ * and shifting to right if neccessary to get rid of negative XY coordinates.
+ *
+ */
+ private void zeroBaseDiagram(ReteGraph graph) {
+
+ Dimension dim = rootEditPart.getContentPane().getSize();
+
+ int minx = 0, miny = 0, maxx = 0, x = dim.width;
+
+ final Iterator nodeIter = graph.getChildren().iterator();
+ while ( nodeIter.hasNext() ) {
+ Point loc = ((BaseVertex) (nodeIter.next())).getLocation();
+ minx = Math.min( loc.x,
+ minx );
+ maxx = Math.max( loc.x,
+ maxx );
+ miny = Math.min( loc.y,
+ miny );
+ }
+
+ int delta = (x - (maxx - minx + 20)) / 2;
+ minx = minx - (delta);
+
+ final Iterator nodeIter2 = graph.getChildren().iterator();
+ while ( nodeIter2.hasNext() ) {
+ final BaseVertex vertex = (BaseVertex) (nodeIter2.next());
+ Point loc = vertex.getLocation();
+ vertex.setLocation( new Point( loc.x - minx,
+ loc.y - miny ) );
+ }
+ }
+
+ /**
+ * No save operation in ReteViewer
+ */
+ public void doSave(IProgressMonitor monitor) {
+
+ }
+
+ /**
+ * ReteViewer is never dirty.
+ * This prevents editor close mechanism to ask file save confirmation
+ * even after one of the vertices is moved.
+ */
+ public boolean isDirty() {
+ return false;
+ }
+
+ /**
+ * Fired when underlying source is modified.
+ * Marks graph viewer to be relayouted when activated.
+ */
+ public void fireDocumentChanged() {
+ relayoutRequired = true;
+ }
+
+ /**
+ * Draws graph.
+ *
+ * @param newGraph used to replace existing graph. if null then existing graph is simply redrawn.
+ */
+ public void drawGraph(ReteGraph newGraph) {
+
+ LayerManager manager = (LayerManager) getGraphicalViewer().getEditPartRegistry().get( LayerManager.ID );
+ ConnectionLayer connLayer = (ConnectionLayer) manager.getLayer( LayerConstants.CONNECTION_LAYER );
+
+ // Lazy-init model initialization
+ if ( getGraphicalViewer().getContents() == null ) {
+ getGraphicalViewer().setContents( getModel() );
+ }
+
+ final boolean isNewDiagram = newGraph != null && newGraph != diagram;
+
+ if ( isNewDiagram ) {
+ diagram.removeAll();
+ }
+
+ // Update connection router according to new model size
+ ConnectionRouter router;
+ if ( (isNewDiagram && newGraph.getChildren().size() < SIMPLE_ROUTER_MIN_NODES) || (!isNewDiagram && getModel().getChildren().size() < SIMPLE_ROUTER_MIN_NODES) ) {
+ router = new ShortestPathConnectionRouter( (IFigure) rootEditPart.getContentPane().getChildren().get( 0 ) );
+ } else {
+ router = ConnectionRouter.NULL;
+ }
+ connLayer.setConnectionRouter( router );
+
+ if ( newGraph != null && newGraph != diagram ) {
+ diagram.addAll( newGraph.getChildren() );
+ }
+
+ }
+
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteooLayoutFactory.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteooLayoutFactory.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteooLayoutFactory.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,155 +0,0 @@
-package org.drools.ide.editors.rete;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.drools.ide.editors.rete.model.Connection;
-import org.drools.ide.editors.rete.model.ReteGraph;
-import org.drools.reteoo.BaseVertex;
-import org.eclipse.draw2d.geometry.Point;
-
-/**
- * Factory methods for calculating and layouting reteoo graph
- *
- */
-public class ReteooLayoutFactory {
-
- /**
- * Calculates layouting for provided graph.
- *
- * @param root graph root vertex
- *
- * @return Optimally layouted rows from provided graph
- */
- public static RowList calculateReteRows(BaseVertex root) {
- RowList rowList;
- rowList = new RowList();
-
- rowList.add( 0,
- root );
-
- int curRow = 0;
-
- final Set seenVertices = new HashSet();
- seenVertices.add( root );
-
- while ( curRow < rowList.getDepth() ) {
- final List rowVertices = rowList.get( curRow ).getVertices();
-
- for ( final Iterator rowNodeIter = rowVertices.iterator(); rowNodeIter.hasNext(); ) {
- final BaseVertex rowNode = (BaseVertex) rowNodeIter.next();
-
- final List edges = rowNode.getSourceConnections();
-
- for ( final Iterator edgeIter = edges.iterator(); edgeIter.hasNext(); ) {
-
- final Connection edge = (Connection) edgeIter.next();
- final BaseVertex destNode = edge.getOpposite( rowNode );
-
- if ( !seenVertices.contains( destNode ) ) {
- rowList.add( curRow + 1,
- destNode );
- seenVertices.add( destNode );
- }
- }
-
- seenVertices.add( rowNode );
- }
-
- ++curRow;
- }
-
- rowList.optimize();
-
- return rowList;
- }
-
- /**
- * Adds all vertices from rowList to the graph.
- *
- * @param graph
- * @param rowList
- */
- public static void layoutRowList(ReteGraph graph,
- RowList rowList) {
- new LayoutCalculator( graph,
- rowList );
- }
-
- private static class LayoutCalculator {
-
- public final static String COORDS = "drools.LayoutCalculator.coords";
-
- private static final int COLUMN_SPACE = 40;
- private static final int ROW_HEIGHT_MULTIPLIER = 6;
-
- private RowList rowList;
-
- private int columnWidth;
- private int rowHeight;
-
- private ReteGraph graph;
-
- private LayoutCalculator(final ReteGraph graph,
- final RowList rowList) {
- this.graph = graph;
- this.rowList = rowList;
- computeSize();
-
- List vertices = getGraph().getChildren();
- Iterator iter = vertices.iterator();
- while ( iter.hasNext() ) {
- BaseVertex v = (BaseVertex) iter.next();
- initialize_local_vertex( v );
- }
-
- }
-
- private void computeSize() {
- final List vertices = getGraph().getChildren();
-
- for ( final Iterator vertexIter = vertices.iterator(); vertexIter.hasNext(); ) {
- final BaseVertex vertex = (BaseVertex) vertexIter.next();
-
- final int width = vertex.getSize().width;
- final int height = vertex.getSize().height;
-
- if ( width > this.columnWidth ) {
- this.columnWidth = width;
- }
-
- if ( height > this.rowHeight ) {
- this.rowHeight = height;
- }
- }
-
- this.columnWidth = this.columnWidth + LayoutCalculator.COLUMN_SPACE;
- }
-
- private void initialize_local_vertex(final BaseVertex vertex) {
- final int row = this.rowList.getRow( vertex );
- final int col = this.rowList.getColumn( vertex );
-
- final int rowWidth = this.rowList.getWidth( row );
-
- final int columnWidthPx = columnWidth;
- final int rowHeightPx = rowHeight;
-
- double x = (col * columnWidthPx);
- double y = (row * (rowHeightPx * LayoutCalculator.ROW_HEIGHT_MULTIPLIER));
-
- x = x + (columnWidthPx / 2) - ((rowWidth - 1) * (columnWidthPx / 2));
- y = y + (rowHeightPx / 2) + 3;
-
- vertex.setLocation( new Point( x,
- y ) );
- }
-
- private ReteGraph getGraph() {
- return graph;
- }
- }
-
-}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteooLayoutFactory.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteooLayoutFactory.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/Row.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/Row.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/Row.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,139 +0,0 @@
-package org.drools.ide.editors.rete;
-
-/*
- * Copyright 2006 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.drools.reteoo.BaseVertex;
-
-/**
- * Represents one row in rete graph
- *
- */
-public class Row {
-
- private final int depth;
-
- //List<BaseVertex>
- private List vertices;
-
- /**
- * Default constructor.
- *
- * @param depth row depth
- */
- public Row(final int depth) {
- super();
- this.vertices = new ArrayList();
- this.depth = depth;
- }
-
- /**
- * Returns row depth
- *
- * @return row depth
- */
- public int getDepth() {
- return this.depth;
- }
-
- /**
- * Adds new vertex to this row.
- *
- * @param vertex new vertex to be added
- */
- public void add(final BaseVertex vertex) {
- this.vertices.add( vertex );
- }
-
- /**
- * Returns all vertices from this row.
- *
- * @return list of vertices with type BaseVertex
- */
- public List getVertices() {
- return this.vertices;
- }
-
- /**
- * @param vertex
- * @return <code>true</code> if vertex is found in row. <code>false</code> otherwise.
- */
- public boolean contains(final BaseVertex vertex) {
- return this.vertices.contains( vertex );
- }
-
- /**
- * @return number of vertices in row
- */
- public int getWidth() {
- return this.vertices.size();
- }
-
- /**
- * Optimizing vertices for optimal presentation
- *
- */
- public void optimize() {
- final List sorted = new ArrayList( this.vertices );
-
- Collections.sort( sorted,
- new Comparator() {
- public int compare(final Object o1,
- final Object o2) {
- final BaseVertex v1 = (BaseVertex) o1;
- final BaseVertex v2 = (BaseVertex) o2;
-
- int v1OutDegree = v1.getSourceConnections().size();
- int v2OutDegree = v2.getSourceConnections().size();
-
- if ( v1OutDegree < v2OutDegree ) {
- return 1;
- }
-
- if ( v1OutDegree > v2OutDegree ) {
- return -1;
- }
-
- return 0;
- }
- } );
-
- final LinkedList optimized = new LinkedList();
-
- boolean front = false;
-
- for ( final Iterator vertexIter = sorted.iterator(); vertexIter.hasNext(); ) {
- final BaseVertex vertex = (BaseVertex) vertexIter.next();
-
- if ( front ) {
- optimized.addFirst( vertex );
- } else {
- optimized.addLast( vertex );
- }
-
- front = !front;
- }
-
- this.vertices = optimized;
- }
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/Row.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/Row.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/RowList.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/RowList.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/RowList.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,169 +0,0 @@
-package org.drools.ide.editors.rete;
-
-/*
- * Copyright 2006 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.drools.reteoo.BaseVertex;
-
-/**
- * Holder for Row elements.
- *
- */
-public class RowList {
-
- // List<Row>
- private List rows;
-
- /**
- * Default constructor.
- */
- public RowList() {
- super();
- this.rows = new ArrayList();
- }
-
- /**
- * Adds new vertex to specified depth
- *
- * @param depth depth for vertex
- * @param vertex vertex
- */
- public void add(final int depth,
- final BaseVertex vertex) {
- if ( this.rows.size() < (depth + 1) ) {
- final int addRows = depth - this.rows.size() + 1;
-
- for ( int i = 0; i < addRows; ++i ) {
- this.rows.add( new Row( (depth - addRows) + i ) );
- }
- }
-
- ((Row) this.rows.get( depth )).add( vertex );
- }
-
- /**
- * @return number of rows in RowList
- */
- public int getDepth() {
- return this.rows.size();
- }
-
- /**
- * @param row index of the row to be returned (0..n-1)
- * @return specified row
- */
- public Row get(final int row) {
- return (Row) this.rows.get( row );
- }
-
- /**
- * Finds specified vertex from the rows.
- *
- * @param vertex vertex
- *
- * @return row number where vertex was found (0..n-1). <code>-1</code> if not found.
- */
- public int getRow(final BaseVertex vertex) {
- final int numRows = this.rows.size();
-
- for ( int i = 0; i < numRows; ++i ) {
- if ( ((Row) this.rows.get( i )).contains( vertex ) ) {
- return i;
- }
- }
-
- return -1;
- }
-
- /**
- * Finds the longest row width.
- *
- * @return width of the longest row
- */
- public int getWidth() {
- int width = 0;
-
- for ( final Iterator rowIter = this.rows.iterator(); rowIter.hasNext(); ) {
- final Row row = (Row) rowIter.next();
- final int rowWidth = row.getWidth();
-
- if ( rowWidth > width ) {
- width = rowWidth;
- }
- }
-
- return width;
- }
-
- /**
- * Width of the row at specified index.
- *
- * @param row
- * @return width
- */
- public int getWidth(final int row) {
- return ((Row) this.rows.get( row )).getWidth();
- }
-
- /**
- * @param vertex vertex to search
- * @return column where vertex was found
- */
- public int getColumn(final BaseVertex vertex) {
- final int row = getRow( vertex );
-
- if ( row < 0 ) {
- return -1;
- }
-
- final List rowVertices = get( row ).getVertices();
-
- final int numCols = rowVertices.size();
-
- for ( int i = 0; i < numCols; ++i ) {
- if ( rowVertices.get( i ).equals( vertex ) ) {
- return i;
- }
- }
-
- return -1;
- }
-
- /**
- * Dumps all row vertices to System.err
- */
- public void dump() {
- final int numRows = this.rows.size();
-
- for ( int i = 0; i < numRows; ++i ) {
- System.err.println( i + ": " + get( i ).getVertices() );
- }
- }
-
- /**
- * Optimizes all rows for optimal presentation
- */
- public void optimize() {
- final int numRows = this.rows.size();
-
- for ( int i = 0; i < numRows; ++i ) {
- get( i ).optimize();
- }
- }
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/RowList.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/RowList.java)
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/commands (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/commands)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/commands/NodeSetConstraintCommand.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/commands/NodeSetConstraintCommand.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/commands/NodeSetConstraintCommand.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,79 +0,0 @@
-package org.drools.ide.editors.rete.commands;
-
-import org.drools.reteoo.BaseVertex;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-
-/**
- * A command to move a vertex.
- *
- */
-public class NodeSetConstraintCommand extends Command {
-
- /** Stores the new size and location. */
- private final Rectangle newBounds;
-
- /** Stores the old size and location. */
- private Rectangle oldBounds;
-
- /** A request to move/resize an edit part. */
- private final ChangeBoundsRequest request;
-
- /** BaseVertex to manipulate. */
- private final BaseVertex vertex;
-
- /**
- * Create a command that can resize and/or move a vertex.
- *
- * @param vertex the vertex to manipulate
- * @param req the move request
- * @param newBounds the new location. size is ignored
- * @throws IllegalArgumentException if any of the parameters is null
- */
- public NodeSetConstraintCommand(BaseVertex vertex,
- ChangeBoundsRequest req,
- Rectangle newBounds) {
- if ( vertex == null || req == null || newBounds == null ) {
- throw new IllegalArgumentException();
- }
- this.vertex = vertex;
- this.request = req;
- this.newBounds = newBounds.getCopy();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.commands.Command#canExecute()
- */
- public boolean canExecute() {
- Object type = request.getType();
- return (RequestConstants.REQ_MOVE.equals( type ) || RequestConstants.REQ_MOVE_CHILDREN.equals( type ));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.commands.Command#execute()
- */
- public void execute() {
- oldBounds = new Rectangle( vertex.getLocation(),
- vertex.getSize() );
- redo();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.commands.Command#redo()
- */
- public void redo() {
- vertex.setSize( newBounds.getSize() );
- vertex.setLocation( newBounds.getLocation() );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.commands.Command#undo()
- */
- public void undo() {
- vertex.setSize( oldBounds.getSize() );
- vertex.setLocation( oldBounds.getLocation() );
- }
-}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/commands/NodeSetConstraintCommand.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/commands/NodeSetConstraintCommand.java)
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/figure)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/ConnectionFigure.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/ConnectionFigure.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/ConnectionFigure.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,20 +0,0 @@
-package org.drools.ide.editors.rete.figure;
-
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.PolylineConnection;
-import org.eclipse.swt.SWT;
-
-/**
- * ConnectionFigure between two Vertices.
- *
- */
-public class ConnectionFigure extends PolylineConnection {
-
- /**
- * Painting antialiased connector
- */
- public void paint(Graphics g) {
- g.setAntialias( SWT.ON );
- super.paint( g );
- }
-}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/ConnectionFigure.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/ConnectionFigure.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/VertexFigure.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/VertexFigure.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/VertexFigure.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,54 +0,0 @@
-package org.drools.ide.editors.rete.figure;
-
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Figure representing BaseVertex
- *
- */
-public class VertexFigure extends Figure {
-
- final private Color backgroundColor;
- final private Color borderColor;
-
- /**
- * Initializing Figure
- *
- * @param backgroundColor background color
- * @param borderColor border color
- */
- public VertexFigure(Color backgroundColor,
- Color borderColor) {
- this.backgroundColor = backgroundColor;
- this.borderColor = borderColor;
- }
-
- /**
- * Painting antialiased vertex
- */
- public void paint(Graphics g) {
- g.setAntialias( SWT.ON );
- Rectangle r = getBounds().getCopy();
- g.translate( r.getLocation() );
- g.setBackgroundColor( backgroundColor );
- g.setForegroundColor( borderColor );
- g.fillArc( 0,
- 0,
- 15,
- 15,
- 0,
- 360 );
- g.drawArc( 0,
- 0,
- 14,
- 14,
- 0,
- 360 );
- super.paint( g );
- }
-
-}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/VertexFigure.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/figure/VertexFigure.java)
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/Connection.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/Connection.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/Connection.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,80 +0,0 @@
-package org.drools.ide.editors.rete.model;
-
-import org.drools.reteoo.BaseVertex;
-
-/**
- * A connection between two distinct vertices.
- */
-public class Connection extends ModelElement {
-
- private boolean isConnected;
-
- private BaseVertex source;
-
- private BaseVertex target;
-
- /**
- * Creating a connection between two distinct vertices.
- *
- * @param source a source endpoint
- * @param target a target endpoint
- * @throws IllegalArgumentException if any of the parameters are null or source == target
- */
- public Connection(BaseVertex source,
- BaseVertex target) {
- this.source = source;
- this.target = target;
- source.addConnection( this );
- target.addConnection( this );
- isConnected = true;
- }
-
- /**
- * Disconnect this connection from the vertices it is attached to.
- */
- public void disconnect() {
- if ( isConnected ) {
- source.removeConnection( this );
- target.removeConnection( this );
- isConnected = false;
- }
- }
-
- /**
- * Returns the source endpoint of this connection.
- *
- * @return BaseVertex vertex
- */
- public BaseVertex getSource() {
- return source;
- }
-
- /**
- * Returns the target endpoint of this connection.
- *
- * @return BaseVertex vertex
- */
- public BaseVertex getTarget() {
- return target;
- }
-
- /**
- * Gets opposite of specified vertex.
- *
- * Returning <code>null</code> if specified not does not belong into this connection.
- *
- * @param vertex
- * @return opposite of vertex
- */
- public BaseVertex getOpposite(BaseVertex vertex) {
- // If null or not part of this connection
- if ( vertex == null || (!vertex.equals( getSource() ) && !vertex.equals( getTarget() )) ) {
- return null;
- }
- if ( vertex.equals( getSource() ) ) {
- return getTarget();
- }
- return getSource();
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/Connection.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/Connection.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/GraphicalVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/GraphicalVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/GraphicalVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,287 +0,0 @@
-package org.drools.ide.editors.rete.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.drools.spi.FieldConstraint;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * Visual vertex representation for ReteGraph.
- *
- * Base impl for all rete vertices.
- *
- * Can be connected with another BaseVertex with a Connector.
- *
- * @author Ahti Kitsik
- *
- */
-abstract public class GraphicalVertex extends ModelElement {
-
- private static final String VERTEX_NAME = "BaseVertex ";
-
- private static final String WIDTH = "Width";
-
- private static final String HEIGHT = "Height";
-
- private static IPropertyDescriptor[] descriptors;
-
- /** ID for the Height property value (used for by the corresponding property descriptor). */
- private static final String HEIGHT_PROP = VERTEX_NAME + "." + HEIGHT;
-
- /** ID for the Width property value (used for by the corresponding property descriptor). */
- private static final String WIDTH_PROP = VERTEX_NAME + "." + WIDTH;
-
- /** Property ID to use when the location of this shape is modified. */
- public static final String LOCATION_PROP = VERTEX_NAME + ".Location";
-
- /** Property ID to use then the size of this shape is modified. */
- public static final String SIZE_PROP = VERTEX_NAME + ".Size";
-
- /** Property ID to use when the list of outgoing connections is modified. */
- public static final String SOURCE_CONNECTIONS_PROP = VERTEX_NAME + ".SourceConn";
-
- /** Property ID to use when the list of incoming connections is modified. */
- public static final String TARGET_CONNECTIONS_PROP = VERTEX_NAME + ".TargetConn";
-
- /** ID for the X property value (used for by the corresponding property descriptor). */
- private static final String XPOS_PROP = VERTEX_NAME + ".xPos";
-
- /** ID for the Y property value (used for by the corresponding property descriptor). */
- private static final String YPOS_PROP = VERTEX_NAME + ".yPos";
-
- /*
- * Initializes the property descriptors array.
- * @see #getPropertyDescriptors()
- * @see #getPropertyValue(Object)
- * @see #setPropertyValue(Object, Object)
- */
- static {
- descriptors = new IPropertyDescriptor[]{new TextPropertyDescriptor( XPOS_PROP,
- "X" ), // id and description pair
- new TextPropertyDescriptor( YPOS_PROP,
- "Y" ), new TextPropertyDescriptor( WIDTH_PROP,
- WIDTH ), new TextPropertyDescriptor( HEIGHT_PROP,
- HEIGHT ),};
- } // static
-
- /** Location of this vertex. */
- private Point location = new Point( 0,
- 0 );
- /** Size of this vertex. */
- private final static Dimension size = new Dimension( 16,
- 16 );
- /** List of outgoing Connections. */
- private List sourceConnections = new ArrayList();
- /** List of incoming Connections. */
- private List targetConnections = new ArrayList();
-
- /**
- * HTML formatted representation of this node
- *
- * @return #getHtml
- */
- abstract public String getHtml();
-
- /**
- * Color used for filling vertex figure
- *
- * @return color
- */
- abstract public Color getFillColor();
-
- /**
- * Add an incoming or outgoing connection to this vertex.
- * @param conn a non-null connection instance
- * @throws IllegalArgumentException if the connection is null or has not distinct endpoints
- */
- public void addConnection(Connection conn) {
- if ( conn == null || conn.getSource() == conn.getTarget() ) {
- throw new IllegalArgumentException();
- }
- if ( conn.getSource() == this ) {
- sourceConnections.add( conn );
- firePropertyChange( SOURCE_CONNECTIONS_PROP,
- null,
- conn );
- } else if ( conn.getTarget() == this ) {
- targetConnections.add( conn );
- firePropertyChange( TARGET_CONNECTIONS_PROP,
- null,
- conn );
- }
- }
-
- /**
- * Return the Location of this vertex.
- *
- * @return a non-null copy of location instance
- */
- public Point getLocation() {
- return location.getCopy();
- }
-
- /**
- * Returns an array of IPropertyDescriptors for this vertex.
- *
- */
- public IPropertyDescriptor[] getPropertyDescriptors() {
- return descriptors;
- }
-
- /**
- * Return the property value for the given propertyId, or null.
- */
- public Object getPropertyValue(Object propertyId) {
- if ( XPOS_PROP.equals( propertyId ) ) {
- return Integer.toString( location.x );
- }
- if ( YPOS_PROP.equals( propertyId ) ) {
- return Integer.toString( location.y );
- }
- if ( HEIGHT_PROP.equals( propertyId ) ) {
- return Integer.toString( size.height );
- }
- if ( WIDTH_PROP.equals( propertyId ) ) {
- return Integer.toString( size.width );
- }
- return null;
- }
-
- /**
- * Return the Size of this vertex.
- * @return a non-null copy of Dimension instance
- */
- public Dimension getSize() {
- return size.getCopy();
- }
-
- /**
- * Return a List of outgoing Connections.
- */
- public List getSourceConnections() {
- return new ArrayList( sourceConnections );
- }
-
- /**
- * Return a List of incoming Connections.
- */
- public List getTargetConnections() {
- return new ArrayList( targetConnections );
- }
-
- /**
- * Remove an incoming or outgoing connection from this vertex.
- *
- * @param conn a non-null connection instance
- * @throws IllegalArgumentException if the parameter is null
- */
- public void removeConnection(Connection conn) {
- if ( conn == null ) {
- throw new IllegalArgumentException();
- }
- if ( conn.getSource() == this ) {
- sourceConnections.remove( conn );
- firePropertyChange( SOURCE_CONNECTIONS_PROP,
- null,
- conn );
- } else if ( conn.getTarget() == this ) {
- targetConnections.remove( conn );
- firePropertyChange( TARGET_CONNECTIONS_PROP,
- null,
- conn );
- }
- }
-
- /**
- * Set the Location of this vertex.
- * @param newLocation a non-null Point instance
- * @throws IllegalArgumentException if the parameter is null
- */
- public void setLocation(Point newLocation) {
- if ( newLocation == null ) {
- throw new IllegalArgumentException();
- }
- location.setLocation( newLocation );
- firePropertyChange( LOCATION_PROP,
- null,
- location );
- }
-
- /**
- * Set the property value for the given property id.
- */
- public void setPropertyValue(Object propertyId,
- Object value) {
- if ( XPOS_PROP.equals( propertyId ) ) {
- int x = Integer.parseInt( (String) value );
- setLocation( new Point( x,
- location.y ) );
- } else if ( YPOS_PROP.equals( propertyId ) ) {
- int y = Integer.parseInt( (String) value );
- setLocation( new Point( location.x,
- y ) );
- } else if ( HEIGHT_PROP.equals( propertyId ) ) {
- int height = Integer.parseInt( (String) value );
- setSize( new Dimension( size.width,
- height ) );
- } else if ( WIDTH_PROP.equals( propertyId ) ) {
- int width = Integer.parseInt( (String) value );
- setSize( new Dimension( width,
- size.height ) );
- }
- }
-
- /**
- * Set the Size of this vertex.
- * Will not modify the size if newSize is null.
- * @param newSize a non-null Dimension instance or null
- */
- public void setSize(Dimension newSize) {
- if ( newSize != null ) {
- size.setSize( newSize );
- firePropertyChange( SIZE_PROP,
- null,
- size );
- }
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- return VERTEX_NAME + hashCode();
- }
-
- /**
- * Color used for borders
- *
- * @return draw color
- */
- public Color getDrawColor() {
- return ColorConstants.black;
- }
-
- /**
- * Constructs constraints string
- *
- * @param constraints array of constraints
- * @return html-formatted constraints representation
- */
- public static String dumpConstraints(final FieldConstraint[] constraints) {
- if ( constraints == null ) {
- return null;
- }
- final StringBuffer buffer = new StringBuffer();
- for ( int i = 0, length = constraints.length; i < length; i++ ) {
- buffer.append( constraints[i].toString() + "<br>" );
- }
- return buffer.toString();
- }
-
-}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/GraphicalVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/GraphicalVertex.java)
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/GraphicalVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/GraphicalVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -0,0 +1,287 @@
+package org.drools.ide.editors.rete.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.drools.spi.Constraint;
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.TextPropertyDescriptor;
+
+/**
+ * Visual vertex representation for ReteGraph.
+ *
+ * Base impl for all rete vertices.
+ *
+ * Can be connected with another BaseVertex with a Connector.
+ *
+ * @author Ahti Kitsik
+ *
+ */
+abstract public class GraphicalVertex extends ModelElement {
+
+ private static final String VERTEX_NAME = "BaseVertex ";
+
+ private static final String WIDTH = "Width";
+
+ private static final String HEIGHT = "Height";
+
+ private static IPropertyDescriptor[] descriptors;
+
+ /** ID for the Height property value (used for by the corresponding property descriptor). */
+ private static final String HEIGHT_PROP = VERTEX_NAME + "." + HEIGHT;
+
+ /** ID for the Width property value (used for by the corresponding property descriptor). */
+ private static final String WIDTH_PROP = VERTEX_NAME + "." + WIDTH;
+
+ /** Property ID to use when the location of this shape is modified. */
+ public static final String LOCATION_PROP = VERTEX_NAME + ".Location";
+
+ /** Property ID to use then the size of this shape is modified. */
+ public static final String SIZE_PROP = VERTEX_NAME + ".Size";
+
+ /** Property ID to use when the list of outgoing connections is modified. */
+ public static final String SOURCE_CONNECTIONS_PROP = VERTEX_NAME + ".SourceConn";
+
+ /** Property ID to use when the list of incoming connections is modified. */
+ public static final String TARGET_CONNECTIONS_PROP = VERTEX_NAME + ".TargetConn";
+
+ /** ID for the X property value (used for by the corresponding property descriptor). */
+ private static final String XPOS_PROP = VERTEX_NAME + ".xPos";
+
+ /** ID for the Y property value (used for by the corresponding property descriptor). */
+ private static final String YPOS_PROP = VERTEX_NAME + ".yPos";
+
+ /*
+ * Initializes the property descriptors array.
+ * @see #getPropertyDescriptors()
+ * @see #getPropertyValue(Object)
+ * @see #setPropertyValue(Object, Object)
+ */
+ static {
+ descriptors = new IPropertyDescriptor[]{new TextPropertyDescriptor( XPOS_PROP,
+ "X" ), // id and description pair
+ new TextPropertyDescriptor( YPOS_PROP,
+ "Y" ), new TextPropertyDescriptor( WIDTH_PROP,
+ WIDTH ), new TextPropertyDescriptor( HEIGHT_PROP,
+ HEIGHT ),};
+ } // static
+
+ /** Location of this vertex. */
+ private Point location = new Point( 0,
+ 0 );
+ /** Size of this vertex. */
+ private final static Dimension size = new Dimension( 16,
+ 16 );
+ /** List of outgoing Connections. */
+ private List sourceConnections = new ArrayList();
+ /** List of incoming Connections. */
+ private List targetConnections = new ArrayList();
+
+ /**
+ * HTML formatted representation of this node
+ *
+ * @return #getHtml
+ */
+ abstract public String getHtml();
+
+ /**
+ * Color used for filling vertex figure
+ *
+ * @return color
+ */
+ abstract public Color getFillColor();
+
+ /**
+ * Add an incoming or outgoing connection to this vertex.
+ * @param conn a non-null connection instance
+ * @throws IllegalArgumentException if the connection is null or has not distinct endpoints
+ */
+ public void addConnection(Connection conn) {
+ if ( conn == null || conn.getSource() == conn.getTarget() ) {
+ throw new IllegalArgumentException();
+ }
+ if ( conn.getSource() == this ) {
+ sourceConnections.add( conn );
+ firePropertyChange( SOURCE_CONNECTIONS_PROP,
+ null,
+ conn );
+ } else if ( conn.getTarget() == this ) {
+ targetConnections.add( conn );
+ firePropertyChange( TARGET_CONNECTIONS_PROP,
+ null,
+ conn );
+ }
+ }
+
+ /**
+ * Return the Location of this vertex.
+ *
+ * @return a non-null copy of location instance
+ */
+ public Point getLocation() {
+ return location.getCopy();
+ }
+
+ /**
+ * Returns an array of IPropertyDescriptors for this vertex.
+ *
+ */
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ return descriptors;
+ }
+
+ /**
+ * Return the property value for the given propertyId, or null.
+ */
+ public Object getPropertyValue(Object propertyId) {
+ if ( XPOS_PROP.equals( propertyId ) ) {
+ return Integer.toString( location.x );
+ }
+ if ( YPOS_PROP.equals( propertyId ) ) {
+ return Integer.toString( location.y );
+ }
+ if ( HEIGHT_PROP.equals( propertyId ) ) {
+ return Integer.toString( size.height );
+ }
+ if ( WIDTH_PROP.equals( propertyId ) ) {
+ return Integer.toString( size.width );
+ }
+ return null;
+ }
+
+ /**
+ * Return the Size of this vertex.
+ * @return a non-null copy of Dimension instance
+ */
+ public Dimension getSize() {
+ return size.getCopy();
+ }
+
+ /**
+ * Return a List of outgoing Connections.
+ */
+ public List getSourceConnections() {
+ return new ArrayList( sourceConnections );
+ }
+
+ /**
+ * Return a List of incoming Connections.
+ */
+ public List getTargetConnections() {
+ return new ArrayList( targetConnections );
+ }
+
+ /**
+ * Remove an incoming or outgoing connection from this vertex.
+ *
+ * @param conn a non-null connection instance
+ * @throws IllegalArgumentException if the parameter is null
+ */
+ public void removeConnection(Connection conn) {
+ if ( conn == null ) {
+ throw new IllegalArgumentException();
+ }
+ if ( conn.getSource() == this ) {
+ sourceConnections.remove( conn );
+ firePropertyChange( SOURCE_CONNECTIONS_PROP,
+ null,
+ conn );
+ } else if ( conn.getTarget() == this ) {
+ targetConnections.remove( conn );
+ firePropertyChange( TARGET_CONNECTIONS_PROP,
+ null,
+ conn );
+ }
+ }
+
+ /**
+ * Set the Location of this vertex.
+ * @param newLocation a non-null Point instance
+ * @throws IllegalArgumentException if the parameter is null
+ */
+ public void setLocation(Point newLocation) {
+ if ( newLocation == null ) {
+ throw new IllegalArgumentException();
+ }
+ location.setLocation( newLocation );
+ firePropertyChange( LOCATION_PROP,
+ null,
+ location );
+ }
+
+ /**
+ * Set the property value for the given property id.
+ */
+ public void setPropertyValue(Object propertyId,
+ Object value) {
+ if ( XPOS_PROP.equals( propertyId ) ) {
+ int x = Integer.parseInt( (String) value );
+ setLocation( new Point( x,
+ location.y ) );
+ } else if ( YPOS_PROP.equals( propertyId ) ) {
+ int y = Integer.parseInt( (String) value );
+ setLocation( new Point( location.x,
+ y ) );
+ } else if ( HEIGHT_PROP.equals( propertyId ) ) {
+ int height = Integer.parseInt( (String) value );
+ setSize( new Dimension( size.width,
+ height ) );
+ } else if ( WIDTH_PROP.equals( propertyId ) ) {
+ int width = Integer.parseInt( (String) value );
+ setSize( new Dimension( width,
+ size.height ) );
+ }
+ }
+
+ /**
+ * Set the Size of this vertex.
+ * Will not modify the size if newSize is null.
+ * @param newSize a non-null Dimension instance or null
+ */
+ public void setSize(Dimension newSize) {
+ if ( newSize != null ) {
+ size.setSize( newSize );
+ firePropertyChange( SIZE_PROP,
+ null,
+ size );
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ public String toString() {
+ return VERTEX_NAME + hashCode();
+ }
+
+ /**
+ * Color used for borders
+ *
+ * @return draw color
+ */
+ public Color getDrawColor() {
+ return ColorConstants.black;
+ }
+
+ /**
+ * Constructs constraints string
+ *
+ * @param constraints array of constraints
+ * @return html-formatted constraints representation
+ */
+ public static String dumpConstraints(final Constraint[] constraints) {
+ if ( constraints == null ) {
+ return null;
+ }
+ final StringBuffer buffer = new StringBuffer();
+ for ( int i = 0, length = constraints.length; i < length; i++ ) {
+ buffer.append( constraints[i].toString() + "<br>" );
+ }
+ return buffer.toString();
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ModelElement.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ModelElement.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ModelElement.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,55 +0,0 @@
-package org.drools.ide.editors.rete.model;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-/**
- * Abstract prototype of a model element.
- */
-public abstract class ModelElement {
-
- /** Delegate used to implemenent property-change-support. */
- private transient PropertyChangeSupport pcsDelegate = new PropertyChangeSupport( this );
-
- /**
- * Attach a non-null PropertyChangeListener to this object.
- *
- * @param l a non-null PropertyChangeListener instance
- * @throws IllegalArgumentException if the parameter is null
- */
- public synchronized void addPropertyChangeListener(PropertyChangeListener l) {
- if ( l == null ) {
- throw new IllegalArgumentException();
- }
- pcsDelegate.addPropertyChangeListener( l );
- }
-
- /**
- * Report a property change to registered listeners (for example edit parts).
- *
- * @param property the programmatic name of the property that changed
- * @param oldValue the old value of this property
- * @param newValue the new value of this property
- */
- protected void firePropertyChange(String property,
- Object oldValue,
- Object newValue) {
- if ( pcsDelegate.hasListeners( property ) ) {
- pcsDelegate.firePropertyChange( property,
- oldValue,
- newValue );
- }
- }
-
- /**
- * Remove a PropertyChangeListener from this component.
- *
- * @param l a PropertyChangeListener instance
- */
- public synchronized void removePropertyChangeListener(PropertyChangeListener l) {
- if ( l != null ) {
- pcsDelegate.removePropertyChangeListener( l );
- }
- }
-
-}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ModelElement.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ModelElement.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ReteGraph.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ReteGraph.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ReteGraph.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,79 +0,0 @@
-package org.drools.ide.editors.rete.model;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.drools.reteoo.BaseVertex;
-
-/**
- * Rete graph containing a set of vertices that form the graph itself.
- */
-public class ReteGraph extends ModelElement {
-
- /** Property ID to use when a child is added to this diagram. */
- public static final String PROP_CHILD_ADDED = "ReteGraph.ChildAdded";
-
- /** Property ID to use when a child is removed from this diagram. */
- public static final String PROP_CHILD_REMOVED = "ReteGraph.ChildRemoved";
-
- private List vertices = new ArrayList();
-
- /**
- * Add new BaseVertex to the graph
- *
- * @param vertex
- *
- * @return true, if vertex was added, false otherwise
- */
- public boolean addChild(BaseVertex vertex) {
- if ( vertex != null && vertices.add( vertex ) ) {
- firePropertyChange( PROP_CHILD_ADDED,
- null,
- vertex );
- return true;
- }
- return false;
- }
-
- /**
- * Return all Vertices in this graph
- */
- public List getChildren() {
- return vertices;
- }
-
- /**
- * Remove a vertex from this graph
- *
- * @param vertex vertex to be removed
- * @return true, if the vertex removal succeeded, false otherwise
- */
- public boolean removeChild(BaseVertex vertex) {
- if ( vertex != null && vertices.remove( vertex ) ) {
- firePropertyChange( PROP_CHILD_REMOVED,
- null,
- vertex );
- return true;
- }
- return false;
- }
-
- /**
- * Removes all vertices from graph.
- */
- public void removeAll() {
- while ( vertices.size() > 0 ) {
- removeChild( ((BaseVertex) vertices.get( 0 )) );
- }
- }
-
- public void addAll(List children) {
- final Iterator iter = children.iterator();
- while ( iter.hasNext() ) {
- BaseVertex vertex = (BaseVertex) iter.next();
- addChild( vertex );
- }
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ReteGraph.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/ReteGraph.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,404 +0,0 @@
-package org.drools.ide.editors.rete.model;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.drools.reteoo.AlphaNodeVertex;
-import org.drools.reteoo.BaseVertex;
-import org.drools.reteoo.EvalConditionNodeVertex;
-import org.drools.reteoo.JoinNodeVertex;
-import org.drools.reteoo.LeftInputAdapterNodeVertex;
-import org.drools.reteoo.NotNodeVertex;
-import org.drools.reteoo.ObjectTypeNodeVertex;
-import org.drools.reteoo.ReteVertex;
-import org.drools.reteoo.RightInputAdapterNodeVertex;
-import org.drools.reteoo.TerminalNodeVertex;
-import org.drools.spi.FieldConstraint;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-/**
- * Providing IPropertySource for property sheets that show
- * rete graph vertex properties.
- *
- */
-public class VertexPropertySource
- implements
- IPropertySource {
-
- private static final String VERTEX_TERMINAL = "Terminal BaseVertex";
-
- private static final String VERTEX_EVAL_CONDITION = "Eval Condition BaseVertex";
-
- private static final String VERTEX_NOT = "Not BaseVertex";
-
- private static final String VERTEX_JOIN = "Join BaseVertex";
-
- private static final String VERTEX_RIGHT_INPUT_ADAPTER = "Right Input Adapter BaseVertex";
-
- private static final String VERTEX_LEFT_INPUT_ADAPTER = "Left Input Adapter BaseVertex";
-
- private static final String VERTEX_ALPHA = "Alpha BaseVertex";
-
- private static final String VERTEX_OBJECT_TYPE = "Object Type BaseVertex";
-
- private static final String VERTEX_RETE = "Rete BaseVertex";
-
- private static final String CONSTRAINT_CAP = "Constraint";
-
- private static final String CONSTRAINT = "constraint";
-
- public String ID_ROOT = "vertex"; //$NON-NLS-1$
-
- public String ID_ID = "id"; //$NON-NLS-1$
- public String ID_HTML = "html"; //$NON-NLS-1$
-
- private IPropertyDescriptor[] descriptors;
-
- private final IPropertyDescriptor PROP_NAME = new PropertyDescriptor( "name",
- "Name" );
- private final IPropertyDescriptor PROP_ID = new PropertyDescriptor( "id",
- "ID" );
- private final IPropertyDescriptor PROP_RULE = new PropertyDescriptor( "rule",
- "Rule" );
-
- // Alpha-specific
- private final IPropertyDescriptor PROP_ALPHA_FIELD_NAME = new PropertyDescriptor( "fieldName",
- "Field Name" );
- private final IPropertyDescriptor PROP_ALPHA_EVALUATOR = new PropertyDescriptor( "evaluator",
- "Evaluator" );
- private final IPropertyDescriptor PROP_ALPHA_VALUE = new PropertyDescriptor( "value",
- "Value" );
-
- // ObjectType specific
- private final IPropertyDescriptor PROP_OBJ_TYPE = new PropertyDescriptor( "objectType",
- "Object Type" );
-
- private final static String CAT_GENERAL = "General";
- private final static String CAT_OTHER = "Other";
-
- protected BaseVertex vertex = null;
-
- // Map<String,NodeValue>
- private Map values = new HashMap();
-
- /**
- * Constructor initializing properties from <code>vertex</code>
- *
- * @param vertex source vertex for this property source
- */
- public VertexPropertySource(BaseVertex vertex) {
- this.vertex = vertex;
-
- initProperties( vertex );
- }
-
- final private void initProperties(BaseVertex vertex) {
-
- List descriptorList = new ArrayList();
-
- if ( vertex instanceof TerminalNodeVertex ) {
- initTerminalNodeProperties( (TerminalNodeVertex) vertex,
- descriptorList,
- values );
- } else if ( vertex instanceof EvalConditionNodeVertex ) {
- initEvalConditionNodeProperties( (EvalConditionNodeVertex) vertex,
- descriptorList,
- values );
- } else if ( vertex instanceof NotNodeVertex ) {
- initNotNodeProperties( (NotNodeVertex) vertex,
- descriptorList,
- values );
- } else if ( vertex instanceof JoinNodeVertex ) {
- initJoinNodeProperties( (JoinNodeVertex) vertex,
- descriptorList,
- values );
- } else if ( vertex instanceof RightInputAdapterNodeVertex ) {
- initRightInputAdapterNodeProperties( descriptorList,
- values );
- } else if ( vertex instanceof LeftInputAdapterNodeVertex ) {
- initLeftInputAdapterNodeProperties( (LeftInputAdapterNodeVertex) vertex,
- descriptorList,
- values );
- } else if ( vertex instanceof AlphaNodeVertex ) {
- initAlphaNodeProperties( (AlphaNodeVertex) vertex,
- descriptorList,
- values );
- } else if ( vertex instanceof ObjectTypeNodeVertex ) {
- initObjectTypeNodeProperties( (ObjectTypeNodeVertex) vertex,
- descriptorList,
- values );
- } else if ( vertex instanceof ReteVertex ) {
- initReteNodeProperties( (ReteVertex) vertex,
- descriptorList,
- values );
- }
-
- descriptors = (IPropertyDescriptor[]) descriptorList.toArray( new IPropertyDescriptor[0] );
- }
-
- private void initReteNodeProperties(ReteVertex vertex,
- List descriptorList,
- Map valueMap) {
- addProperty( PROP_NAME,
- VERTEX_RETE,
- descriptorList,
- valueMap );
- addProperty( PROP_ID,
- Integer.toString( vertex.getId() ),
- descriptorList,
- valueMap );
- }
-
- private void initObjectTypeNodeProperties(ObjectTypeNodeVertex vertex,
- List descriptorList,
- Map valueMap) {
- addProperty( PROP_NAME,
- VERTEX_OBJECT_TYPE,
- descriptorList,
- valueMap );
- addProperty( PROP_OBJ_TYPE,
- vertex.getObjectType(),
- descriptorList,
- valueMap );
-
- }
-
- private void initAlphaNodeProperties(AlphaNodeVertex vertex,
- List descriptorList,
- Map valueMap) {
- addProperty( PROP_NAME,
- VERTEX_ALPHA,
- descriptorList,
- valueMap );
- addProperty( PROP_ALPHA_FIELD_NAME,
- vertex.getFieldName(),
- descriptorList,
- valueMap );
- addProperty( PROP_ALPHA_EVALUATOR,
- vertex.getEvaluator(),
- descriptorList,
- valueMap );
- addProperty( PROP_ALPHA_VALUE,
- vertex.getValue(),
- descriptorList,
- valueMap );
-
- FieldConstraint constraint = vertex.getConstraint();
- if ( constraint == null ) {
- return;
- }
- IPropertyDescriptor prop = new PropertyDescriptor( CONSTRAINT,
- CONSTRAINT_CAP );
- addProperty( prop,
- constraint.toString(),
- descriptorList,
- valueMap );
-
- }
-
- private void initLeftInputAdapterNodeProperties(LeftInputAdapterNodeVertex vertex,
- List descriptorList,
- Map valueMap) {
- addProperty( PROP_NAME,
- VERTEX_LEFT_INPUT_ADAPTER,
- descriptorList,
- valueMap );
-
- FieldConstraint[] constraints = vertex.getConstraints();
- if ( constraints == null ) {
- return;
- }
- for ( int i = 0, length = constraints.length; i < length; i++ ) {
- PropertyDescriptor prop = new PropertyDescriptor( CONSTRAINT + (i + 1),
- CONSTRAINT_CAP + " " + (i + 1) );
- addOther( prop,
- constraints[i].toString(),
- descriptorList,
- valueMap );
- }
-
- }
-
- private void initRightInputAdapterNodeProperties(List descriptorList,
- Map valueMap) {
- addProperty( PROP_NAME,
- VERTEX_RIGHT_INPUT_ADAPTER,
- descriptorList,
- valueMap );
- }
-
- private void initJoinNodeProperties(JoinNodeVertex vertex,
- List descriptorList,
- Map valueMap) {
-
- addProperty( PROP_NAME,
- VERTEX_JOIN,
- descriptorList,
- valueMap );
- addProperty( PROP_ID,
- Integer.toString( vertex.getId() ),
- descriptorList,
- valueMap );
-
- FieldConstraint[] constraints = vertex.getConstraints();
-
- if ( constraints == null ) {
- return;
- }
-
- for ( int i = 0, length = constraints.length; i < length; i++ ) {
- PropertyDescriptor prop = new PropertyDescriptor( CONSTRAINT + (i + 1),
- CONSTRAINT_CAP + " " + (i + 1) );
- addOther( prop,
- constraints[i].toString(),
- descriptorList,
- valueMap );
- }
-
- }
-
- private void initNotNodeProperties(NotNodeVertex vertex,
- List descriptorList,
- Map valueMap) {
- addProperty( PROP_NAME,
- VERTEX_NOT,
- descriptorList,
- valueMap );
- addProperty( PROP_ID,
- Integer.toString( vertex.getId() ),
- descriptorList,
- valueMap );
- }
-
- private void initEvalConditionNodeProperties(EvalConditionNodeVertex vertex,
- List descriptorList,
- Map valueMap) {
- addProperty( PROP_NAME,
- VERTEX_EVAL_CONDITION,
- descriptorList,
- valueMap );
- addProperty( PROP_ID,
- Integer.toString( vertex.getId() ),
- descriptorList,
- valueMap );
- }
-
- private void initTerminalNodeProperties(TerminalNodeVertex node,
- List descriptorList,
- Map valueMap) {
-
- addProperty( PROP_NAME,
- VERTEX_TERMINAL,
- descriptorList,
- valueMap );
- addProperty( PROP_ID,
- Integer.toString( node.getId() ),
- descriptorList,
- valueMap );
- addProperty( PROP_RULE,
- node.getRuleName(),
- descriptorList,
- valueMap );
-
- }
-
- private void addProperty(IPropertyDescriptor field,
- String value,
- List descriptorList,
- Map valueMap) {
- descriptorList.add( field );
- valueMap.put( field.getId().toString(),
- new NodeValue( CAT_GENERAL,
- value ) );
- if ( field instanceof PropertyDescriptor ) {
- ((PropertyDescriptor) field).setAlwaysIncompatible( true );
- ((PropertyDescriptor) field).setCategory( CAT_GENERAL );
- }
-
- }
-
- private void addOther(IPropertyDescriptor field,
- String value,
- List descriptorList,
- Map valueMap) {
- descriptorList.add( field );
- valueMap.put( field.getId().toString(),
- new NodeValue( CAT_OTHER,
- value ) );
-
- if ( field instanceof PropertyDescriptor ) {
- ((PropertyDescriptor) field).setAlwaysIncompatible( true );
- ((PropertyDescriptor) field).setCategory( CAT_OTHER );
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
- */
- public Object getEditableValue() {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
- */
- public Object getPropertyValue(Object propName) {
- return getPropertyValue( (String) propName );
- }
-
- /**
- * Property value.
- *
- * @param propName
- * @return
- */
- public Object getPropertyValue(String propName) {
- return ((NodeValue) (values.get( propName ))).value;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
- */
- public void setPropertyValue(Object propName,
- Object value) {
- setPropertyValue( propName,
- value );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
- */
- public IPropertyDescriptor[] getPropertyDescriptors() {
- return descriptors;
- }
-
- /**
- * Doing nothing as resetting properties from property sheet is not possible.
- */
- public void resetPropertyValue(Object propName) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
- */
- public boolean isPropertySet(Object propName) {
- return values.containsKey( propName );
- }
-
- private class NodeValue {
- final String category;
- final String value;
-
- NodeValue(String category,
- String value) {
- this.category = category;
- this.value = value;
- }
- }
-
-}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java)
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -0,0 +1,391 @@
+package org.drools.ide.editors.rete.model;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.reteoo.AlphaNodeVertex;
+import org.drools.reteoo.BaseVertex;
+import org.drools.reteoo.EvalConditionNodeVertex;
+import org.drools.reteoo.JoinNodeVertex;
+import org.drools.reteoo.LeftInputAdapterNodeVertex;
+import org.drools.reteoo.NotNodeVertex;
+import org.drools.reteoo.ObjectTypeNodeVertex;
+import org.drools.reteoo.ReteVertex;
+import org.drools.reteoo.RightInputAdapterNodeVertex;
+import org.drools.reteoo.TerminalNodeVertex;
+import org.drools.spi.Constraint;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.eclipse.ui.views.properties.PropertyDescriptor;
+
+/**
+ * Providing IPropertySource for property sheets that show
+ * rete graph vertex properties.
+ *
+ */
+public class VertexPropertySource
+ implements
+ IPropertySource {
+
+ private static final String VERTEX_TERMINAL = "Terminal BaseVertex";
+
+ private static final String VERTEX_EVAL_CONDITION = "Eval Condition BaseVertex";
+
+ private static final String VERTEX_NOT = "Not BaseVertex";
+
+ private static final String VERTEX_JOIN = "Join BaseVertex";
+
+ private static final String VERTEX_RIGHT_INPUT_ADAPTER = "Right Input Adapter BaseVertex";
+
+ private static final String VERTEX_LEFT_INPUT_ADAPTER = "Left Input Adapter BaseVertex";
+
+ private static final String VERTEX_ALPHA = "Alpha BaseVertex";
+
+ private static final String VERTEX_OBJECT_TYPE = "Object Type BaseVertex";
+
+ private static final String VERTEX_RETE = "Rete BaseVertex";
+
+ private static final String CONSTRAINT_CAP = "Constraint";
+
+ private static final String CONSTRAINT = "constraint";
+
+ public String ID_ROOT = "vertex"; //$NON-NLS-1$
+
+ public String ID_ID = "id"; //$NON-NLS-1$
+ public String ID_HTML = "html"; //$NON-NLS-1$
+
+ private IPropertyDescriptor[] descriptors;
+
+ private final IPropertyDescriptor PROP_NAME = new PropertyDescriptor( "name",
+ "Name" );
+ private final IPropertyDescriptor PROP_ID = new PropertyDescriptor( "id",
+ "ID" );
+ private final IPropertyDescriptor PROP_RULE = new PropertyDescriptor( "rule",
+ "Rule" );
+
+ // Alpha-specific
+ private final IPropertyDescriptor PROP_ALPHA_FIELD_NAME = new PropertyDescriptor( "fieldName",
+ "Field Name" );
+ private final IPropertyDescriptor PROP_ALPHA_EVALUATOR = new PropertyDescriptor( "evaluator",
+ "Evaluator" );
+ private final IPropertyDescriptor PROP_ALPHA_VALUE = new PropertyDescriptor( "value",
+ "Value" );
+
+ // ObjectType specific
+ private final IPropertyDescriptor PROP_OBJ_TYPE = new PropertyDescriptor( "objectType",
+ "Object Type" );
+
+ private final static String CAT_GENERAL = "General";
+ private final static String CAT_OTHER = "Other";
+
+ protected BaseVertex vertex = null;
+
+ // Map<String,NodeValue>
+ private Map values = new HashMap();
+
+ /**
+ * Constructor initializing properties from <code>vertex</code>
+ *
+ * @param vertex source vertex for this property source
+ */
+ public VertexPropertySource(BaseVertex vertex) {
+ this.vertex = vertex;
+
+ initProperties( vertex );
+ }
+
+ final private void initProperties(BaseVertex vertex) {
+
+ List descriptorList = new ArrayList();
+
+ if ( vertex instanceof TerminalNodeVertex ) {
+ initTerminalNodeProperties( (TerminalNodeVertex) vertex,
+ descriptorList,
+ values );
+ } else if ( vertex instanceof EvalConditionNodeVertex ) {
+ initEvalConditionNodeProperties( (EvalConditionNodeVertex) vertex,
+ descriptorList,
+ values );
+ } else if ( vertex instanceof NotNodeVertex ) {
+ initNotNodeProperties( (NotNodeVertex) vertex,
+ descriptorList,
+ values );
+ } else if ( vertex instanceof JoinNodeVertex ) {
+ initJoinNodeProperties( (JoinNodeVertex) vertex,
+ descriptorList,
+ values );
+ } else if ( vertex instanceof RightInputAdapterNodeVertex ) {
+ initRightInputAdapterNodeProperties( descriptorList,
+ values );
+ } else if ( vertex instanceof LeftInputAdapterNodeVertex ) {
+ initLeftInputAdapterNodeProperties( (LeftInputAdapterNodeVertex) vertex,
+ descriptorList,
+ values );
+ } else if ( vertex instanceof AlphaNodeVertex ) {
+ initAlphaNodeProperties( (AlphaNodeVertex) vertex,
+ descriptorList,
+ values );
+ } else if ( vertex instanceof ObjectTypeNodeVertex ) {
+ initObjectTypeNodeProperties( (ObjectTypeNodeVertex) vertex,
+ descriptorList,
+ values );
+ } else if ( vertex instanceof ReteVertex ) {
+ initReteNodeProperties( (ReteVertex) vertex,
+ descriptorList,
+ values );
+ }
+
+ descriptors = (IPropertyDescriptor[]) descriptorList.toArray( new IPropertyDescriptor[0] );
+ }
+
+ private void initReteNodeProperties(ReteVertex vertex,
+ List descriptorList,
+ Map valueMap) {
+ addProperty( PROP_NAME,
+ VERTEX_RETE,
+ descriptorList,
+ valueMap );
+ addProperty( PROP_ID,
+ Integer.toString( vertex.getId() ),
+ descriptorList,
+ valueMap );
+ }
+
+ private void initObjectTypeNodeProperties(ObjectTypeNodeVertex vertex,
+ List descriptorList,
+ Map valueMap) {
+ addProperty( PROP_NAME,
+ VERTEX_OBJECT_TYPE,
+ descriptorList,
+ valueMap );
+ addProperty( PROP_OBJ_TYPE,
+ vertex.getObjectType(),
+ descriptorList,
+ valueMap );
+
+ }
+
+ private void initAlphaNodeProperties(AlphaNodeVertex vertex,
+ List descriptorList,
+ Map valueMap) {
+ addProperty( PROP_NAME,
+ VERTEX_ALPHA,
+ descriptorList,
+ valueMap );
+ addProperty( PROP_ALPHA_FIELD_NAME,
+ vertex.getFieldName(),
+ descriptorList,
+ valueMap );
+ addProperty( PROP_ALPHA_EVALUATOR,
+ vertex.getEvaluator(),
+ descriptorList,
+ valueMap );
+ addProperty( PROP_ALPHA_VALUE,
+ vertex.getValue(),
+ descriptorList,
+ valueMap );
+
+ Constraint constraint = vertex.getConstraint();
+ if ( constraint == null ) {
+ return;
+ }
+ IPropertyDescriptor prop = new PropertyDescriptor( CONSTRAINT,
+ CONSTRAINT_CAP );
+ addProperty( prop,
+ constraint.toString(),
+ descriptorList,
+ valueMap );
+
+ }
+
+ private void initLeftInputAdapterNodeProperties(LeftInputAdapterNodeVertex vertex,
+ List descriptorList,
+ Map valueMap) {
+ addProperty( PROP_NAME,
+ VERTEX_LEFT_INPUT_ADAPTER,
+ descriptorList,
+ valueMap );
+
+ }
+
+ private void initRightInputAdapterNodeProperties(List descriptorList,
+ Map valueMap) {
+ addProperty( PROP_NAME,
+ VERTEX_RIGHT_INPUT_ADAPTER,
+ descriptorList,
+ valueMap );
+ }
+
+ private void initJoinNodeProperties(JoinNodeVertex vertex,
+ List descriptorList,
+ Map valueMap) {
+
+ addProperty( PROP_NAME,
+ VERTEX_JOIN,
+ descriptorList,
+ valueMap );
+ addProperty( PROP_ID,
+ Integer.toString( vertex.getId() ),
+ descriptorList,
+ valueMap );
+
+ Constraint[] constraints = vertex.getConstraints();
+
+ if ( constraints == null ) {
+ return;
+ }
+
+ for ( int i = 0, length = constraints.length; i < length; i++ ) {
+ PropertyDescriptor prop = new PropertyDescriptor( CONSTRAINT + (i + 1),
+ CONSTRAINT_CAP + " " + (i + 1) );
+ addOther( prop,
+ constraints[i].toString(),
+ descriptorList,
+ valueMap );
+ }
+
+ }
+
+ private void initNotNodeProperties(NotNodeVertex vertex,
+ List descriptorList,
+ Map valueMap) {
+ addProperty( PROP_NAME,
+ VERTEX_NOT,
+ descriptorList,
+ valueMap );
+ addProperty( PROP_ID,
+ Integer.toString( vertex.getId() ),
+ descriptorList,
+ valueMap );
+ }
+
+ private void initEvalConditionNodeProperties(EvalConditionNodeVertex vertex,
+ List descriptorList,
+ Map valueMap) {
+ addProperty( PROP_NAME,
+ VERTEX_EVAL_CONDITION,
+ descriptorList,
+ valueMap );
+ addProperty( PROP_ID,
+ Integer.toString( vertex.getId() ),
+ descriptorList,
+ valueMap );
+ }
+
+ private void initTerminalNodeProperties(TerminalNodeVertex node,
+ List descriptorList,
+ Map valueMap) {
+
+ addProperty( PROP_NAME,
+ VERTEX_TERMINAL,
+ descriptorList,
+ valueMap );
+ addProperty( PROP_ID,
+ Integer.toString( node.getId() ),
+ descriptorList,
+ valueMap );
+ addProperty( PROP_RULE,
+ node.getRuleName(),
+ descriptorList,
+ valueMap );
+
+ }
+
+ private void addProperty(IPropertyDescriptor field,
+ String value,
+ List descriptorList,
+ Map valueMap) {
+ descriptorList.add( field );
+ valueMap.put( field.getId().toString(),
+ new NodeValue( CAT_GENERAL,
+ value ) );
+ if ( field instanceof PropertyDescriptor ) {
+ ((PropertyDescriptor) field).setAlwaysIncompatible( true );
+ ((PropertyDescriptor) field).setCategory( CAT_GENERAL );
+ }
+
+ }
+
+ private void addOther(IPropertyDescriptor field,
+ String value,
+ List descriptorList,
+ Map valueMap) {
+ descriptorList.add( field );
+ valueMap.put( field.getId().toString(),
+ new NodeValue( CAT_OTHER,
+ value ) );
+
+ if ( field instanceof PropertyDescriptor ) {
+ ((PropertyDescriptor) field).setAlwaysIncompatible( true );
+ ((PropertyDescriptor) field).setCategory( CAT_OTHER );
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
+ */
+ public Object getEditableValue() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
+ */
+ public Object getPropertyValue(Object propName) {
+ return getPropertyValue( (String) propName );
+ }
+
+ /**
+ * Property value.
+ *
+ * @param propName
+ * @return
+ */
+ public Object getPropertyValue(String propName) {
+ return ((NodeValue) (values.get( propName ))).value;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(java.lang.Object, java.lang.Object)
+ */
+ public void setPropertyValue(Object propName,
+ Object value) {
+ setPropertyValue( propName,
+ value );
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
+ */
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ return descriptors;
+ }
+
+ /**
+ * Doing nothing as resetting properties from property sheet is not possible.
+ */
+ public void resetPropertyValue(Object propName) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(java.lang.Object)
+ */
+ public boolean isPropertySet(Object propName) {
+ return values.containsKey( propName );
+ }
+
+ private class NodeValue {
+ final String category;
+ final String value;
+
+ NodeValue(String category,
+ String value) {
+ this.category = category;
+ this.value = value;
+ }
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/part)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/ConnectionEditPart.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/part/ConnectionEditPart.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/ConnectionEditPart.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,82 +0,0 @@
-/*
- * Copyright 2006 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.drools.ide.editors.rete.part;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import org.drools.ide.editors.rete.figure.ConnectionFigure;
-import org.drools.ide.editors.rete.model.ModelElement;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.PolylineConnection;
-import org.eclipse.draw2d.PolylineDecoration;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.editparts.AbstractConnectionEditPart;
-import org.eclipse.gef.editpolicies.ConnectionEndpointEditPolicy;
-
-/**
- * Edit part for Connection model elements.
- */
-class ConnectionEditPart extends AbstractConnectionEditPart
- implements
- PropertyChangeListener {
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#activate()
- */
- public void activate() {
- if ( !isActive() ) {
- super.activate();
- ((ModelElement) getModel()).addPropertyChangeListener( this );
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
- */
- protected void createEditPolicies() {
- installEditPolicy( EditPolicy.CONNECTION_ENDPOINTS_ROLE,
- new ConnectionEndpointEditPolicy() );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
- */
- protected IFigure createFigure() {
- PolylineConnection connection = new ConnectionFigure();
- PolylineDecoration decoration = new PolylineDecoration();
- connection.setTargetDecoration( decoration );
- return connection;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#deactivate()
- */
- public void deactivate() {
- if ( isActive() ) {
- super.deactivate();
- ((ModelElement) getModel()).removePropertyChangeListener( this );
- }
- }
-
- /* (non-Javadoc)
- * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent evt) {
- // Doing nothing
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/ConnectionEditPart.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/part/ConnectionEditPart.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/DiagramEditPart.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/part/DiagramEditPart.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/DiagramEditPart.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,154 +0,0 @@
-/*
- * Copyright 2006 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.drools.ide.editors.rete.part;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.List;
-
-import org.drools.ide.editors.rete.commands.NodeSetConstraintCommand;
-import org.drools.ide.editors.rete.model.ModelElement;
-import org.drools.ide.editors.rete.model.ReteGraph;
-import org.drools.reteoo.BaseVertex;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.FreeformLayer;
-import org.eclipse.draw2d.FreeformLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.NodeEditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.gef.editpolicies.RootComponentEditPolicy;
-import org.eclipse.gef.editpolicies.XYLayoutEditPolicy;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.requests.CreateRequest;
-
-/**
- * EditPart for ReteGraph
- *
- */
-public class DiagramEditPart extends AbstractGraphicalEditPart
- implements
- PropertyChangeListener {
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#activate()
- */
- public void activate() {
- if ( !isActive() ) {
- super.activate();
- ((ModelElement) getModel()).addPropertyChangeListener( this );
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
- */
- protected void createEditPolicies() {
- installEditPolicy( EditPolicy.COMPONENT_ROLE,
- new RootComponentEditPolicy() );
- installEditPolicy( EditPolicy.LAYOUT_ROLE,
- new NodesXYLayoutEditPolicy() );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
- */
- protected IFigure createFigure() {
- Figure f = new FreeformLayer();
- f.setBorder( new MarginBorder( 3 ) );
- f.setLayoutManager( new FreeformLayout() );
- return f;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#deactivate()
- */
- public void deactivate() {
- if ( isActive() ) {
- super.deactivate();
- ((ModelElement) getModel()).removePropertyChangeListener( this );
- }
- }
-
- private ReteGraph getCastedModel() {
- return (ReteGraph) getModel();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractEditPart#getModelChildren()
- */
- protected List getModelChildren() {
- return getCastedModel().getChildren(); // return a list of nodes
- }
-
- /* (non-Javadoc)
- * @see java.beans.PropertyChangeListener#propertyChange(PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent evt) {
- String prop = evt.getPropertyName();
- if ( ReteGraph.PROP_CHILD_ADDED.equals( prop ) || ReteGraph.PROP_CHILD_REMOVED.equals( prop ) ) {
- refreshChildren();
- }
- }
-
- private static class NodesXYLayoutEditPolicy extends XYLayoutEditPolicy {
-
- /* (non-Javadoc)
- * @see ConstrainedLayoutEditPolicy#createChangeConstraintCommand(ChangeBoundsRequest, EditPart, Object)
- */
- protected Command createChangeConstraintCommand(ChangeBoundsRequest request,
- EditPart child,
- Object constraint) {
- if ( child instanceof NodeEditPart && constraint instanceof Rectangle ) {
- // return a command that can move and/or resize a BaseVertex
- return new NodeSetConstraintCommand( (BaseVertex) child.getModel(),
- request,
- (Rectangle) constraint );
- }
- return super.createChangeConstraintCommand( request,
- child,
- constraint );
- }
-
- /* (non-Javadoc)
- * @see ConstrainedLayoutEditPolicy#createChangeConstraintCommand(EditPart, Object)
- */
- protected Command createChangeConstraintCommand(EditPart child,
- Object constraint) {
- return null;
- }
-
- /* (non-Javadoc)
- * @see LayoutEditPolicy#getCreateCommand(CreateRequest)
- */
- protected Command getCreateCommand(CreateRequest request) {
- return null;
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class key) {
- return super.getAdapter( key );
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/DiagramEditPart.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/part/DiagramEditPart.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPart.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPart.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPart.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,167 +0,0 @@
-package org.drools.ide.editors.rete.part;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.List;
-
-import org.drools.ide.editors.rete.figure.VertexFigure;
-import org.drools.ide.editors.rete.model.GraphicalVertex;
-import org.drools.ide.editors.rete.model.ModelElement;
-import org.drools.ide.editors.rete.model.VertexPropertySource;
-import org.drools.reteoo.BaseVertex;
-import org.eclipse.draw2d.ConnectionAnchor;
-import org.eclipse.draw2d.EllipseAnchor;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.ConnectionEditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.ui.views.properties.IPropertySource;
-
-/**
- * EditPart used for Vertices
- */
-class VertexEditPart extends AbstractGraphicalEditPart
- implements
- PropertyChangeListener,
- org.eclipse.gef.NodeEditPart {
-
- private IPropertySource propertySource;
-
- private ConnectionAnchor anchor;
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#activate()
- */
- public void activate() {
- if ( !isActive() ) {
- super.activate();
- ((ModelElement) getModel()).addPropertyChangeListener( this );
- propertySource = new VertexPropertySource( getCastedModel() );
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
- */
- protected void createEditPolicies() {
- }
-
- /*(non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
- */
- protected IFigure createFigure() {
- return new VertexFigure( getCastedModel().getFillColor(),
- getCastedModel().getDrawColor() );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#deactivate()
- */
- public void deactivate() {
- if ( isActive() ) {
- super.deactivate();
- ((ModelElement) getModel()).removePropertyChangeListener( this );
- propertySource = null;
- }
- }
-
- private BaseVertex getCastedModel() {
- return (BaseVertex) getModel();
- }
-
- private ConnectionAnchor getConnectionAnchor() {
- if ( anchor == null ) {
- if ( getModel() instanceof BaseVertex ) anchor = new EllipseAnchor( getFigure() );
- else
- // if Nodes gets extended the conditions above must be updated
- throw new IllegalArgumentException( "unexpected model" );
- }
- return anchor;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelSourceConnections()
- */
- protected List getModelSourceConnections() {
- return getCastedModel().getSourceConnections();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getModelTargetConnections()
- */
- protected List getModelTargetConnections() {
- return getCastedModel().getTargetConnections();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef.ConnectionEditPart)
- */
- public ConnectionAnchor getSourceConnectionAnchor(ConnectionEditPart connection) {
- return getConnectionAnchor();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.gef.NodeEditPart#getSourceConnectionAnchor(org.eclipse.gef.Request)
- */
- public ConnectionAnchor getSourceConnectionAnchor(Request request) {
- return getConnectionAnchor();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef.ConnectionEditPart)
- */
- public ConnectionAnchor getTargetConnectionAnchor(ConnectionEditPart connection) {
- return getConnectionAnchor();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.gef.NodeEditPart#getTargetConnectionAnchor(org.eclipse.gef.Request)
- */
- public ConnectionAnchor getTargetConnectionAnchor(Request request) {
- return getConnectionAnchor();
- }
-
- /* (non-Javadoc)
- * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent evt) {
- String prop = evt.getPropertyName();
- if ( GraphicalVertex.SIZE_PROP.equals( prop ) || GraphicalVertex.LOCATION_PROP.equals( prop ) ) {
- refreshVisuals();
- } else if ( GraphicalVertex.SOURCE_CONNECTIONS_PROP.equals( prop ) ) {
- refreshSourceConnections();
- } else if ( GraphicalVertex.TARGET_CONNECTIONS_PROP.equals( prop ) ) {
- refreshTargetConnections();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals()
- */
- protected void refreshVisuals() {
- Rectangle bounds = new Rectangle( getCastedModel().getLocation(),
- getCastedModel().getSize() );
- ((GraphicalEditPart) getParent()).setLayoutConstraint( this,
- getFigure(),
- bounds );
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class key) {
- if ( key == IPropertySource.class ) {
- return propertySource;
- }
- return super.getAdapter( key );
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPart.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPart.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPartFactory.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPartFactory.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPartFactory.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,50 +0,0 @@
-package org.drools.ide.editors.rete.part;
-
-import org.drools.ide.DroolsIDEPlugin;
-import org.drools.ide.editors.rete.model.Connection;
-import org.drools.ide.editors.rete.model.ReteGraph;
-import org.drools.reteoo.BaseVertex;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-
-/**
- * Factory mapping model elements to edit parts
- */
-public class VertexEditPartFactory
- implements
- EditPartFactory {
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.gef.EditPartFactory#createEditPart(org.eclipse.gef.EditPart, java.lang.Object)
- */
- public EditPart createEditPart(EditPart context,
- Object modelElement) {
- // get EditPart for model element
- EditPart part = getPartForElement( modelElement );
- // store model element in EditPart
- part.setModel( modelElement );
- return part;
- }
-
- /**
- * Maps object to EditPart.
- *
- * @throws RuntimeException if no match was found
- */
- private EditPart getPartForElement(Object modelElement) {
- if ( modelElement instanceof ReteGraph ) {
- return new DiagramEditPart();
- }
- if ( modelElement instanceof BaseVertex ) {
- return new VertexEditPart();
- }
- if ( modelElement instanceof Connection ) {
- return new ConnectionEditPart();
- }
- DroolsIDEPlugin.log( new Exception( "Can't create part for model element: " + ((modelElement != null) ? modelElement.getClass().getName() : "null") ) );
- return null;
-
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPartFactory.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/ide/editors/rete/part/VertexEditPartFactory.java)
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AlphaNodeVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/AlphaNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AlphaNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,96 +0,0 @@
-/**
- *
- */
-package org.drools.reteoo;
-
-import org.drools.base.ClassFieldExtractor;
-import org.drools.rule.LiteralConstraint;
-import org.drools.spi.FieldConstraint;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Wraps {@link AlphaNode} and adds visual extras like color information
- *
- */
-public class AlphaNodeVertex extends BaseVertex {
-
- private final AlphaNode node;
-
- private final String NODE_NAME = "AlphaNode";
-
- /**
- * Constructor
- *
- * @param node node to be wrapped
- */
- public AlphaNodeVertex(final AlphaNode node) {
- super();
- this.node = node;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getHtml()
- */
- public String getHtml() {
- final LiteralConstraint constraint = (LiteralConstraint) this.node.getConstraint();
- final ClassFieldExtractor extractor = (ClassFieldExtractor) constraint.getFieldExtractor();
- return NODE_NAME + "<BR/>field : " + extractor.getFieldName() + "<BR/>evaluator : " + constraint.getEvaluator() + "<BR/>value : " + constraint.getField();
- }
-
- /* (non-Javadoc)
- * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
- */
- public String toString() {
- return this.node.toString();
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
- */
- public Color getFillColor() {
- return ColorConstants.blue;
- }
-
- /**
- * Constraint has field extractor and this method is returning fieldName
- * it.
- *
- * @return field name
- */
- public String getFieldName() {
- LiteralConstraint constraint = (LiteralConstraint) this.node.getConstraint();
- ClassFieldExtractor extractor = (ClassFieldExtractor) constraint.getFieldExtractor();
- return extractor.getFieldName();
- }
-
- /**
- * Constraint's evaluator string
- *
- * @return evaluator string
- */
- public String getEvaluator() {
- LiteralConstraint constraint = (LiteralConstraint) this.node.getConstraint();
- return constraint.getEvaluator().toString();
- }
-
- /**
- * Constraint field string
- *
- * @return field string
- */
- public String getValue() {
- LiteralConstraint constraint = (LiteralConstraint) this.node.getConstraint();
- return constraint.getField().toString();
- }
-
- /**
- * Constraint
- *
- * @return constraint
- */
- public FieldConstraint getConstraint() {
- return this.node.getConstraint();
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AlphaNodeVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/AlphaNodeVertex.java)
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/AlphaNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AlphaNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -0,0 +1,96 @@
+/**
+ *
+ */
+package org.drools.reteoo;
+
+import org.drools.base.ClassFieldExtractor;
+import org.drools.rule.LiteralConstraint;
+import org.drools.spi.Constraint;
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.swt.graphics.Color;
+
+/**
+ * Wraps {@link AlphaNode} and adds visual extras like color information
+ *
+ */
+public class AlphaNodeVertex extends BaseVertex {
+
+ private final AlphaNode node;
+
+ private final String NODE_NAME = "AlphaNode";
+
+ /**
+ * Constructor
+ *
+ * @param node node to be wrapped
+ */
+ public AlphaNodeVertex(final AlphaNode node) {
+ super();
+ this.node = node;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.reteoo.BaseNodeVertex#getHtml()
+ */
+ public String getHtml() {
+ final LiteralConstraint constraint = (LiteralConstraint) this.node.getConstraint();
+ final ClassFieldExtractor extractor = (ClassFieldExtractor) constraint.getFieldExtractor();
+ return NODE_NAME + "<BR/>field : " + extractor.getFieldName() + "<BR/>evaluator : " + constraint.getEvaluator() + "<BR/>value : " + constraint.getField();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
+ */
+ public String toString() {
+ return this.node.toString();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
+ */
+ public Color getFillColor() {
+ return ColorConstants.blue;
+ }
+
+ /**
+ * Constraint has field extractor and this method is returning fieldName
+ * it.
+ *
+ * @return field name
+ */
+ public String getFieldName() {
+ LiteralConstraint constraint = (LiteralConstraint) this.node.getConstraint();
+ ClassFieldExtractor extractor = (ClassFieldExtractor) constraint.getFieldExtractor();
+ return extractor.getFieldName();
+ }
+
+ /**
+ * Constraint's evaluator string
+ *
+ * @return evaluator string
+ */
+ public String getEvaluator() {
+ LiteralConstraint constraint = (LiteralConstraint) this.node.getConstraint();
+ return constraint.getEvaluator().toString();
+ }
+
+ /**
+ * Constraint field string
+ *
+ * @return field string
+ */
+ public String getValue() {
+ LiteralConstraint constraint = (LiteralConstraint) this.node.getConstraint();
+ return constraint.getField().toString();
+ }
+
+ /**
+ * Constraint
+ *
+ * @return constraint
+ */
+ public Constraint getConstraint() {
+ return this.node.getConstraint();
+ }
+
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/BaseVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/BaseVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/BaseVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,33 +0,0 @@
-/*
- * Copyright 2006 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.drools.reteoo;
-
-import org.drools.ide.editors.rete.model.GraphicalVertex;
-
-/**
- * Intermediate class to have a workaround for *Node default visibility
- * and ReteooVisitor.
- *
- * It's not good to have {@link GraphicalVertex} dependency in
- * org.drools.reteoo package.
- *
- * @author Ahti Kitsik
- *
- */
-abstract public class BaseVertex extends GraphicalVertex {
-
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/BaseVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/BaseVertex.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/EvalConditionNodeVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/EvalConditionNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/EvalConditionNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,57 +0,0 @@
-/**
- *
- */
-package org.drools.reteoo;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Wraps {@link EvalConditionNode} and adds visual extras like color information
- *
- */
-public class EvalConditionNodeVertex extends BaseVertex {
-
- private static final String NODE_NAME = "EvalConditionNode";
- private final EvalConditionNode node;
-
- /**
- * Constructor
- *
- * @param node node to be wrapped
- */
- public EvalConditionNodeVertex(final EvalConditionNode node) {
- super();
- this.node = node;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getHtml()
- */
- public String getHtml() {
- return NODE_NAME + " : " + this.node.getId();
- }
-
- /* (non-Javadoc)
- * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
- */
- public String toString() {
- return NODE_NAME;
- }
-
- /**
- * Node ID
- *
- * @return node id
- */
- public int getId() {
- return node.getId();
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
- */
- public Color getFillColor() {
- return ColorConstants.white;
- }
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/EvalConditionNodeVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/EvalConditionNodeVertex.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/JoinNodeVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/JoinNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/JoinNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,69 +0,0 @@
-/**
- *
- */
-package org.drools.reteoo;
-
-import org.drools.spi.FieldConstraint;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Wraps {@link JoinNode} and adds visual extras like color information
- *
- */
-public class JoinNodeVertex extends BaseVertex {
-
- private static final String NODE_NAME = "JoinNode";
-
- private final JoinNode node;
-
- /**
- * Constructor
- *
- * @param node node to be wrapped
- */
- public JoinNodeVertex(final JoinNode node) {
- super();
- this.node = node;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getHtml()
- */
- public String getHtml() {
- return NODE_NAME + "<BR/>" + dumpConstraints( this.node.getConstraints() );
- }
-
- /* (non-Javadoc)
- * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
- */
- public String toString() {
- return NODE_NAME;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
- */
- public Color getFillColor() {
- return ColorConstants.green;
- }
-
- /**
- * Node constraints
- *
- * @return array of constraints
- */
- public FieldConstraint[] getConstraints() {
- return node.getConstraints();
- }
-
- /**
- * Node ID
- *
- * @return node id
- */
- public int getId() {
- return node.getId();
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/JoinNodeVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/JoinNodeVertex.java)
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/JoinNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/JoinNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -0,0 +1,69 @@
+/**
+ *
+ */
+package org.drools.reteoo;
+
+import org.drools.spi.Constraint;
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.swt.graphics.Color;
+
+/**
+ * Wraps {@link JoinNode} and adds visual extras like color information
+ *
+ */
+public class JoinNodeVertex extends BaseVertex {
+
+ private static final String NODE_NAME = "JoinNode";
+
+ private final JoinNode node;
+
+ /**
+ * Constructor
+ *
+ * @param node node to be wrapped
+ */
+ public JoinNodeVertex(final JoinNode node) {
+ super();
+ this.node = node;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.reteoo.BaseNodeVertex#getHtml()
+ */
+ public String getHtml() {
+ return NODE_NAME + "<BR/>" + dumpConstraints( this.node.getConstraints() );
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
+ */
+ public String toString() {
+ return NODE_NAME;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
+ */
+ public Color getFillColor() {
+ return ColorConstants.green;
+ }
+
+ /**
+ * Node constraints
+ *
+ * @return array of constraints
+ */
+ public Constraint[] getConstraints() {
+ return node.getConstraints();
+ }
+
+ /**
+ * Node ID
+ *
+ * @return node id
+ */
+ public int getId() {
+ return node.getId();
+ }
+
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/LeftInputAdapterNodeVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/LeftInputAdapterNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/LeftInputAdapterNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,59 +0,0 @@
-/**
- *
- */
-package org.drools.reteoo;
-
-import org.drools.spi.FieldConstraint;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Wraps {@link LeftInputAdapterNode} and adds visual extras like color information
- *
- */
-public class LeftInputAdapterNodeVertex extends BaseVertex {
-
- private static final String NODE_NAME = "LeftInputAdapterNode";
-
- private final LeftInputAdapterNode node;
-
- /**
- * Constructor
- *
- * @param node node to be wrapped
- */
- public LeftInputAdapterNodeVertex(final LeftInputAdapterNode node) {
- super();
- this.node = node;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getHtml()
- */
- public String getHtml() {
- return NODE_NAME + "<BR/>" + dumpConstraints( this.node.getConstraints() );
- }
-
- /* (non-Javadoc)
- * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
- */
- public String toString() {
- return this.node.toString();
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
- */
- public Color getFillColor() {
- return ColorConstants.yellow;
- }
-
- /**
- * Node constraints
- *
- * @return array of node constraints
- */
- public FieldConstraint[] getConstraints() {
- return node.getConstraints();
- }
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/LeftInputAdapterNodeVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/LeftInputAdapterNodeVertex.java)
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/LeftInputAdapterNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/LeftInputAdapterNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -0,0 +1,50 @@
+/**
+ *
+ */
+package org.drools.reteoo;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.swt.graphics.Color;
+
+/**
+ * Wraps {@link LeftInputAdapterNode} and adds visual extras like color information
+ *
+ */
+public class LeftInputAdapterNodeVertex extends BaseVertex {
+
+ private static final String NODE_NAME = "LeftInputAdapterNode";
+
+ private final LeftInputAdapterNode node;
+
+ /**
+ * Constructor
+ *
+ * @param node node to be wrapped
+ */
+ public LeftInputAdapterNodeVertex(final LeftInputAdapterNode node) {
+ super();
+ this.node = node;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.reteoo.BaseNodeVertex#getHtml()
+ */
+ public String getHtml() {
+ return NODE_NAME;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
+ */
+ public String toString() {
+ return this.node.toString();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
+ */
+ public Color getFillColor() {
+ return ColorConstants.yellow;
+ }
+
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/NotNodeVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/NotNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/NotNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,59 +0,0 @@
-/**
- *
- */
-package org.drools.reteoo;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Wraps {@link NotNode} and adds visual extras like color information
- *
- */
-public class NotNodeVertex extends BaseVertex {
-
- private static final String NODE_NAME = "NotNode";
-
- private final NotNode node;
-
- /**
- * Constructor
- *
- * @param node node to be wrapped
- */
- public NotNodeVertex(final NotNode node) {
- super();
- this.node = node;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getHtml()
- */
- public String getHtml() {
- return NODE_NAME+" : " + this.node.getId();
- }
-
- /* (non-Javadoc)
- * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
- */
- public String toString() {
- return NODE_NAME;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
- */
- public Color getFillColor() {
- return ColorConstants.cyan;
- }
-
- /**
- * Node ID
- *
- * @return node id
- */
- public int getId() {
- return node.getId();
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/NotNodeVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/NotNodeVertex.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ObjectTypeNodeVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/ObjectTypeNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ObjectTypeNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,59 +0,0 @@
-/**
- *
- */
-package org.drools.reteoo;
-
-import org.drools.spi.ObjectType;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Wraps {@link ObjectTypeNode} and adds visual extras like color information
- *
- */
-public class ObjectTypeNodeVertex extends BaseVertex {
-
- private static final String NODE_NAME = "ObjectTypeNode";
-
- private final ObjectTypeNode node;
-
- /**
- * Constructor
- *
- * @param node node to be wrapped
- */
- public ObjectTypeNodeVertex(final ObjectTypeNode node) {
- super();
- this.node = node;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getHtml()
- */
- public String getHtml() {
- return NODE_NAME + " : " + this.node.getObjectType();
- }
-
- /* (non-Javadoc)
- * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
- */
- public String toString() {
- return NODE_NAME;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
- */
- public Color getFillColor() {
- return ColorConstants.red;
- }
-
- /**
- * {@link ObjectType} as {@link String}
- *
- * @return object type as string
- */
- public String getObjectType() {
- return node.getObjectType().toString();
- }
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ObjectTypeNodeVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/ObjectTypeNodeVertex.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/ReteVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,59 +0,0 @@
-/**
- *
- */
-package org.drools.reteoo;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Wraps {@link Rete} and adds visual extras like color information
- *
- */
-public class ReteVertex extends BaseVertex {
-
- private static final String NODE_NAME = "Rete";
-
- private final Rete node;
-
- /**
- * Constructor
- *
- * @param node node to be wrapped
- */
- public ReteVertex(final Rete node) {
- super();
- this.node = node;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getHtml()
- */
- public String getHtml() {
- return NODE_NAME+" : " + this.node.getId();
- }
-
- /* (non-Javadoc)
- * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
- */
- public String toString() {
- return NODE_NAME;
- }
-
- /**
- * Node ID
- *
- * @return node id
- */
- public int getId() {
- return node.getId();
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
- */
- public Color getFillColor() {
- return ColorConstants.white;
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/ReteVertex.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteooVisitor.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/ReteooVisitor.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteooVisitor.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,136 +0,0 @@
-package org.drools.reteoo;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.drools.ide.editors.rete.model.Connection;
-import org.drools.ide.editors.rete.model.ReteGraph;
-import org.drools.util.ReflectiveVisitor;
-
-/**
- * Produces a graph in GraphViz DOT format.
- *
- * @see http://www.research.att.com/sw/tools/graphviz/
- * @see http://www.pixelglow.com/graphviz/
- *
- * @author Andy Barnett
- */
-public class ReteooVisitor extends ReflectiveVisitor {
-
- private static final String PACKAGE_NAME = "org.drools.reteoo.";
-
- /**
- * Keeps track of visited JoinNode DOT IDs. This mapping allows the visitor
- * to recognize JoinNodes it has already visited and as a consequence link
- * existing nodes back together. This is vital to the Visitor being able to
- * link two JoinNodeInputs together through their common JoinNode.
- */
- private final Map visitedNodes = new HashMap();
-
- private ReteGraph graph;
-
- private BaseVertex rootVertex;
-
- private BaseVertex parentVertex;
-
- /**
- * Constructor.
- */
- public ReteooVisitor(final ReteGraph graph) {
- this.graph = graph;
- }
-
- public ReteGraph getGraph() {
- return this.graph;
- }
-
- public BaseVertex getRootVertex() {
- return this.rootVertex;
- }
-
- /**
- * RuleBaseImpl visits its Rete.
- */
- public void visitReteooRuleBase(final ReteooRuleBase ruleBase) {
- visit( (ruleBase).getRete() );
- }
-
- /**
- * Rete visits each of its ObjectTypeNodes.
- */
- public void visitRete(final Rete rete) {
- this.rootVertex = (ReteVertex) this.visitedNodes.get( dotId( rete ) );
- if ( this.rootVertex == null ) {
- this.rootVertex = new ReteVertex( rete );
- this.visitedNodes.put( dotId( rete ),
- this.rootVertex );
- }
-
- this.graph.addChild( this.rootVertex );
- this.parentVertex = this.rootVertex;
- for ( final Iterator i = rete.objectTypeNodeIterator(); i.hasNext(); ) {
- final Object nextNode = i.next();
- visitNode( nextNode );
- }
- }
-
- public void visitBaseNode(final BaseNode node) {
- BaseVertex vertex = (BaseVertex) this.visitedNodes.get( dotId( node ) );
- if ( vertex == null ) {
- try {
- String name = node.getClass().getName();
- name = name.substring( name.lastIndexOf( '.' ) + 1 ) + "Vertex";
- final Class clazz = Class.forName( PACKAGE_NAME + name );
- vertex = (BaseVertex) clazz.getConstructor( new Class[]{node.getClass()} ).newInstance( new Object[]{node} );
- } catch ( final Exception e ) {
- throw new RuntimeException( "problem visiting vertex " + node.getClass().getName(),
- e );
- }
- this.graph.addChild( vertex );
- this.visitedNodes.put( dotId( node ),
- vertex );
-
- new Connection( this.parentVertex,
- vertex );
-
- final BaseVertex oldParentVertex = this.parentVertex;
- this.parentVertex = vertex;
-
- List list = null;
- if ( node instanceof ObjectSource ) {
- list = ((ObjectSource) node).getObjectSinksAsList();
- } else if ( node instanceof TupleSource ) {
- list = ((TupleSource) node).getTupleSinks();
- }
-
- if ( list != null ) {
- for ( final Iterator it = list.iterator(); it.hasNext(); ) {
- final Object nextNode = it.next();
- visitNode( nextNode );
- }
- }
- this.parentVertex = oldParentVertex;
- } else {
- new Connection( this.parentVertex,
- vertex );
- }
- }
-
- /**
- * Helper method to ensure nodes are not visited more than once.
- */
- private void visitNode(final Object node) {
- visit( node );
- }
-
- /**
- * The identity hashCode for the given object is used as its unique DOT
- * identifier.
- */
- private static String dotId(final Object object) {
- return Integer.toHexString( System.identityHashCode( object ) ).toUpperCase();
- }
-
-}
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteooVisitor.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/ReteooVisitor.java)
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/ReteooVisitor.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ReteooVisitor.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -0,0 +1,149 @@
+package org.drools.reteoo;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.common.BaseNode;
+import org.drools.ide.editors.rete.model.Connection;
+import org.drools.ide.editors.rete.model.ReteGraph;
+import org.drools.util.Iterator;
+import org.drools.util.ObjectHashMap;
+import org.drools.util.ReflectiveVisitor;
+import org.drools.util.ObjectHashMap.ObjectEntry;
+
+/**
+ * Produces a graph in GraphViz DOT format.
+ *
+ * @see http://www.research.att.com/sw/tools/graphviz/
+ * @see http://www.pixelglow.com/graphviz/
+ *
+ * @author Andy Barnett
+ */
+public class ReteooVisitor extends ReflectiveVisitor {
+
+ private static final String PACKAGE_NAME = "org.drools.reteoo.";
+
+ /**
+ * Keeps track of visited JoinNode DOT IDs. This mapping allows the visitor
+ * to recognize JoinNodes it has already visited and as a consequence link
+ * existing nodes back together. This is vital to the Visitor being able to
+ * link two JoinNodeInputs together through their common JoinNode.
+ */
+ private final Map visitedNodes = new HashMap();
+
+ private ReteGraph graph;
+
+ private BaseVertex rootVertex;
+
+ private BaseVertex parentVertex;
+
+ /**
+ * Constructor.
+ */
+ public ReteooVisitor(final ReteGraph graph) {
+ this.graph = graph;
+ }
+
+ public ReteGraph getGraph() {
+ return this.graph;
+ }
+
+ public BaseVertex getRootVertex() {
+ return this.rootVertex;
+ }
+
+ /**
+ * RuleBaseImpl visits its Rete.
+ */
+ public void visitReteooRuleBase(final ReteooRuleBase ruleBase) {
+ visit( (ruleBase).getRete() );
+ }
+
+ /**
+ * Rete visits each of its ObjectTypeNodes.
+ */
+ public void visitRete(final Rete rete) {
+ this.rootVertex = (ReteVertex) this.visitedNodes.get( dotId( rete ) );
+ if ( this.rootVertex == null ) {
+ this.rootVertex = new ReteVertex( rete );
+ this.visitedNodes.put( dotId( rete ),
+ this.rootVertex );
+ }
+
+ this.graph.addChild( this.rootVertex );
+ this.parentVertex = this.rootVertex;
+
+ final ObjectHashMap map = rete.getObjectTypeNodes();
+
+ final Iterator it = map.iterator();
+ for ( ObjectEntry entry = (ObjectEntry) it.next(); entry != null; entry = (ObjectEntry) it.next() ) {
+ visit( entry.getValue() );
+ }
+
+ }
+
+ public void visitBaseNode(final BaseNode node) {
+ BaseVertex vertex = (BaseVertex) this.visitedNodes.get( dotId( node ) );
+ if ( vertex == null ) {
+ try {
+ String name = node.getClass().getName();
+ name = name.substring( name.lastIndexOf( '.' ) + 1 ) + "Vertex";
+ final Class clazz = Class.forName( PACKAGE_NAME + name );
+ vertex = (BaseVertex) clazz.getConstructor( new Class[]{node.getClass()} ).newInstance( new Object[]{node} );
+ } catch ( final Exception e ) {
+ throw new RuntimeException( "problem visiting vertex " + node.getClass().getName(),
+ e );
+ }
+ this.graph.addChild( vertex );
+ this.visitedNodes.put( dotId( node ),
+ vertex );
+
+ new Connection( this.parentVertex,
+ vertex );
+
+ final BaseVertex oldParentVertex = this.parentVertex;
+ this.parentVertex = vertex;
+
+ List list = null;
+ if ( node instanceof ObjectSource ) {
+ list = Arrays.asList( ((ObjectSource) node).getSinkPropagator().getSinks() );
+ } else if ( node instanceof TupleSource ) {
+ list = Arrays.asList( ((TupleSource) node).getSinkPropagator().getSinks() );
+ }
+
+ if ( list != null ) {
+ for ( final java.util.Iterator it = list.iterator(); it.hasNext(); ) {
+ final Object nextNode = it.next();
+ visitNode( nextNode );
+ }
+ }
+ this.parentVertex = oldParentVertex;
+ } else {
+ new Connection( this.parentVertex,
+ vertex );
+ }
+ }
+
+ /**
+ * Helper method to ensure nodes are not visited more than once.
+ */
+ private void visitNode(final Object node) {
+ Object realNode = node;
+ if ( node instanceof ObjectHashMap.ObjectEntry ) {
+ ObjectHashMap.ObjectEntry entry = (ObjectHashMap.ObjectEntry) node;
+ realNode = entry.getValue();
+ }
+ visit( realNode );
+ }
+
+ /**
+ * The identity hashCode for the given object is used as its unique DOT
+ * identifier.
+ */
+ private static String dotId(final Object object) {
+ return Integer.toHexString( System.identityHashCode( object ) ).toUpperCase();
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/RightInputAdapterNodeVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/RightInputAdapterNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/RightInputAdapterNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,38 +0,0 @@
-/**
- *
- */
-package org.drools.reteoo;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Wraps {@link RightInputAdapterNode} and adds visual extras like color information
- *
- */
-public class RightInputAdapterNodeVertex extends BaseVertex {
-
- private static final String NODE_NAME = "RightInputAdapterNode";
-
- /**
- * Constructor
- *
- * @param node node to be wrapped
- */
- public RightInputAdapterNodeVertex(final RightInputAdapterNode node) {
- super();
- }
-
- public String getHtml() {
- return NODE_NAME;
- }
-
- public String toString() {
- return NODE_NAME;
- }
-
- public Color getFillColor() {
- return ColorConstants.orange;
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/RightInputAdapterNodeVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/RightInputAdapterNodeVertex.java)
Deleted: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/TerminalNodeVertex.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/TerminalNodeVertex.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/TerminalNodeVertex.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,66 +0,0 @@
-/**
- *
- */
-package org.drools.reteoo;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Wraps {@link TerminalNode} and adds visual extras like color information
- *
- */
-public class TerminalNodeVertex extends BaseVertex {
-
- private static final String NODE_NAME = "TerminalNode";
-
- private final TerminalNode node;
-
- /**
- * Constructor
- *
- * @param node node to be wrapped
- */
- public TerminalNodeVertex(final TerminalNode node) {
- super();
- this.node = node;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getHtml()
- */
- public String getHtml() {
- return NODE_NAME+" : " + this.node.getId() + " : " + this.node.getRule();
- }
-
- /* (non-Javadoc)
- * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
- */
- public String toString() {
- return NODE_NAME;
- }
-
- /* (non-Javadoc)
- * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
- */
- public Color getFillColor() {
- return ColorConstants.darkGray;
- }
-
- /**
- * Node ID
- *
- * @return id
- */
- public int getId() {
- return this.node.getId();
- }
-
- /**
- * @return
- */
- public String getRuleName() {
- return node.getRule().getName();
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/TerminalNodeVertex.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide/src/main/java/org/drools/reteoo/TerminalNodeVertex.java)
Modified: labs/jbossrules/trunk/drools-ide-feature/.project
===================================================================
--- labs/jbossrules/trunk/drools-ide-feature/.project 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-ide-feature/.project 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,17 +1,11 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>drools-ide-feature</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.pde.FeatureBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.FeatureNature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>drools-ide-feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
Copied: labs/jbossrules/trunk/drools-ide-test (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test)
Property changes on: labs/jbossrules/trunk/drools-ide-test
___________________________________________________________________
Name: svn:ignore
+ bin
Deleted: labs/jbossrules/trunk/drools-ide-test/.classpath
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/.classpath 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/.classpath 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/test/java"/>
- <classpathentry kind="src" path="src/test/resources/"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
Copied: labs/jbossrules/trunk/drools-ide-test/.classpath (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/.classpath)
Deleted: labs/jbossrules/trunk/drools-ide-test/.project
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/.project 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/.project 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,27 +0,0 @@
-<projectDescription>
- <name>drools-ide-test</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-ide-test/.project (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/.project)
Copied: labs/jbossrules/trunk/drools-ide-test/.settings (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/.settings)
Deleted: labs/jbossrules/trunk/drools-ide-test/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/.settings/org.eclipse.jdt.core.prefs 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/.settings/org.eclipse.jdt.core.prefs 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,7 +0,0 @@
-#Fri Oct 20 11:59:49 PDT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
Copied: labs/jbossrules/trunk/drools-ide-test/.settings/org.eclipse.jdt.core.prefs (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/.settings/org.eclipse.jdt.core.prefs)
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/.settings/org.eclipse.jdt.core.prefs 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/.settings/org.eclipse.jdt.core.prefs 2006-11-17 15:52:24 UTC (rev 7683)
@@ -0,0 +1,8 @@
+#Wed Nov 15 23:49:39 EET 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
Copied: labs/jbossrules/trunk/drools-ide-test/META-INF (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/META-INF)
Deleted: labs/jbossrules/trunk/drools-ide-test/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/META-INF/MANIFEST.MF 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/META-INF/MANIFEST.MF 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Drools IDE Test fragment
-Bundle-SymbolicName: org.drools.ide.test
-Bundle-Version: 3.0.5
-Bundle-Vendor: krisv,mic
-Fragment-Host: org.drools.ide;bundle-version="3.0.0"
-Bundle-Localization: plugin
-Require-Bundle: org.junit
-Bundle-ClassPath: .
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Eclipse-LazyStart: true
Copied: labs/jbossrules/trunk/drools-ide-test/META-INF/MANIFEST.MF (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/META-INF/MANIFEST.MF)
Deleted: labs/jbossrules/trunk/drools-ide-test/build.properties
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/build.properties 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/build.properties 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,12 +0,0 @@
-bin.includes = META-INF/,\
- .
-jars.compile.order = .
-source.. = src/test/java/,\
- src/test/resources/
-output.. = bin/
-src.includes = .classpath,\
- .project,\
- .settings/,\
- META-INF/,\
- build.properties,\
- src/
Copied: labs/jbossrules/trunk/drools-ide-test/build.properties (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/build.properties)
Copied: labs/jbossrules/trunk/drools-ide-test/src (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src)
Copied: labs/jbossrules/trunk/drools-ide-test/src/test (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test)
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java)
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org)
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools)
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide)
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors)
Modified: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/DSLAdapterTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/DSLAdapterTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/DSLAdapterTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -7,50 +7,46 @@
* @author Michael Neale
*/
public class DSLAdapterTest extends TestCase {
-
+
public void testFindExpander() {
-
+
StringBuffer buf = largeString();
-
+
String pat = "\nexpander \t abc.dsl";
-
+
DSLAdapter ad = new DSLAdapter();
- assertEquals( "abc.dsl",
- DSLAdapter.findDSLConfigName( pat ) );
-
- assertEquals( "abc.dsl",
- DSLAdapter.findDSLConfigName( buf.toString() ) );
-
- assertEquals( null,
- DSLAdapter.findDSLConfigName( "abc /n/n" ) );
-
- ad = new DSLAdapter( "fdfds",
- null );
- assertEquals( null,
- ad.getDSLConfigName() );
-
+ assertEquals("abc.dsl", DSLAdapter.findDSLConfigName( pat ));
+
+
+ assertEquals("abc.dsl", DSLAdapter.findDSLConfigName( buf.toString() ));
+
+ assertEquals(null, DSLAdapter.findDSLConfigName( "abc /n/n" ));
+
+ ad = new DSLAdapter("fdfds", null);
+ assertEquals(null, ad.getDSLConfigName());
+
}
-
+
public void testLoadGrammar() throws Exception {
DSLAdapter ad = new DSLAdapter();
-
+
ad.readConfig( this.getClass().getResourceAsStream( "test.dsl" ) );
- assertNotNull( ad.listConditionItems() );
- assertNotNull( ad.listConsequenceItems() );
+ assertNotNull(ad.listConditionItems());
+ assertNotNull(ad.listConsequenceItems());
}
private StringBuffer largeString() {
StringBuffer buf = new StringBuffer();
- for ( int i = 0; i < 1000; i++ ) {
- if ( i == 42 ) {
+ for (int i = 0; i < 1000; i++) {
+ if (i == 42) {
buf.append( "\nuse expander abc.dsl \n" );
}
-
+
buf.append( "\n" );
- buf.append( " fdsfdsfds && " + i );
-
+ buf.append( " fdsfdsfds && " + i);
+
}
return buf;
}
-
+
}
Modified: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/ExpressionSpaceNormaliseTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/ExpressionSpaceNormaliseTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/ExpressionSpaceNormaliseTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -9,16 +9,15 @@
public void testNormaliseSpaces() {
String with = "This has some extra\t spaces.";
String without = "This has some extra spaces.";
-
- assertEquals( without,
- NLGrammarModel.normaliseSpaces( with ) );
-
- assertEquals( without,
- NLGrammarModel.normaliseSpaces( without ) );
-
- assertEquals( "smeg",
- NLGrammarModel.normaliseSpaces( "smeg" ) );
-
+
+ assertEquals(without, NLGrammarModel.normaliseSpaces( with ));
+
+ assertEquals(without, NLGrammarModel.normaliseSpaces( without ));
+
+ assertEquals("smeg", NLGrammarModel.normaliseSpaces( "smeg" ));
+
}
+
+
}
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/completion)
Modified: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/ContextScanningTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/completion/ContextScanningTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/ContextScanningTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -8,25 +8,27 @@
public class ContextScanningTest extends TestCase {
public void testCheckAfterToken() {
-
- assertTrue( checkContains( "when",
- "rule something \nwhen \t blah" ) );
- assertTrue( checkContains( "when",
- "rule something when nothing" ) );
- assertFalse( checkContains( "when",
- "rule something whennothing" ) );
- assertTrue( checkContains( "when",
- "rule something \twhen nothing" ) );
+
+
+
+ assertTrue(checkContains("when", "rule something \nwhen \t blah"));
+ assertTrue(checkContains("when", "rule something when nothing"));
+ assertFalse(checkContains("when", "rule something whennothing"));
+ assertTrue(checkContains("when", "rule something \twhen nothing"));
}
private boolean checkContains(String keyword,
- String chunk) {
+ String chunk) {
//Pattern p = Pattern.compile(".*(.)" + keyword + "(.).*", Pattern.DOTALL);
- Pattern p = Pattern.compile( ".*rule.*\\W" + keyword + "\\W.*",
- Pattern.DOTALL );
- Matcher matcher = p.matcher( chunk );
-
+ Pattern p = Pattern.compile(".*rule.*\\W" + keyword + "\\W.*", Pattern.DOTALL);
+ Matcher matcher = p.matcher(chunk);
+
return matcher.matches();
}
+
+
+
+
+
}
Modified: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/DRLCompletionProcessorTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/completion/DRLCompletionProcessorTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/DRLCompletionProcessorTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -8,58 +8,35 @@
public class DRLCompletionProcessorTest extends TestCase {
public void testLookBehind() {
- DefaultCompletionProcessor proc = new DefaultCompletionProcessor( null );
-
- assertEquals( "something",
- proc.stripWhiteSpace( " something" ) );
- assertEquals( "another",
- proc.stripWhiteSpace( "another" ) );
-
+ assertEquals("something", CompletionUtil.stripLastWord(" something"));
+ assertEquals("another", CompletionUtil.stripLastWord("another"));
+
String s = "rule something \n\nwhen";
- assertEquals( "when",
- proc.stripWhiteSpace( s ) );
-
+ assertEquals("when", CompletionUtil.stripLastWord(s));
}
-
+
public void testPrefixFiltering() {
- DefaultCompletionProcessor proc = new DefaultCompletionProcessor( null );
+ DefaultCompletionProcessor proc = new DefaultCompletionProcessor(null);
List list = new ArrayList();
- list.add( new RuleCompletionProposal( 0,
- "aardvark",
- "something" ) );
- list.add( new RuleCompletionProposal( 0,
- "smeg" ) );
- list.add( new RuleCompletionProposal( 0,
- "apple" ) );
- list.add( new RuleCompletionProposal( 0,
- "ape",
- "ape" ) );
+ list.add(new RuleCompletionProposal(0, "aardvark", "something"));
+ list.add(new RuleCompletionProposal(0, "smeg"));
+ list.add(new RuleCompletionProposal(0, "apple"));
+ list.add(new RuleCompletionProposal(0, "ape", "ape"));
+
+ proc.filterProposalsOnPrefix("a", list);
+ assertEquals(2, list.size());
+ assertEquals("apple", list.get(0).toString());
+ assertEquals("ape", list.get(1).toString());
- proc.filterProposalsOnPrefix( "a",
- list );
- assertEquals( 2,
- list.size() );
- assertEquals( "apple",
- list.get( 0 ).toString() );
- assertEquals( "ape",
- list.get( 1 ).toString() );
-
+
list = new ArrayList();
- list.add( new RuleCompletionProposal( 0,
- "aardvark",
- "something" ) );
- list.add( new RuleCompletionProposal( 0,
- "smeg" ) );
- list.add( new RuleCompletionProposal( 0,
- "apple" ) );
- list.add( new RuleCompletionProposal( 0,
- "ape",
- "zzzzz" ) );
- proc.filterProposalsOnPrefix( "xzyz",
- list );
- assertEquals( 0,
- list.size() );
+ list.add(new RuleCompletionProposal(0, "aardvark", "something"));
+ list.add(new RuleCompletionProposal(0, "smeg"));
+ list.add(new RuleCompletionProposal(0, "apple"));
+ list.add(new RuleCompletionProposal(0, "ape", "zzzzz"));
+ proc.filterProposalsOnPrefix("xzyz", list);
+ assertEquals(0, list.size());
}
-
+
}
Modified: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/KeywordsTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/completion/KeywordsTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/KeywordsTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,18 +1,17 @@
package org.drools.ide.editors.completion;
-import junit.framework.TestCase;
-
import org.drools.ide.editors.Keywords;
+import junit.framework.TestCase;
+
public class KeywordsTest extends TestCase {
public void testAll() {
Keywords keys = Keywords.getInstance();
String[] all = keys.getAllDroolsKeywords();
- assertTrue( all.length > 0 );
- assertEquals( "when",
- all[0] );
+ assertTrue(all.length > 0);
+ assertEquals("when", all[0]);
}
-
+
}
Modified: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/LocationDeterminatorTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/completion/LocationDeterminatorTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/completion/LocationDeterminatorTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -6,707 +6,1193 @@
* Test to check the location determination when doing code completion inside
* rule condtions.
*
- * Possible locations:
- * LOCATION_BEGIN_OF_CONDITION
- * -> all drools condition keywords + imported classes
- * LOCATION_INSIDE_CONDITION_START
- * -> all properties of specified class
- *
* @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
*
*/
public class LocationDeterminatorTest extends TestCase {
public void testColumnOperatorPattern() {
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( name : property " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "(name:property " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( name:property " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( name:property " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( name : property " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property1 == \"value\", property2 " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property1 == \"value\", name : property2 " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property1 == \"value\", name:property2 " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property1 == \"value\", name : property2 " ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( prop" ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "(prop" ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( prop" ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( name:prop" ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "(name:prop" ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( name : prop" ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( name : prop" ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property <= " ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( name : property == " ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "(property==" ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property contains " ).matches() );
- assertFalse( LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher( "( property1 == \"value\", property2 >= " ).matches() );
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( name : property ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("(name:property ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( name:property ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( name:property ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( name : property ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property1 == \"value\", property2 ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property1 == \"value\", name : property2 ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property1 == \"value\", name:property2 ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property1 == \"value\", name : property2 ").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( prop").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("(prop").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( prop").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( name:prop").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("(name:prop").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( name : prop").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( name : prop").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property <= ").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( name : property == ").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("(property==").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property contains ").matches());
+ assertFalse(LocationDeterminator.COLUMN_PATTERN_OPERATOR.matcher("( property1 == \"value\", property2 >= ").matches());
}
public void testColumnArgumentPattern() {
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "( property == " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "( property >= " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "(property== " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "( property == " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "( name : property == " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "(name:property== " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "( name : property == " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "( property1 == \"value\", property2 == " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "( property1 == \"value\",property2== " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "( property1 == \"value\", property2 == " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "( property == otherProp" ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher( "(property==otherProp" ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_CONTAINS_ARGUMENT.matcher( "( property contains " ).matches() );
- assertTrue( LocationDeterminator.COLUMN_PATTERN_EXCLUDES_ARGUMENT.matcher( "( property excludes " ).matches() );
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property == ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property >= ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("(property== ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property == ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("( name : property == ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("(name:property== ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("( name : property == ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property1 == \"value\", property2 == ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property1 == \"value\",property2== ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property1 == \"value\", property2 == ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("( property == otherProp").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_COMPARATOR_ARGUMENT.matcher("(property==otherProp").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_CONTAINS_ARGUMENT.matcher("( property contains ").matches());
+ assertTrue(LocationDeterminator.COLUMN_PATTERN_EXCLUDES_ARGUMENT.matcher("( property excludes ").matches());
}
-
+
public void testCheckLocationDetermination() {
- String input = "rule MyRule \n" + " when \n" + " ";
- LocationDeterminator.Location location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ String input =
+ "rule MyRule \n" +
+ " when \n" +
+ " ";
+ LocationDeterminator.Location location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class( condition == true ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " class: Class( condition == true, condition2 == null ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class( condition == true ) \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class( condition == true ) \n" +
+ " Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " class: Class( condition == true, condition2 == null ) \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " class: Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " class:Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class( condition == true ) \n" + " Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ /** Inside of condition: start */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class (";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( na";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( condition == true, ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( condition == true, na";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( condition == true, \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name : ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name: ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name:";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ /** Inside of condition: Operator */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class(property ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name : property ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " class: Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class (name:property ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " class:Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class (name:property ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- /** Inside of condition: start */
- input = "rule MyRule \n" + " when \n" + " Class (";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name1 : property1, name : property ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( na";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name1 : property1 == \"value\", name : property ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( condition == true, ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name1 : property1 == \"value\",property ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( condition == true, na";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name1 : property1, \n" +
+ " name : property ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ /** Inside of condition: argument */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property == ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("==", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property== ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("==", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name : property <= ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("<=", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name:property != ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("!=", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name1 : property1, property2 == ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property2", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("==", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class (name:property== ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("==", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property == otherPropertyN";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("==", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property == \"someth";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("==", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property contains ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("contains", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property excludes ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("excludes", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property matches \"prop";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("matches", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
+
+ /** EXISTS */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( condition == true, \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists ( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( name : ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists(";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( name: ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( name:";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists ( Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- /** Inside of condition: Operator */
- input = "rule MyRule \n" + " when \n" + " Class ( property ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists ( name : Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class(property ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists Class (";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( name : property ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists Class ( ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class (name:property ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ /** NOT */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " not ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_NOT, location.getType());
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " not Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_NOT, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class (name:property ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " not exists ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( name1 : property1, name : property ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " not exists Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( name1 : property1 == \"value\", name : property ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " not Class (";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( name1 : property1 == \"value\",property ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ // TODO
+// input =
+// "rule MyRule \n" +
+// " when \n" +
+// " not exists Class (";
+// location = LocationDeterminator.getLocationInCondition(input);
+// assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+// assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( name1 : property1, \n" + " name : property ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+// input =
+// "rule MyRule \n" +
+// " when \n" +
+// " not exists name : Class (";
+// location = LocationDeterminator.getLocationInCondition(input);
+// assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+// assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
- /** Inside of condition: argument */
- input = "rule MyRule \n" + " when \n" + " Class ( property == ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "==",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " not Class () \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
+
+ /** AND */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( property== ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "==",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) && ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( name : property <= ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "<=",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class () and ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " name : Class ( name: property ) and ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( name:property != ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "!=",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name: property ) \n" +
+ " and ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( name1 : property1, property2 == ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property2",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "==",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class (name:property== ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "==",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and name : Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( property == otherPropertyN";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "==",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) && name : Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( property == \"someth";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "==",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and Class ( ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( property contains ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "contains",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and not Class ( ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( property excludes ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "excludes",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and exists Class ( ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( property matches \"prop";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
- assertEquals( "property",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
- assertEquals( "matches",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_OPERATOR ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and Class ( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
- /** EXISTS */
- input = "rule MyRule \n" + " when \n" + " exists ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and Class ( name ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("name", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " exists ( ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and Class ( name == ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
- input = "rule MyRule \n" + " when \n" + " exists(";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists Class ( ) and not ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_NOT, location.getType());
- input = "rule MyRule \n" + " when \n" + " exists Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists Class ( ) and exists ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- input = "rule MyRule \n" + " when \n" + " exists ( Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) and not Class ( ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " exists ( name : Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ /** OR */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) or ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " exists Class (";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) || ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " exists Class ( ) \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class () or ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " name : Class ( name: property ) or ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- /** NOT */
- input = "rule MyRule \n" + " when \n" + " not ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_NOT,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name: property ) \n" +
+ " or ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " not Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_NOT,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) or Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " not exists ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) or name : Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " not exists Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) || name : Cl";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR, location.getType());
- input = "rule MyRule \n" + " when \n" + " not Class (";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
- assertEquals( "Class",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) or Class ( ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- // TODO
- // input =
- // "rule MyRule \n" +
- // " when \n" +
- // " not exists Class (";
- // location = LocationDeterminator.getLocationInCondition(input);
- // assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
- // assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
- //
- // input =
- // "rule MyRule \n" +
- // " when \n" +
- // " not exists name : Class (";
- // location = LocationDeterminator.getLocationInCondition(input);
- // assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
- // assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) or Class ( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
- input = "rule MyRule \n" + " when \n" + " not Class () \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) or Class ( name ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("name", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- /** AND */
- input = "rule MyRule \n" + " when \n" + " Class ( ) and ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( ) or Class ( name == ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( ) && ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists Class ( ) or not ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_NOT, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class () and ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " exists Class ( ) or exists ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS, location.getType());
- input = "rule MyRule \n" + " when \n" + " name : Class ( name: property ) and ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ /** EVAL */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval ( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_EVAL, location.getType());
+ assertEquals("", location.getProperty(LocationDeterminator.LOCATION_EVAL_CONTENT));
- input = "rule MyRule \n" + " when \n" + " Class ( name: property ) \n" + " and ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval(";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_EVAL, location.getType());
+ assertEquals("", location.getProperty(LocationDeterminator.LOCATION_EVAL_CONTENT));
- input = "rule MyRule \n" + " when \n" + " Class ( ) and Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( myCla";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_EVAL, location.getType());
+ assertEquals("myCla", location.getProperty(LocationDeterminator.LOCATION_EVAL_CONTENT));
- input = "rule MyRule \n" + " when \n" + " Class ( ) and name : Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( param.getMetho";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_EVAL, location.getType());
+ assertEquals("param.getMetho", location.getProperty(LocationDeterminator.LOCATION_EVAL_CONTENT));
- input = "rule MyRule \n" + " when \n" + " Class ( ) && name : Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( param.getMethod(";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_EVAL, location.getType());
+ assertEquals("param.getMethod(", location.getProperty(LocationDeterminator.LOCATION_EVAL_CONTENT));
- input = "rule MyRule \n" + " when \n" + " Class ( ) and Class ( ) \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( param.getMethod().get";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_EVAL, location.getType());
+ assertEquals("param.getMethod().get", location.getProperty(LocationDeterminator.LOCATION_EVAL_CONTENT));
- input = "rule MyRule \n" + " when \n" + " Class ( ) and not Class ( ) \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( param.getMethod(\"someStringWith)))\").get";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_EVAL, location.getType());
+ assertEquals("param.getMethod(\"someStringWith)))\").get", location.getProperty(LocationDeterminator.LOCATION_EVAL_CONTENT));
- input = "rule MyRule \n" + " when \n" + " Class ( ) and exists Class ( ) \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( param.getMethod(\"someStringWith(((\").get";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_EVAL, location.getType());
+ assertEquals("param.getMethod(\"someStringWith(((\").get", location.getProperty(LocationDeterminator.LOCATION_EVAL_CONTENT));
- input = "rule MyRule \n" + " when \n" + " Class ( ) and Class ( ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( true )";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( ) and Class ( name ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "name",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( param.getProperty(name).isTrue() )";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( ) and Class ( name == ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( param.getProperty(\"someStringWith(((\").isTrue() )";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " exists Class ( ) and not ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_NOT,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( param.getProperty((((String) s) )";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_EVAL, location.getType());
+ assertEquals("param.getProperty((((String) s) )", location.getProperty(LocationDeterminator.LOCATION_EVAL_CONTENT));
- input = "rule MyRule \n" + " when \n" + " exists Class ( ) and exists ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( param.getProperty((((String) s))))";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( ) and not Class ( ) \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " eval( true ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- /** OR */
- input = "rule MyRule \n" + " when \n" + " Class ( ) or ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ /** MULTIPLE RESTRICTIONS */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 & ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( ) || ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 & " +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class () or ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name : property1, property2 > 0 & ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property2", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " name : Class ( name: property ) or ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property1 < 20, property2 > 0 & ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property2", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( name: property ) \n" + " or ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 & < ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+ assertEquals("<", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_OPERATOR));
- input = "rule MyRule \n" + " when \n" + " Class ( ) or Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 | ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( ) or name : Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 | \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( ) || name : Cl";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_AND_OR,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( name : property1, property2 > 0 | ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property2", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( ) or Class ( ) \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property1 < 20, property2 > 0 | ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Class", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("property2", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
- input = "rule MyRule \n" + " when \n" + " Class ( ) or Class ( ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_START,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_END, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( ) or Class ( name ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR,
- location.getType() );
- assertEquals( "name",
- location.getProperty( LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_END, location.getType());
- input = "rule MyRule \n" + " when \n" + " Class ( ) or Class ( name == ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 & < 10 ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_END, location.getType());
- input = "rule MyRule \n" + " when \n" + " exists Class ( ) or not ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_NOT,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 | < 10 ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_END, location.getType());
- input = "rule MyRule \n" + " when \n" + " exists Class ( ) or exists ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION_EXISTS,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property == \"test\" | == \"test2\" ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_END, location.getType());
- /** EVAL */
- input = "rule MyRule \n" + " when \n" + " eval ( ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_EVAL,
- location.getType() );
- assertEquals( "",
- location.getProperty( LocationDeterminator.LOCATION_EVAL_CONTENT ) );
+ /** FROM */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " eval(";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_EVAL,
- location.getType() );
- assertEquals( "",
- location.getProperty( LocationDeterminator.LOCATION_EVAL_CONTENT ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) fr";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " eval( myCla";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_EVAL,
- location.getType() );
- assertEquals( "myCla",
- location.getProperty( LocationDeterminator.LOCATION_EVAL_CONTENT ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM, location.getType());
+ assertEquals("", location.getProperty(LocationDeterminator.LOCATION_FROM_CONTENT));
- input = "rule MyRule \n" + " when \n" + " eval( param.getMetho";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_EVAL,
- location.getType() );
- assertEquals( "param.getMetho",
- location.getProperty( LocationDeterminator.LOCATION_EVAL_CONTENT ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from myGlob";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM, location.getType());
+ assertEquals("myGlob", location.getProperty(LocationDeterminator.LOCATION_FROM_CONTENT));
- input = "rule MyRule \n" + " when \n" + " eval( param.getMethod(";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_EVAL,
- location.getType() );
- assertEquals( "param.getMethod(",
- location.getProperty( LocationDeterminator.LOCATION_EVAL_CONTENT ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from myGlobal.get";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM, location.getType());
+ assertEquals("myGlobal.get", location.getProperty(LocationDeterminator.LOCATION_FROM_CONTENT));
- input = "rule MyRule \n" + " when \n" + " eval( param.getMethod().get";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_EVAL,
- location.getType() );
- assertEquals( "param.getMethod().get",
- location.getProperty( LocationDeterminator.LOCATION_EVAL_CONTENT ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from myGlobal.getList() \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " eval( param.getMethod(\"someStringWith)))\").get";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_EVAL,
- location.getType() );
- assertEquals( "param.getMethod(\"someStringWith)))\").get",
- location.getProperty( LocationDeterminator.LOCATION_EVAL_CONTENT ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from getDroolsFunction() \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " eval( param.getMethod(\"someStringWith(((\").get";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_EVAL,
- location.getType() );
- assertEquals( "param.getMethod(\"someStringWith(((\").get",
- location.getProperty( LocationDeterminator.LOCATION_EVAL_CONTENT ) );
+ /** FROM ACCUMULATE */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate ( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_ACCUMULATE, location.getType());
- input = "rule MyRule \n" + " when \n" + " eval( true )";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate(";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_ACCUMULATE, location.getType());
- input = "rule MyRule \n" + " when \n" + " eval( param.getProperty(name).isTrue() )";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( type == $likes ), \n" +
+ " init( int total = 0; ), \n" +
+ " action( total += $cheese.getPrice(); ), \n" +
+ " result( new Integer( total ) ) \n" +
+ " ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
- input = "rule MyRule \n" + " when \n" + " eval( param.getProperty(\"someStringWith(((\").isTrue() )";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( type == $likes ), \n" +
+ " init( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_ACCUMULATE_INIT_INSIDE, location.getType());
+ assertEquals("", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_INIT_CONTENT));
- input = "rule MyRule \n" + " when \n" + " eval( param.getProperty((((String) s) )";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_INSIDE_EVAL,
- location.getType() );
- assertEquals( "param.getProperty((((String) s) )",
- location.getProperty( LocationDeterminator.LOCATION_EVAL_CONTENT ) );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( type == $likes ), \n" +
+ " init( int total = 0; ), \n" +
+ " action( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_ACCUMULATE_ACTION_INSIDE, location.getType());
+ assertEquals("int total = 0; ", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_INIT_CONTENT));
+ assertEquals("", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_ACTION_CONTENT));
- input = "rule MyRule \n" + " when \n" + " eval( param.getProperty((((String) s))))";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( type == $likes ), \n" +
+ " init( int total = 0; ), \n" +
+ " action( total += $cheese.getPrice(); ), \n" +
+ " result( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_ACCUMULATE_RESULT_INSIDE, location.getType());
+ assertEquals("int total = 0; ", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_INIT_CONTENT));
+ assertEquals("total += $cheese.getPrice(); ", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_ACTION_CONTENT));
+ assertEquals("", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_RESULT_CONTENT));
- input = "rule MyRule \n" + " when \n" + " eval( true ) \n" + " ";
- location = LocationDeterminator.getLocationInCondition( input );
- assertEquals( LocationDeterminator.LOCATION_BEGIN_OF_CONDITION,
- location.getType() );
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( type == $likes ), \n" +
+ " init( int total =";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_ACCUMULATE_INIT_INSIDE, location.getType());
+ assertEquals("int total =", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_INIT_CONTENT));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( type == $likes ), \n" +
+ " init( int total = 0; ), \n" +
+ " action( total += $ch";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_ACCUMULATE_ACTION_INSIDE, location.getType());
+ assertEquals("int total = 0; ", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_INIT_CONTENT));
+ assertEquals("total += $ch", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_ACTION_CONTENT));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( type == $likes ), \n" +
+ " init( int total = 0; ), \n" +
+ " action( total += $cheese.getPrice(); ), \n" +
+ " result( new Integer( tot";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_ACCUMULATE_RESULT_INSIDE, location.getType());
+ assertEquals("int total = 0; ", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_INIT_CONTENT));
+ assertEquals("total += $cheese.getPrice(); ", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_ACTION_CONTENT));
+ assertEquals("new Integer( tot", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_FROM_ACCUMULATE_RESULT_CONTENT));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Cheese", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( type ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Cheese", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("type", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from accumulate( \n" +
+ " $cheese : Cheese( type == ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Cheese", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("type", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+
+ /** FROM COLLECT */
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from collect ( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_COLLECT, location.getType());
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from collect(";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_FROM_COLLECT, location.getType());
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from collect ( \n" +
+ " Cheese( type == $likes )" +
+ " ) \n" +
+ " ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_BEGIN_OF_CONDITION, location.getType());
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from collect ( \n" +
+ " Cheese( ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_START, location.getType());
+ assertEquals("Cheese", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from collect ( \n" +
+ " Cheese( type ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_OPERATOR, location.getType());
+ assertEquals("Cheese", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("type", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
+
+ input =
+ "rule MyRule \n" +
+ " when \n" +
+ " Class ( property > 0 ) from collect ( \n" +
+ " Cheese( type == ";
+ location = LocationDeterminator.getLocationInCondition(input);
+ assertEquals(LocationDeterminator.LOCATION_INSIDE_CONDITION_ARGUMENT, location.getType());
+ assertEquals("Cheese", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_CLASS_NAME));
+ assertEquals("type", location.getProperty(LocationDeterminator.LOCATION_PROPERTY_PROPERTY_NAME));
}
-
+
}
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete)
Deleted: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ReteooLayoutFactoryTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ReteooLayoutFactoryTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ReteooLayoutFactoryTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,209 +0,0 @@
-package org.drools.ide.editors.rete;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.drools.PackageIntegrationException;
-import org.drools.RuleBase;
-import org.drools.compiler.DroolsParserException;
-import org.drools.ide.editors.rete.model.ReteGraph;
-import org.drools.reteoo.AlphaNodeVertex;
-import org.drools.reteoo.BaseVertex;
-import org.drools.reteoo.LeftInputAdapterNodeVertex;
-import org.drools.reteoo.ObjectTypeNodeVertex;
-import org.drools.reteoo.ReteVertex;
-import org.drools.reteoo.ReteooVisitor;
-import org.drools.reteoo.TerminalNodeVertex;
-
-/**
- *
- * Integration-like tests
- *
- * Testing {@link ReteooLayoutFactory}
- * It is using following components:
- * {@link Row},
- * {@link RowList},
- * org.drools.reteoo.*Vertex,
- * org.drools.ide.editors.rete.model.*
- *
- * @author Ahti Kitsik
- *
- */
-public class ReteooLayoutFactoryTest extends TestCase {
-
- /**
- * Constructor.
- *
- * @param name case name
- */
- public ReteooLayoutFactoryTest(String name) {
- super( name );
- }
-
- /**
- * Test method for {@link org.drools.ide.editors.rete.ReteooLayoutFactory#calculateReteRows(org.drools.reteoo.BaseVertex)}.
- * @throws IOException
- * @throws DroolsParserException
- * @throws PackageIntegrationException
- */
- public final void testCalculateReteRows() throws IOException,
- PackageIntegrationException,
- DroolsParserException {
- ReteGraph graph = new ReteGraph();
- BaseVertex root = loadRete( graph );
- final RowList rows = ReteooLayoutFactory.calculateReteRows( root );
-
- int rownum = rows.getDepth();
-
- assertEquals( 5,
- rownum );
-
- int[] expectedDepths = new int[]{-1, 0, 1, 2, 3};
- int[] expectedSizes = new int[]{1, 1, 2, 2, 2};
-
- for ( int j = 0; j < rownum; j++ ) {
- final Row row = rows.get( j );
- final int rowDepth = row.getDepth();
- assertEquals( expectedDepths[j],
- rowDepth );
- assertEquals( expectedSizes[j],
- row.getVertices().size() );
- }
-
- }
-
- /**
- * Test method for {@link org.drools.ide.editors.rete.ReteooLayoutFactory#layoutRowList(org.drools.ide.editors.rete.model.ReteGraph, org.drools.ide.editors.rete.RowList)}.
- *
- * @throws IOException
- * @throws DroolsParserException
- * @throws PackageIntegrationException
- */
- public final void testLayoutRowList() throws PackageIntegrationException,
- DroolsParserException,
- IOException {
- ReteGraph graph = new ReteGraph();
- BaseVertex root = loadRete( graph );
- final RowList rows = ReteooLayoutFactory.calculateReteRows( root );
-
- ReteooLayoutFactory.layoutRowList( graph,
- rows );
-
- final List nodes = graph.getChildren();
-
- BaseVertex[] yOrder = (BaseVertex[]) nodes.toArray( new BaseVertex[0] );
- Arrays.sort( yOrder,
- new Comparator() {
- public int compare(Object o1,
- Object o2) {
- BaseVertex v1 = (BaseVertex) o1;
- BaseVertex v2 = (BaseVertex) o2;
- int y1 = v1.getLocation().y;
- int y2 = v2.getLocation().y;
- return new Integer( y1 ).compareTo( new Integer( y2 ) );
- }
-
- } );
-
- Class[] expectedTypes = new Class[]{ReteVertex.class, ObjectTypeNodeVertex.class, AlphaNodeVertex.class, AlphaNodeVertex.class, LeftInputAdapterNodeVertex.class, LeftInputAdapterNodeVertex.class, TerminalNodeVertex.class,
- TerminalNodeVertex.class};
-
- for ( int i = 0; i < yOrder.length; i++ ) {
- assertEquals( expectedTypes[i],
- yOrder[i].getClass() );
- if ( i > 0 ) {
- // If current vertex has same type as previous then
- // y-pos should match and x-pos should not match.
- // If type is different then y-pos should *not* match.
-
- BaseVertex current = yOrder[i];
- BaseVertex previous = yOrder[i - 1];
- if ( current.getClass().equals( previous.getClass() ) ) {
- assertEquals( current.getLocation().y,
- previous.getLocation().y );
- assertNotSame( new Integer( current.getLocation().x ),
- new Integer( previous.getLocation().x ) );
- } else {
- assertNotSame( new Integer( current.getLocation().y ),
- new Integer( previous.getLocation().y ) );
- }
- }
- }
-
- }
-
- private BaseVertex loadRete(ReteGraph graph) throws IOException,
- DroolsParserException,
- PackageIntegrationException {
- final InputStream is = getClass().getClassLoader().getResourceAsStream( "simplerule.drl" );
- String drl = streamToString( is );
-
- final RuleBase ruleBase = ReteViewer.parseRuleBase( drl,
- null );
-
- final ReteooVisitor visitor = new ReteooVisitor( graph );
- visitor.visit( ruleBase );
-
- BaseVertex root = visitor.getRootVertex();
- return root;
- }
-
- private String streamToString(InputStream is) throws IOException {
- byte[] buffer = new byte[4096];
- OutputStream outputStream = new ByteArrayOutputStream();
-
- while ( true ) {
- int read = is.read( buffer );
-
- if ( read == -1 ) {
- break;
- }
-
- outputStream.write( buffer,
- 0,
- read );
- }
-
- outputStream.close();
- is.close();
-
- return outputStream.toString();
- }
-
- /**
- * Used by simplerule.drl
- *
- */
- public static class Message {
- public static final int HELLO = 0;
- public static final int GOODBYE = 1;
-
- private String message;
-
- private int status;
-
- public String getMessage() {
- return this.message;
- }
-
- public void setMessage(final String message) {
- this.message = message;
- }
-
- public int getStatus() {
- return this.status;
- }
-
- public void setStatus(final int status) {
- this.status = status;
- }
- }
-
-}
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ReteooLayoutFactoryTest.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ReteooLayoutFactoryTest.java)
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ReteooLayoutFactoryTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ReteooLayoutFactoryTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -0,0 +1,213 @@
+package org.drools.ide.editors.rete;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.drools.PackageIntegrationException;
+import org.drools.RuleBase;
+import org.drools.compiler.DroolsParserException;
+import org.drools.ide.editors.rete.model.ReteGraph;
+import org.drools.reteoo.AlphaNodeVertex;
+import org.drools.reteoo.BaseVertex;
+import org.drools.reteoo.LeftInputAdapterNodeVertex;
+import org.drools.reteoo.ObjectTypeNodeVertex;
+import org.drools.reteoo.ReteVertex;
+import org.drools.reteoo.ReteooVisitor;
+import org.drools.reteoo.TerminalNodeVertex;
+
+/**
+ *
+ * Integration-like tests
+ *
+ * Testing {@link ReteooLayoutFactory}
+ * It is using following components:
+ * {@link Row},
+ * {@link RowList},
+ * org.drools.reteoo.*Vertex,
+ * org.drools.ide.editors.rete.model.*
+ *
+ * @author Ahti Kitsik
+ *
+ */
+public class ReteooLayoutFactoryTest extends TestCase {
+
+ /**
+ * Constructor.
+ *
+ * @param name case name
+ */
+ public ReteooLayoutFactoryTest(String name) {
+ super( name );
+ }
+
+ /**
+ * Test method for {@link org.drools.ide.editors.rete.ReteooLayoutFactory#calculateReteRows(org.drools.reteoo.BaseVertex)}.
+ * @throws IOException
+ * @throws DroolsParserException
+ * @throws PackageIntegrationException
+ * @throws DroolsParserException
+ * @throws PackageIntegrationException
+ */
+ public final void testCalculateReteRows() throws IOException,
+ PackageIntegrationException,
+ DroolsParserException {
+ ReteGraph graph = new ReteGraph();
+ BaseVertex root = loadRete( graph );
+ final RowList rows = ReteooLayoutFactory.calculateReteRows( root );
+
+ int rownum = rows.getDepth();
+
+ assertEquals( 5,
+ rownum );
+
+ int[] expectedDepths = new int[]{-1, 0, 1, 2, 3};
+ int[] expectedSizes = new int[]{1, 1, 2, 2, 2};
+
+ for ( int j = 0; j < rownum; j++ ) {
+ final Row row = rows.get( j );
+ final int rowDepth = row.getDepth();
+ assertEquals( expectedDepths[j],
+ rowDepth );
+ assertEquals( expectedSizes[j],
+ row.getVertices().size() );
+ }
+
+ }
+
+ /**
+ * Test method for {@link org.drools.ide.editors.rete.ReteooLayoutFactory#layoutRowList(org.drools.ide.editors.rete.model.ReteGraph, org.drools.ide.editors.rete.RowList)}.
+ *
+ * @throws IOException
+ * @throws DroolsParserException
+ * @throws PackageIntegrationException
+ * @throws DroolsParserException
+ * @throws PackageIntegrationException
+ */
+ public final void testLayoutRowList() throws IOException,
+ PackageIntegrationException,
+ DroolsParserException {
+ ReteGraph graph = new ReteGraph();
+ BaseVertex root = loadRete( graph );
+ final RowList rows = ReteooLayoutFactory.calculateReteRows( root );
+
+ ReteooLayoutFactory.layoutRowList( graph,
+ rows );
+
+ final List nodes = graph.getChildren();
+
+ BaseVertex[] yOrder = (BaseVertex[]) nodes.toArray( new BaseVertex[0] );
+ Arrays.sort( yOrder,
+ new Comparator() {
+ public int compare(Object o1,
+ Object o2) {
+ BaseVertex v1 = (BaseVertex) o1;
+ BaseVertex v2 = (BaseVertex) o2;
+ int y1 = v1.getLocation().y;
+ int y2 = v2.getLocation().y;
+ return new Integer( y1 ).compareTo( new Integer( y2 ) );
+ }
+
+ } );
+
+ Class[] expectedTypes = new Class[]{ReteVertex.class, ObjectTypeNodeVertex.class, AlphaNodeVertex.class, AlphaNodeVertex.class, LeftInputAdapterNodeVertex.class, LeftInputAdapterNodeVertex.class, TerminalNodeVertex.class,
+ TerminalNodeVertex.class};
+
+ for ( int i = 0; i < yOrder.length; i++ ) {
+ assertEquals( expectedTypes[i],
+ yOrder[i].getClass() );
+ if ( i > 0 ) {
+ // If current vertex has same type as previous then
+ // y-pos should match and x-pos should not match.
+ // If type is different then y-pos should *not* match.
+
+ BaseVertex current = yOrder[i];
+ BaseVertex previous = yOrder[i - 1];
+ if ( current.getClass().equals( previous.getClass() ) ) {
+ assertEquals( current.getLocation().y,
+ previous.getLocation().y );
+ assertNotSame( new Integer( current.getLocation().x ),
+ new Integer( previous.getLocation().x ) );
+ } else {
+ assertNotSame( new Integer( current.getLocation().y ),
+ new Integer( previous.getLocation().y ) );
+ }
+ }
+ }
+
+ }
+
+ private BaseVertex loadRete(ReteGraph graph) throws IOException,
+ PackageIntegrationException,
+ DroolsParserException {
+ final InputStream is = getClass().getClassLoader().getResourceAsStream( "simplerule.drl" );
+ String drl = streamToString( is );
+
+ final RuleBase ruleBase = ReteViewer.parseRuleBase( drl,
+ null );
+
+ final ReteooVisitor visitor = new ReteooVisitor( graph );
+ visitor.visit( ruleBase );
+
+ BaseVertex root = visitor.getRootVertex();
+ return root;
+ }
+
+ private String streamToString(InputStream is) throws IOException {
+ byte[] buffer = new byte[4096];
+ OutputStream outputStream = new ByteArrayOutputStream();
+
+ while ( true ) {
+ int read = is.read( buffer );
+
+ if ( read == -1 ) {
+ break;
+ }
+
+ outputStream.write( buffer,
+ 0,
+ read );
+ }
+
+ outputStream.close();
+ is.close();
+
+ return outputStream.toString();
+ }
+
+ /**
+ * Used by simplerule.drl
+ *
+ */
+ public static class Message {
+ public static final int HELLO = 0;
+ public static final int GOODBYE = 1;
+
+ private String message;
+
+ private int status;
+
+ public String getMessage() {
+ return this.message;
+ }
+
+ public void setMessage(final String message) {
+ this.message = message;
+ }
+
+ public int getStatus() {
+ return this.status;
+ }
+
+ public void setStatus(final int status) {
+ this.status = status;
+ }
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,223 +0,0 @@
-package org.drools.ide.editors.rete;
-
-import java.io.InputStream;
-import java.io.StringBufferInputStream;
-
-import junit.framework.TestCase;
-
-import org.drools.ide.editors.DRLRuleEditor2;
-import org.drools.ide.editors.ZoomInAction2;
-import org.drools.ide.editors.ZoomOutAction2;
-import org.eclipse.core.filebuffers.manipulation.ContainerCreator;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.gef.ui.actions.ZoomComboContributionItem;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-
-public class ZoomControlTest extends TestCase {
-
- private IFile fFile1;
- private IFile fFile2;
-
- private final static IProgressMonitor NULL_MONITOR = new NullProgressMonitor();
-
- private static final String ORIGINAL_CONTENT = "package test\nrule \"a\"\nend\nrule \"b\"\nend";
-
- public ZoomControlTest(String name) {
- super( name );
- }
-
- private String getOriginalContent() {
- return ORIGINAL_CONTENT;
- }
-
- /*
- * @see junit.framework.TestCase#setUp()
- */
- protected void setUp() throws Exception {
- IFolder folder = createFolder( "ZoomControlTestProject/multipleEditorTest/" );
- fFile1 = createFile( folder,
- "myfile1.drl",
- getOriginalContent() );
- fFile2 = createFile( folder,
- "myfile2.drl",
- getOriginalContent() );
- }
-
- /*
- * @see junit.framework.TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- deleteProject( "ZoomControlTestProject" );
- fFile1 = null;
- fFile2 = null;
- }
-
- public void testMultipleEditors() throws PartInitException {
-
- IWorkbench workbench = PlatformUI.getWorkbench();
- IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage();
-
- DRLRuleEditor2 part1 = (DRLRuleEditor2) IDE.openEditor( page,
- fFile1 );
- DRLRuleEditor2 part2 = (DRLRuleEditor2) IDE.openEditor( page,
- fFile2 );
-
- checkVisibility( part1,
- part2,
- false );
-
- // Editor1 active
- page.activate( part1 );
- checkVisibility( part1,
- part2,
- false );
-
- part1.setActivePage( 1 );
- checkVisibility( part1,
- part2,
- true );
-
- part1.setActivePage( 0 );
- checkVisibility( part1,
- part2,
- false );
-
- part1.setActivePage( 1 );
- checkVisibility( part1,
- part2,
- true );
-
- // Editor2 active
- page.activate( part2 );
- part2.setActivePage( 0 );
- checkVisibility( part1,
- part2,
- false );
-
- part2.setActivePage( 1 );
- checkVisibility( part1,
- part2,
- true );
-
- // Editor1 active
- page.activate( part1 );
- checkVisibility( part1,
- part2,
- true );
-
- // Editor2 active
- page.activate( part2 );
- checkVisibility( part1,
- part2,
- true );
-
- part2.setActivePage( 0 );
- checkVisibility( part1,
- part2,
- false );
-
- // Editor1 active
- page.activate( part1 );
- checkVisibility( part1,
- part2,
- true );
- part2.setActivePage( 0 );
- checkVisibility( part1,
- part2,
- false );
-
- }
-
- public void testSecondEditorAfterFirst() throws PartInitException {
-
- IWorkbench workbench = PlatformUI.getWorkbench();
- IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage();
-
- DRLRuleEditor2 part1 = (DRLRuleEditor2) IDE.openEditor( page,
- fFile1 );
-
- // Editor1 active
- page.activate( part1 );
- part1.setActivePage( 1 );
- checkVisibility( part1,
- null,
- true );
-
- DRLRuleEditor2 part2 = (DRLRuleEditor2) IDE.openEditor( page,
- fFile2 );
- page.activate( part2 );
- checkVisibility( part1,
- part2,
- false );
-
- }
-
- private void checkVisibility(DRLRuleEditor2 part1,
- DRLRuleEditor2 part2,
- boolean enabled) {
- if ( part1 != null ) {
- checkVisibility( part1,
- enabled );
- }
-
- if ( part2 != null ) {
- checkVisibility( part2,
- enabled );
- }
- }
-
- private void checkVisibility(DRLRuleEditor2 editor,
- boolean enabled) {
- ZoomInAction2 zoomIn = (ZoomInAction2) editor.getAdapter( ZoomInAction2.class );
- ZoomOutAction2 zoomOut = (ZoomOutAction2) editor.getAdapter( ZoomOutAction2.class );
- ZoomComboContributionItem zitem = (ZoomComboContributionItem) editor.getAdapter( ZoomComboContributionItem.class );
-
- assertEquals( enabled,
- zoomIn.isEnabled() );
- assertEquals( enabled,
- zoomOut.isEnabled() );
- assertEquals( enabled,
- zitem.getZoomManager() != null );
-
- }
-
- private IFile createFile(IFolder folder,
- String name,
- String contents) throws CoreException {
- IFile file = folder.getFile( name );
- InputStream inputStream = new StringBufferInputStream( contents );
- file.create( inputStream,
- true,
- NULL_MONITOR );
- return file;
- }
-
- private IFolder createFolder(String portableFolderPath) throws CoreException {
- ContainerCreator creator = new ContainerCreator( ResourcesPlugin.getWorkspace(),
- new Path( portableFolderPath ) );
- IContainer container = creator.createContainer( NULL_MONITOR );
- return (IFolder) container;
- }
-
- private void deleteProject(String projectName) throws CoreException {
- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- IProject project = root.getProject( projectName );
- if ( project.exists() ) project.delete( true,
- true,
- NULL_MONITOR );
- }
-
-}
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java)
Modified: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/editors/test.dsl
===================================================================
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/wizard (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/wizard)
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/wizard/rule (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/wizard/rule)
Modified: labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/wizard/rule/DRLGenTemplateTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/java/org/drools/ide/wizard/rule/DRLGenTemplateTest.java 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/java/org/drools/ide/wizard/rule/DRLGenTemplateTest.java 2006-11-17 15:52:24 UTC (rev 7683)
@@ -8,43 +8,43 @@
import junit.framework.TestCase;
public class DRLGenTemplateTest extends TestCase {
-
+
public void testNewRule() throws Exception {
DRLGenerator gen = new DRLGenerator();
- InputStream result = gen.generateRule( "myPackage",
- getClass().getResourceAsStream( "new_rule.drl.template" ) );
-
- assertNotNull( result );
+ InputStream result = gen.generateRule("myPackage", getClass().getResourceAsStream( "new_rule.drl.template" ));
+
+ assertNotNull(result);
StringBuffer buf = getResult( result );
- assertTrue( buf.toString().indexOf( "package myPackage" ) > -1 );
- assertFalse( buf.toString().indexOf( "$date$" ) > -1 );
-
+ assertTrue(buf.toString().indexOf( "package myPackage" ) > -1);
+ assertFalse(buf.toString().indexOf( "$date$" ) > -1);
+
}
-
+
public void testNewPackage() throws Exception {
DRLGenerator gen = new DRLGenerator();
- InputStream result = gen.generatePackage( "myPackage",
- true,
- true,
- getClass().getResourceAsStream( "new_rule.drl.template" ) );
-
- assertNotNull( result );
+ InputStream result = gen.generatePackage("myPackage", true, true, getClass().getResourceAsStream( "new_rule.drl.template" ));
+
+ assertNotNull(result);
StringBuffer buf = getResult( result );
- assertTrue( buf.toString().indexOf( "package myPackage" ) > -1 );
- assertFalse( buf.toString().indexOf( "$date$" ) > -1 );
- assertFalse( buf.toString().indexOf( "$expander$" ) > -1 );
- assertFalse( buf.toString().indexOf( "$functions$" ) > -1 );
-
+ assertTrue(buf.toString().indexOf( "package myPackage" ) > -1);
+ assertFalse(buf.toString().indexOf( "$date$" ) > -1);
+ assertFalse(buf.toString().indexOf( "$expander$" ) > -1);
+ assertFalse(buf.toString().indexOf( "$functions$" ) > -1);
+
+
+
}
+
private StringBuffer getResult(InputStream result) throws IOException {
- BufferedReader reader = new BufferedReader( new InputStreamReader( result ) );
+ BufferedReader reader = new BufferedReader(new InputStreamReader(result));
String line = null;
StringBuffer buf = new StringBuffer();
- while ( (line = reader.readLine()) != null ) {
- buf.append( line + "\n" );
+ while ((line = reader.readLine()) != null) {
+ buf.append(line + "\n");
}
return buf;
}
-
+
+
}
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/resources (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/resources)
Deleted: labs/jbossrules/trunk/drools-ide-test/src/test/resources/simplerule.drl
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/resources/simplerule.drl 2006-11-14 19:21:59 UTC (rev 7597)
+++ labs/jbossrules/trunk/drools-ide-test/src/test/resources/simplerule.drl 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,24 +0,0 @@
-package org.drools.examples
-
-// Rules for ReteooLayoutFactoryTest
-
-import org.drools.ide.editors.rete.ReteooLayoutFactoryTest.Message;
-
-rule "Hello World"
- when
- m : Message( status == Message.HELLO, message : message )
- then
- System.out.println( message );
- m.setMessage( "Goodbye cruel world" );
- m.setStatus( Message.GOODBYE );
- modify( m );
-end
-
-rule "GoodBye"
- no-loop true
- when
- m : Message( status == Message.GOODBYE, message : message )
- then
- System.out.println( message );
- m.setMessage( message );
-end
Copied: labs/jbossrules/trunk/drools-ide-test/src/test/resources/simplerule.drl (from rev 7597, labs/jbossrules/branches/3.0.x/drools-ide-test/src/test/resources/simplerule.drl)
Modified: labs/jbossrules/trunk/drools-jsr94/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-jsr94/.classpath 2006-11-17 15:27:18 UTC (rev 7682)
+++ labs/jbossrules/trunk/drools-jsr94/.classpath 2006-11-17 15:52:24 UTC (rev 7683)
@@ -1,33 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
- <classpathentry kind="src" path="src/test/resources" output="target/test-classes"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="M2_REPO/jsr94/jsr94/1.1/jsr94-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-jci-core/1.0-406301/commons-jci-core-1.0-406301.jar"/>
- <classpathentry kind="var" path="M2_REPO/jsr94/jsr94-tck/1.0.3/jsr94-tck-1.0.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/colt/colt/1.2.0/colt-1.2.0.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/antlr/stringtemplate/2.3b6/stringtemplate-2.3b6.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.0ea8/antlr-3.0ea8.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.0.666/core-3.2.0.666.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-jci-eclipse/3.2.0.666/commons-jci-eclipse-3.2.0.666.jar"/>
- <classpathentry kind="src" path="/drools-core"/>
- <classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
- <classpathentry kind="var" path="M2_REPO/jsr94/jsr94-sigtest/1.1/jsr94-sigtest-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
- <classpathentry kind="var" path="M2_REPO/janino/janino/2.4.3/janino-2.4.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/jung/jung/1.7.2/jung-1.7.2.jar"/>
- <classpathentry kind="src" path="/drools-compiler"/>
- <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-jci-janino/2.4.3/commons-jci-janino-2.4.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging-api/1.0.4/commons-logging-api-1.0.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.jar"/>
-</classpath>
\ No newline at end of file
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="var" path="M2_REPO/jsr94/jsr94/1.1/jsr94-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-jci-core/1.0-406301/commons-jci-core-1.0-406301.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jsr94/jsr94-tck/1.0.3/jsr94-tck-1.0.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/antlr/stringtemplate/2.3b6/stringtemplate-2.3b6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.0ea8/antlr-3.0ea8.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.0.666/core-3.2.0.666.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-jci-eclipse/3.2.0.666/commons-jci-eclipse-3.2.0.666.jar"/>
+ <classpathentry kind="src" path="/drools-core"/>
+ <classpathentry kind="var" path="M2_REPO/xstream/xstream/1.1.3/xstream-1.1.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xpp3/xpp3/1.1.3.4.O/xpp3-1.1.3.4.O.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jsr94/jsr94-sigtest/1.1/jsr94-sigtest-1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
+ <classpathentry kind="var" path="M2_REPO/janino/janino/2.4.3/janino-2.4.3.jar"/>
+ <classpathentry kind="src" path="/drools-compiler"/>
+ <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/org/apache/commons/commons-jci-janino/2.4.3/commons-jci-janino-2.4.3.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging-api/1.0.4/commons-logging-api-1.0.4.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
More information about the jboss-svn-commits
mailing list