[jboss-svn-commits] JBL Code SVN: r13620 - in labs/jbossrules/branches/mvel-tooling-2007-06-30: documentation/manual/en/Chapter-Deployment and 10 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jul 19 00:28:05 EDT 2007
Author: pombredanne
Date: 2007-07-19 00:28:05 -0400 (Thu, 19 Jul 2007)
New Revision: 13620
Added:
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFComplex.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFConstraintEditor.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFEditConstraints.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFGroupProperties.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFNameGroups.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFNewWizard.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFSplitType.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RuleFlow.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RuleFlowSimple.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-RuleFlow.xml
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/compoundValueRestriction.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/compoundValueRestriction.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraint.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraint.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraintGroup.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraintGroup.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraints.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraints.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/fieldConstraint.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/fieldConstraint.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/inlineEvalConstraint.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/inlineEvalConstraint.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literal.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literal.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literalRestriction.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literalRestriction.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/regexpRestriction.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/regexpRestriction.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValue.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValue.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValueRestriction.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValueRestriction.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/singleValueRestriction.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/singleValueRestriction.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/variableRestriction.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/variableRestriction.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/CheeseEqual.java
Removed:
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/column.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/column.svg
Modified:
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Deployment/Section-Deployment.xml
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-Package.xml
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-Rule.xml
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/lhs.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/lhs.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/operator.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/operator.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/pattern.png
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/pattern.svg
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/pattern.vsd
labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/master.xml
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/ClassObjectType.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/common/EqualityKey.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/reteoo/Rete.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/spi/ObjectType.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java
labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/spi/MockObjectType.java
Log:
Ported r13618 from trunk to branch mvel-tooling-2007-06-30.
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Deployment/Section-Deployment.xml
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Deployment/Section-Deployment.xml 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Deployment/Section-Deployment.xml 2007-07-19 04:28:05 UTC (rev 13620)
@@ -1,200 +1,292 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE section PUBLIC "-//OASIS//DTD Simplified DocBook XML V1.0//EN"
-"http://www.oasis-open.org/docbook/xml/simple/1.0/sdocbook.dtd">
-<section>
- <title>Deployment options</title>
-
- <para>Once you have rules integrated in your application (or ideally before)
- you will need to plan how to deploy rules along with your application.
- Typically rules are used to allow changes to application business logic
- without re-deploying the whole application. This means that the rules must
- be provided to the application as data, not as part of the application (eg
- embedded in the classpath).</para>
-
- <para>Drools 3.0 is primarily a Rule Engine, which leaves open many options
- for rule deployment. The focus of this chapter is on deployment options, and
- the API. A future version of Drools will have a Rule Server component for
- managing multiple versions of rules (including locking, and automatic
- deployment).</para>
-
- <para>As every organisation is subtly different, and different deployment
- patterns will be needed. Many organisations have (or should have)
- configuration management processes for changes to production systems. It is
- best to think of rules as "data" rather then software in that regard.
- However, as rules can contain a considerable amount of powerful logic,
- proper procedures should be used in testing and verifying rule changes, and
- approving changes before exposing them to the world.</para>
-
- <section>
- <title>Deployable objects, RuleBase, Package etc.</title>
-
- <para>In the simplest possible scenario, you would compile and construct a
- rulebase, and then cache that rulebase. That rulebase can be shared across
- threads, spawning new working memories to process transactions (working
- memories are then discarded). This is essentually the stateless mode. To
- update the rulebase, a new rulebase is loaded, and then swapped out with
- the cached rulebase (any existing threads that happen to be using the old
- rulebase will continue to use it until they are finished, in which case it
- will eventually be garbage collected).</para>
-
- <para>There are many more sophisticated approaches to the above - Drools
- rule engine is very dynamic, meaning pretty much all the components can be
- swapped out on the fly (rules, packages) even when there are *existing*
- working memories in use. For instance rules can be retracted from a
- rulebase which has many in-use working memories - the RETE network will
- then be adjusted to remove that rule without having to assert all the
- facts again. Long running working memories are useful for complex
- applications where the rule engine builds up knowledge over time to assist
- with decision making for instance - it is in these cases that the dynamic-ness of the engine can really shine.</para>
-
- <section>
- <title>DRL and PackageDescr</title>
-
- <para>One option is to deploy the rules in source form. This leaves the
- runtime engine (which must include the compiler components) to compile
- the rules, and build the rule base. A similar approach is to deploy the
- "PackageDescr" object, which means that the rules are pre-parsed (for
- syntactic errors) but not compiled into the binary form. Use the
- PackageBuilder class to achieve this. You can of course use the XML form
- for the rules if needed. </para>
- <programlisting>PackageDescr, PackageBuilder, RuleBaseLoader</programlisting>
- </section>
-
- <section>
- <title>Package</title>
-
- <para>This option is the most flexible. In this case, Packages are built
- from DRL source using PackageBuilder - but it is the binary Package
- objects that are actually deployed. Packages can be merged together.
- That means a package containing perhaps a single new rule, or a change
- to an existing rule, can be built on its own, and then merged in with an
- existing package in an existing RuleBase. The rulebase can then notify
- existing working memories that a new rule exists (as the RuleBase keeps
- "weak" links back to the Working Memory instances that it spawned). The
- rulebase keeps a list of Packages, and to merge into a package, you will
- need to know which package you need to merge into (as obviously, only
- rules from the same package name can be merged together).</para>
-
- <para>Package objects themselves are serializable, hence they can be
- sent over a network, or bound to JNDI, Session etc. </para>
- <programlisting>PackageBuilder, RuleBase, org.drools.rule.Package</programlisting>
- </section>
-
- <section>
- <title>RuleBase</title>
-
- <para>Compiled Packages are added to rulebases. RuleBases are
- serializable, so they can be a binary deployment unit themselves. This
- can be a useful option for when rulebases are updated as a whole - for
- short lived working memories. If existing working memories need to have
- rules changed on the fly, then it is best to deploy Package objects.
- </para>
- <programlisting>RuleBase, RuleBaseLoader</programlisting>
- </section>
-
- <section>
- <title>Serializing</title>
-
- <para>Practically all of the rulebase related objects in Drools are
- serializable. For a working memory to be serializable, all of your
- objects must of course be serializable. So it is always possible to
- deploy remotely, and "bind" rule assets to JNDI as a means of using them
- in a container environment.</para>
- </section>
-
- <para>
- Please note that when using package builder, you may want to check the hasError() flag before continuing deploying your rules (if there are errors, you can get them from the package builder - rather then letting it fail later on when you try to deploy).
- </para>
-
- </section>
-
- <section>
- <title>Deployment patterns</title>
-
- <section>
- <title>In process rule building</title>
-
- <para>In this case, rules are provided to the runtime system in source
- form. The runtime system contains the drools-compiler component to build
- the rules. This is the simplest approach.</para>
- </section>
-
- <section>
- <title>Out of process rule building</title>
-
- <para>In this case, rules are build into their binary process outside of
- the runtime system (for example in a deployment server). The chief
- advantage of deploying from an outside process is that the runtime
- system can have minimal dependencies (just one jar). It also means that
- any errors to do with compiling are well contained and and known before
- deployment to the running system is attempted.</para>
-
- <para>
- Use the PackageBuilder class out of process, and then use getPackage() to get the Package object. You can then (for example) serialize the Package object to a file (using standard java serialization). The runtime system, which only needs drools-core, can then load the file using RuleBaseFactory.newRuleBase().addPackage(deserialized package object).
- </para>
- </section>
-
- <section>
- <title>Some deployment scenarios</title>
- <para>This section contains some suggested deployment scenarios, of course you can use a variety of techologies as alternatives to the ones in the diagram.</para>
- <section>
- <title>Pull style</title>
-
- <para>In this scenario, rules are pulled from the rule repository into
- the runtime system. The repository can be as simple as a file system,
- or a database. The trigger to pull the rules could be a timed task (to
- check for changes) or a request to the runtime system (perhaps via a
- JMX interface). This is possibly the more common scenario.</para>
-
-
- </section>
-
- <screenshot>
- <mediaobject>
- <imageobject>
- <imagedata fileref="DeploymentPatterns1.png" />
- </imageobject>
- </mediaobject>
- </screenshot>
-
- <section>
- <title>Push style</title>
-
- <para>In this scenario, the rule deployment process/repository
- "pushes" rules into the runtime system (either in source or binary
- form, as described above). This gives more control as to when the new
- rules take effect.</para>
- </section>
- <screenshot>
- <mediaobject>
- <imageobject>
- <imagedata fileref="DeploymentPatterns2.png" />
- </imageobject>
- </mediaobject>
- </screenshot>
-
- </section>
- </section>
-
- <section>
- <title>Web Services</title>
-
- <para>A possible deployment pattern for rules are to expose the rules as a
- web service. There a many ways to achieve this, but possibly the simplest
- way at present do achieve it is to use an interface-first process: Define
- the "facts" classes/templates that the rules will use in terms of XML
- Schema - and then use binding technologies to generate binding objects for
- the rules to actually operate against. A reverse possibility is to use a
- XSD/WSDL generator to generate XML bindings for classes that are hand
- built (which the rules work against). It is expected in a future version
- there will be an automated tool to expose rules as web services (and
- possibly use XSDs as facts for the rules to operate on).</para>
- </section>
-
- <section>
- <title>Future considerations</title>
-
- <para>A future release of Drools will contain a rule repository (server)
- component that will directly support the above patterns, and more.</para>
- </section>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD Simplified DocBook XML V1.0//EN"
+"http://www.oasis-open.org/docbook/xml/simple/1.0/sdocbook.dtd">
+<section>
+ <title>Deployment options</title>
+
+ <para>Once you have rules integrated in your application (or ideally before)
+ you will need to plan how to deploy rules along with your application.
+ Typically rules are used to allow changes to application business logic
+ without re-deploying the whole application. This means that the rules must
+ be provided to the application as data, not as part of the application (eg
+ embedded in the classpath).</para>
+
+ <para>The recommended way of deploying depends on how you are managing your
+ rules. If you are using the BRMS, you should use the RuleAgent (the detailed
+ documentation for this is in the chapter on the BRMS). You can still use the
+ RuleAgent even without the BRMS, in which case you will need to use ant (or
+ similar) to created serialized "Package" objects of your rules.</para>
+
+ <para>As every organisation is subtly different, and different deployment
+ patterns will be needed. Many organisations have (or should have)
+ configuration management processes for changes to production systems. It is
+ best to think of rules as "data" rather then software in that regard.
+ However, as rules can contain a considerable amount of powerful logic,
+ proper procedures should be used in testing and verifying rule changes, and
+ approving changes before exposing them to the world. If you need to "roll
+ your own" deployment, or have specific deployment needs, the information is
+ provided in this chapter for your reference, but for the most part, people
+ should be able to deploy either as the agent, or in the classpath.</para>
+
+ <section>
+ <title>Deployment using the RuleAgent</title>
+
+ <para>The easiest and most automated way to deploy rules is to use the
+ RuleAgent. This is described in detail in the BRMS user guide. In short,
+ the rule agent requires that you build binary packages of rules outside of
+ "your" application (ie the application that is using rules).</para>
+
+ <para>The upside of this is that your application only needs to include
+ drools-core.jar - no other dependencies (of course you need the classes
+ that form the model that the rules use as well !). It also means the agent
+ can be configured to automatically monitor for rule changes - directly to
+ the BRMS, or from a file/directory.</para>
+
+ <para>To use the rule agent in your application use the following
+ code:</para>
+
+ <programlisting>RuleAgent agent = RuleAgent.newRuleAgent("/MyRules.properties");
+RuleBase rb = agent.getRuleBase();
+rb.newStatefulSession....
+//now assert your facts into the session and away you go !
+</programlisting>
+
+ <para>The MyRules.properties is a configyration file which (in the above
+ case) should be on the root of your classpath:</para>
+
+ <programlisting>##
+## RuleAgent configuration file example
+##
+
+
+
+dir=/my/dir
+url=http://some.url/here http://some.url/here
+localCacheDir=/foo/bar/cache
+poll=30
+
+
+name=MyConfig</programlisting>
+
+ <para>In the above config, the agent will look for binary package files in
+ /my/dir, and also at the specified URLs. It will pick up any changes for
+ these packages and apply them to the rulebase.</para>
+
+ <para>If you are using the BRMS, you can use the url feature. You can use
+ "file" or "dir" if the packages need to be manually migrated to your
+ production servers.</para>
+ </section>
+
+ <section>
+ <title>Deployment using drl source</title>
+
+ <para>In some cases people may wish to deploy drl source. In that case all
+ the drools-compiler dependencies will need to be on the classpath for your
+ application. You can then load drl from file, classpath, or a database
+ (for example) and compile as needed. The trick, as always, is knowing when
+ rules change (this is also called "in process" deployment as described
+ below).</para>
+ </section>
+
+ <section>
+ <title>Deploying rules in your classpath</title>
+
+ <para>If you have rules which do not change separate to your application,
+ you can put packaged into your classpath. This can be done either as
+ source (in which case the drl can be compiled, and the rulebase cached the
+ first time it is needed) or else you can pre-compile packages, and just
+ include the binary packages in the classpath.</para>
+
+ <para>Keep in mind with this approach to make a rule change, you will both
+ need to deploy your app (and if its a server - restart the
+ application).</para>
+ </section>
+
+ <section>
+ <title>Deployable objects, RuleBase, Package etc.</title>
+
+ <para>In the simplest possible scenario, you would compile and construct a
+ rulebase inside your application (from drl source), and then cache that
+ rulebase. That rulebase can be shared across threads, spawning new working
+ memories to process transactions (working memories are then discarded).
+ This is essentually the stateless mode. To update the rulebase, a new
+ rulebase is loaded, and then swapped out with the cached rulebase (any
+ existing threads that happen to be using the old rulebase will continue to
+ use it until they are finished, in which case it will eventually be
+ garbage collected).</para>
+
+ <para>There are many more sophisticated approaches to the above - Drools
+ rule engine is very dynamic, meaning pretty much all the components can be
+ swapped out on the fly (rules, packages) even when there are *existing*
+ working memories in use. For instance rules can be retracted from a
+ rulebase which has many in-use working memories - the RETE network will
+ then be adjusted to remove that rule without having to assert all the
+ facts again. Long running working memories are useful for complex
+ applications where the rule engine builds up knowledge over time to assist
+ with decision making for instance - it is in these cases that the
+ dynamic-ness of the engine can really shine.</para>
+
+ <section>
+ <title>DRL and PackageDescr</title>
+
+ <para>One option is to deploy the rules in source form. This leaves the
+ runtime engine (which must include the compiler components) to compile
+ the rules, and build the rule base. A similar approach is to deploy the
+ "PackageDescr" object, which means that the rules are pre-parsed (for
+ syntactic errors) but not compiled into the binary form. Use the
+ PackageBuilder class to achieve this. You can of course use the XML form
+ for the rules if needed.</para>
+
+ <programlisting>PackageDescr, PackageBuilder, RuleBaseLoader</programlisting>
+ </section>
+
+ <section>
+ <title>Package</title>
+
+ <para>This option is the most flexible. In this case, Packages are built
+ from DRL source using PackageBuilder - but it is the binary Package
+ objects that are actually deployed. Packages can be merged together.
+ That means a package containing perhaps a single new rule, or a change
+ to an existing rule, can be built on its own, and then merged in with an
+ existing package in an existing RuleBase. The rulebase can then notify
+ existing working memories that a new rule exists (as the RuleBase keeps
+ "weak" links back to the Working Memory instances that it spawned). The
+ rulebase keeps a list of Packages, and to merge into a package, you will
+ need to know which package you need to merge into (as obviously, only
+ rules from the same package name can be merged together).</para>
+
+ <para>Package objects themselves are serializable, hence they can be
+ sent over a network, or bound to JNDI, Session etc.</para>
+
+ <programlisting>PackageBuilder, RuleBase, org.drools.rule.Package</programlisting>
+ </section>
+
+ <section>
+ <title>RuleBase</title>
+
+ <para>Compiled Packages are added to rulebases. RuleBases are
+ serializable, so they can be a binary deployment unit themselves. This
+ can be a useful option for when rulebases are updated as a whole - for
+ short lived working memories. If existing working memories need to have
+ rules changed on the fly, then it is best to deploy Package objects.
+ Also beware that rulebases take more processing effort to serialize (may
+ be an issue for some large rulebases).</para>
+
+ <programlisting>RuleBase, RuleBaseLoader</programlisting>
+ </section>
+
+ <section>
+ <title>Serializing</title>
+
+ <para>Practically all of the rulebase related objects in Drools are
+ serializable. For a working memory to be serializable, all of your
+ objects must of course be serializable. So it is always possible to
+ deploy remotely, and "bind" rule assets to JNDI as a means of using them
+ in a container environment.</para>
+ </section>
+
+ <para>Please note that when using package builder, you may want to check
+ the hasError() flag before continuing deploying your rules (if there are
+ errors, you can get them from the package builder - rather then letting it
+ fail later on when you try to deploy).</para>
+ </section>
+
+ <section>
+ <title>Deployment patterns</title>
+
+ <section>
+ <title>In process rule building</title>
+
+ <para>In this case, rules are provided to the runtime system in source
+ form. The runtime system contains the drools-compiler component to build
+ the rules. This is the simplest approach.</para>
+ </section>
+
+ <section>
+ <title>Out of process rule building</title>
+
+ <para>In this case, rules are build into their binary process outside of
+ the runtime system (for example in a deployment server). The chief
+ advantage of deploying from an outside process is that the runtime
+ system can have minimal dependencies (just one jar). It also means that
+ any errors to do with compiling are well contained and and known before
+ deployment to the running system is attempted.</para>
+
+ <para>Use the PackageBuilder class out of process, and then use
+ getPackage() to get the Package object. You can then (for example)
+ serialize the Package object to a file (using standard java
+ serialization). The runtime system, which only needs drools-core, can
+ then load the file using
+ RuleBaseFactory.newRuleBase().addPackage(deserialized package
+ object).</para>
+ </section>
+
+ <section>
+ <title>Some deployment scenarios</title>
+
+ <para>This section contains some suggested deployment scenarios, of
+ course you can use a variety of techologies as alternatives to the ones
+ in the diagram.</para>
+
+ <section>
+ <title>Pull style</title>
+
+ <para>This pattern is what is used by the RuleAgent, by
+ default.</para>
+
+ <para>In this scenario, rules are pulled from the rule repository into
+ the runtime system. The repository can be as simple as a file system,
+ or a database. The trigger to pull the rules could be a timed task (to
+ check for changes) or a request to the runtime system (perhaps via a
+ JMX interface). This is possibly the more common scenario.</para>
+ </section>
+
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="DeploymentPatterns1.png" />
+ </imageobject>
+ </mediaobject>
+ </screenshot>
+
+ <section>
+ <title>Push style</title>
+
+ <para>In this scenario, the rule deployment process/repository
+ "pushes" rules into the runtime system (either in source or binary
+ form, as described above). This gives more control as to when the new
+ rules take effect.</para>
+ </section>
+
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="DeploymentPatterns2.png" />
+ </imageobject>
+ </mediaobject>
+ </screenshot>
+ </section>
+ </section>
+
+ <section>
+ <title>Web Services</title>
+
+ <para>A possible deployment pattern for rules are to expose the rules as a
+ web service. There a many ways to achieve this, but possibly the simplest
+ way at present do achieve it is to use an interface-first process: Define
+ the "facts" classes/templates that the rules will use in terms of XML
+ Schema - and then use binding technologies to generate binding objects for
+ the rules to actually operate against. A reverse possibility is to use a
+ XSD/WSDL generator to generate XML bindings for classes that are hand
+ built (which the rules work against). It is expected in a future version
+ there will be an automated tool to expose rules as web services (and
+ possibly use XSDs as facts for the rules to operate on).</para>
+ </section>
+
+ <section>
+ <title>Future considerations</title>
+
+ <para>A future release of Drools will contain a rule repository (server)
+ component that will directly support the above patterns, and more.</para>
+ </section>
</section>
\ No newline at end of file
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFComplex.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/RFComplex.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFConstraintEditor.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/RFConstraintEditor.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFEditConstraints.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/RFEditConstraints.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFGroupProperties.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/RFGroupProperties.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFNameGroups.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/RFNameGroups.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFNewWizard.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/RFNewWizard.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RFSplitType.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/RFSplitType.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RuleFlow.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/RuleFlow.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/RuleFlowSimple.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/RuleFlowSimple.png)
===================================================================
(Binary files differ)
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-Package.xml
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-Package.xml 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-Package.xml 2007-07-19 04:28:05 UTC (rev 13620)
@@ -104,17 +104,19 @@
of the same identifier they must be of the same type and the all reference
the same global value. They are typically used to return data, such as a
log of actions, or provide data or services that the rules use. Globals
- are not asserted into the Working Memory so the engine is not aware when
+ are not inserted into the Working Memory so the engine is not aware when
globals are modified; for this reason globals should not be used in
- constraints unless their values are considered final. Incorrect use of
- globals in constraints may yield suprising results - surprising in a bad
- way, like when a doctor says "thats interesting" to a chest XRay of
- yours.</para>
+ constraints unless their values are considered final and immuttable.
+ Incorrect use of globals in constraints may yield suprising results -
+ surprising in a bad way, like when a doctor says "thats interesting" to a
+ chest XRay of yours.</para>
<para>Note that these are just named instances of objects that you pass in
from your application to the working memory. This means you can pass in
any object you want: you could pass in a service locator, or perhaps a
- service itself.</para>
+ service itself. With the new 'from' element it is now common to pass a
+ global for a Hibernate session, to allow 'from' to pull data from a named
+ Hibernate query.</para>
<para>One example may be an instance of a Email service. In your
integration code that is calling the rule engine, you get your
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-Rule.xml
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-Rule.xml 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-Rule.xml 2007-07-19 04:28:05 UTC (rev 13620)
@@ -16,13 +16,21 @@
</mediaobject>
</figure>
- <para>The Rule construct is where is clearly the most important construct.
- Rules are of the form "IF" something "THEN" action (of course we chose the
- keywords "when" and "then") - in the style of production rules.</para>
+ <para>A rule specifies that "when" a particular set of conditions occur,
+ specified in the Left Hand Side (LHS), then do this, which is specified as a
+ list of actions in the Right Hand Side (RHS). A common question from users
+ is "why use when instead of if". "when" was chosen over "if" becuase "if" is
+ normally part of a procedural execution flow, where at a specific point in
+ time it checks the condition. Where as "when" indicates it's not tied to a
+ specific evaluation sequence or point in time, at any time during the life
+ time of the engine "when" this occurs, do that. Rule</para>
- <para>A rule must have a name, and be a unique name for a rule package. If a
- rule name is to have spaces, then it will need to be in double quotes (its
- best to always use double quotes).</para>
+ <para>A rule must have a name, and be a unique name for the rule package. If
+ you define a rule twice in the same DRL it produce an error while loading.
+ If you add a DRL that has includes a rule name already in the package, it
+ will replace the previous rule. If a rule name is to have spaces, then it
+ will need to be in double quotes (its best to always use double
+ quotes).</para>
<para>Attributes are optional, and are described below (they are best kept
as one per line).</para>
@@ -32,15 +40,24 @@
The rule is terminated by the keyword "end". Rules cannot be nested of
course.</para>
+ <programlisting>rule "<name>"
+ <attribute>*
+when
+ <constraint>*
+then
+ <action>*
+end</programlisting>
+
<section>
- <title>Left Hand Side</title>
+ <title id="RuleLanguage-LHS">Left Hand Side</title>
<para>The Left Hand Side (LHS) is a common name for the conditional part
- of the rule.</para>
+ of the rule. It consists of zero or more Conditional Elements; whch are
+ covered in detail in <xref lang=""
+ linkend="RuleLanguage-ConditionalElements" os="" />. If the LHS is left
+ empty it is re-written as eval(true), which means the rule is always
+ true.</para>
- <para>To interpret the following diagram, refer to the sections below for
- the details.</para>
-
<figure>
<title>Left Hand Side</title>
@@ -74,40 +91,47 @@
<title>The Right Hand Side</title>
<para>The Right Hand Side (RHS) is a common name for the consequence or
- action part of the rule. The purpose of the right hand side is to retract
- or add facts to working memory, and also invoke arbitary actions specific
- to your application. In practical terms, the RHS is a block of code that
- is executed when the rule fires.</para>
+ action part of the rule; this part should contain a list of actions to be
+ executed.It is bad practice to use imperative or conditoinal code in the
+ RHS of a rule; as a rule should be atomic in nature - "when this, then do
+ this", not "when this, maybe do this". The RHS part of a rule should also
+ be kept small, thus keeping it declarative and readable. If you find you
+ need imperative and/or conditional code in the RHS, then maybe you should
+ be breaking that rule down into multiple rules. The main purpose of the
+ RHS is to insert, retractor modify working memory data. To assist with
+ there there are a few convenience methods you can use to modify working
+ memory; without having to first reference a working memory
+ instance.</para>
- <para>There are a few convenience methods you can use to modify working
- memory:</para>
+ <para>"update(object, handle);" will tell the engine that an object has
+ changed (one that has been bound to something on the LHS) and rules may
+ need to be reconsidered.</para>
- <para>"modify(obj);" will tell the engine that an object has changed (one
- that has been bound to something on the LHS) and rules may need to be
- reconsidered.</para>
-
- <para>"assert(new Something());" will place a new object of your creation
+ <para>"insert(new Something());" will place a new object of your creation
in working memory.</para>
- <para>"assertLogical(new Something());" is similar to assert, but the
+ <para>"insertLogical(new Something());" is similar to insert, but the
object will be automatically retracted when there are no more facts to
support the truth of the currently firing rule.</para>
- <para>"retract(obj);" removes an object from working memory.</para>
+ <para>"retract(handle);" removes an object from working memory.</para>
<para>These convenience methods are basically macros that provide short
cuts to the KnowldgeHelper instance (refer to the KnowledgeHelper
interface for more advanced operations). The KnowledgeHelper interface is
made available to the RHS code block as a variable called "drools". If you
provide "Property Change Listeners" to your java beans that you are
- asserting into the engine, you can avoid the need to call "modify" when
+ inserting into the engine, you can avoid the need to call "update" when
the object changes.</para>
</section>
<section>
<title>Rule Attriutes</title>
- <para />
+ <para>Rule attributes provide a declarative way to influence the behaviour
+ of the rule, some are quite simple, while others are part of complex sub
+ systems; such as ruleflow. To get the most from Drools you should make
+ sure you have a proper understanding of each attribute.</para>
<figure>
<title>rule attributes</title>
@@ -132,7 +156,8 @@
<para>When the Rule's consequence modifies a fact it may cause the Rule
to activate again, causing recursion. Setting no-loop to true means the
- attempt to create the Activation will be ignored.</para>
+ attempt to create the Activation for the current set of data will be
+ ignored.</para>
</section>
<section>
@@ -176,7 +201,7 @@
<section>
<title>activation-group</title>
- <para>default value N/A</para>
+ <para>default value : N/A</para>
<para>type : String</para>
@@ -192,6 +217,42 @@
</section>
<section>
+ <title>dialect</title>
+
+ <para>default value : as specified by the package</para>
+
+ <para>type : String</para>
+
+ <para>The dialect species the language to be used for any code
+ expressions in the LHS or the RHS code block. Currently two dialects are
+ available, Java and MVEL. While the dialect can be specified at the
+ package level, this attribute allows the package definition to be
+ overriden.</para>
+ </section>
+
+ <section>
+ <title>date-effective</title>
+
+ <para>default value : N/A</para>
+
+ <para>type : String, which contains a Date/Time definition</para>
+
+ <para>A rule can only activate if the current date and time is afer
+ date-effective attribute.</para>
+ </section>
+
+ <section>
+ <title>date-exptires</title>
+
+ <para>default value : N/A</para>
+
+ <para>type : String, which contains a Date/Time definition</para>
+
+ <para>A rule cannot activate if the current date and time is afer
+ date-expires attribute.</para>
+ </section>
+
+ <section>
<title>duration</title>
<para>default value : no default value</para>
@@ -213,29 +274,126 @@
</section>
<section>
- <title>Column</title>
+ <title>Pattern</title>
+ <para>As mentioned in <xref linkend="RuleLanguage-LHS" os="" /> the LHS is
+ made up of one or more Conditional Elements. The Pattern elment is the
+ most important Conditional Element, which is why we have given it a
+ dedicated section. As you already know a forward chaining rule engine is
+ often referred to as a Pattern Matching engine, because at the heart it
+ matches the specified Patterns against the available data. So lets take a
+ look at what a Pattern is.</para>
+
<figure>
- <title>Column</title>
+ <title>Pattern</title>
<mediaobject>
<imageobject>
- <imagedata align="center" fileref="column.svg" format="SVG" role="" />
+ <imagedata align="center" fileref="pattern.svg" format="SVG" role="" />
</imageobject>
<imageobject>
- <imagedata align="center" fileref="column.png" format="PNG" role="" />
+ <imagedata align="center" fileref="pattern.png" format="PNG" role="" />
</imageobject>
</mediaobject>
</figure>
+ <para>At the simplest, with no constraints, it simply matches against a
+ type, in the following case the type is "Cheese". This meanst the pattern
+ will match against all Cheese objects in the working memory.</para>
+
<example>
- <title>Column</title>
+ <title>Pattern</title>
- <programlisting>Cheese( )
-Cheese( type == "stilton", price < 10 )</programlisting>
+ <programlisting>Cheese( )</programlisting>
</example>
+ <para>To be able to refer to the object, from other patterns or in the
+ consequence, use a pattern binding variable '$c'. While the the variable
+ is prefixed with a $ symbol, it is optional, but can be useful in complex
+ rules so an easier differentiation can be made between variables and
+ fields.</para>
+
+ <example>
+ <title>Pattern</title>
+
+ <programlisting>$c : Cheese( )</programlisting>
+ </example>
+
+ <para>Inside of the pattern parenthesis is where all the action happens.
+ Drools 4.0 brings a large, and almost bewildering, range and combination
+ of constraints.</para>
+
+ <figure>
+ <title>Constraints</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="constraints.svg" format="SVG"
+ role="" />
+ </imageobject>
+
+ <imageobject>
+ <imagedata align="center" fileref="constraints.png" format="PNG"
+ role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure>
+ <title>Constraint</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="constraint.svg" format="SVG"
+ role="" />
+ </imageobject>
+
+ <imageobject>
+ <imagedata align="center" fileref="constraint.png" format="PNG"
+ role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure>
+ <title>Group Constraint</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="constraintGroup.svg" format="SVG"
+ role="" />
+ </imageobject>
+
+ <imageobject>
+ <imagedata align="center" fileref="constraintGroup.png" format="PNG"
+ role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure>
+ <title>Field Constraint</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="fieldConstraint.svg" format="SVG"
+ role="" />
+ </imageobject>
+
+ <imageobject>
+ <imagedata align="center" fileref="fieldConstraint.png" format="PNG"
+ role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <example>
+ <title>Pattern</title>
+
+ <programlisting>Cheese( type == "stilton", price < 10 )</programlisting>
+ </example>
+
<para>A Rule consists of Field Constraints on one or more Object Types.
Internally each matched Object Type instance is stored in an array. If we
match against three objects Person, Person and Pet we have a three element
@@ -703,7 +861,7 @@
</section>
</section>
- <section>
+ <section id="RuleLanguage-ConditionalElements">
<title>Conditional Elements</title>
<para>Conditional elements work on one or more Columns (which were
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-RuleFlow.xml (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/Section-RuleFlow.xml)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-RuleFlow.xml (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/Section-RuleFlow.xml 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<section>
+ <title>Rule Flow</title>
+
+ <figure>
+ <title>Ruleflow</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="RuleFlow.png" format="PNG" role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Drools already provides some functionality to define the order in
+ which rules should be executed, like salience, activation groups, etc. When
+ dealing with (possibly a lot of) large rule-sets, managing the order in
+ which rules are evaluated might become complex. Ruleflow allows you to
+ specify the order in which rule sets should be evaluated by using a flow
+ chart. This allows you to define which rule sets should be evaluated in
+ sequence or in parallel, to specify conditions under which rule sets should
+ be evaluated, etc. Here are two examples of a ruleflow:.</para>
+
+ <para>A rule flow is a graphical description of a sequence of steps that the
+ rule engine needs to take, where the order is important. The ruleflow can
+ also deal with conditional branching.</para>
+
+ <para>To use a ruleflow, you use rule attributes ("options" in the GUI) to
+ give each rule a ruleflow group to belong to - you then define a rule flow
+ graph (which is a flow chart) to describe the order in which the rules
+ should be considered.</para>
+
+ <section>
+ <title>Setting a rules ruleflow group</title>
+
+ <programlisting>
+ rule 'YourRule'
+ ruleflow-group 'group1'
+ when
+ ...
+ then
+ ...
+ end
+ </programlisting>
+
+ <para>This rule will then be placed in the group called "group1", along
+ with any other groups that are defined in the package.</para>
+ </section>
+
+ <section>
+ <title>A simple ruleflow</title>
+
+ <figure>
+ <title>Ruleflow</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="RuleFlowSimple.png" format="PNG"
+ role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The above rule flow specifies that the groups "Check Order" must be
+ done before "Process Order". This means that in your rules, firstly only
+ rules which are market as having a ruleflow-group of "Check Order" will be
+ considered first, and then "Process Order". Thats about it. You could
+ achieve similar to this with either salience (setting prorities, but this
+ is harder to maintain, and makes the time-relationship implicit in the
+ rules), or agenda groups. However, using a ruleflow makes the order of
+ processing explicit, almost like a meta-rule.</para>
+ </section>
+
+ <section>
+ <title>How to build a rule flow</title>
+
+ <para>Firstly you use the IDE, and when in a project, use "control+N" to
+ launch the new wizard:</para>
+
+ <figure>
+ <title>Ruleflow</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="RFNewWizard.png" format="PNG"
+ role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Choose the section on "JBoss Rules" and then pick "RuleFlow file".
+ This will create a new .rf file.</para>
+
+ <para>Next you will see the graphical ruleflow editor. The first thing you
+ should do is switch to the "rule perspective" - this will tweak the UI so
+ it is optimal for rules. Then ensure that you can see the "properties"
+ panel down the bottom of the eclipse window:</para>
+
+ <figure>
+ <title>Groups</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="RFNameGroups.png" format="PNG"
+ role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Click on the RuleFlowGroup icon in the Component Pallette of the GUI
+ - you can then draw a few rule flow groups. Clicking on them allows you to
+ set the name.</para>
+
+ <para>Click on a ruleflow group, and you should see the following:</para>
+
+ <figure>
+ <title>Group properties</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="RFGroupProperties.png"
+ format="PNG" role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>You can see here you set the visible name, but you also need to set
+ the actual group name that is used in the rules.</para>
+
+ <para>Next step is to join the groups together (if its a simple sequence
+ of steps) - you use this by using "create connection" from the component
+ pallette. You should also create an "End" node (also from the component
+ pallette) - you only have one of these.</para>
+
+ <para>In practice, if you are using ruleflow, you will most likely be
+ doing more then setting a simple sequence of groups to progress though.
+ You are more likely modelling branches of processing. In this case you use
+ "Split" and "Join" items from the component pallette. You use connections
+ to connect from the start to ruleflow groups, or to Splits, and from
+ splits to groups, joins etc (ie basically like a simple flow chart that
+ modells your processing). You can work entirelly graphically until you get
+ the graph approximately right.</para>
+
+ <figure>
+ <title>Complex ruleflow</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="RFComplex.png" format="PNG"
+ role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>The above flow is a more complex example. This example is an
+ insurance claim processing rule flow. A description: Initially the claim
+ data validation rules are processed (these check for data integrity and
+ consistency, that all the information is there). Next there is a decision
+ "split" - based on a condition which the rule flow checks (the value of
+ the claim), it will either move on to an "autosettlement" group, or to
+ another "split", which checks if there was a fatality in the claim. If
+ there was a fatality then it determines if the "regular" of fatality
+ specific rules will take effect. And so on. What you can see from this is
+ based on a few conditions in the rule flow the steps that the processing
+ takes can be very different. Note that all the rules can be in one package
+ - making maintenance easy. You can separate out the flow control from the
+ actual rules.</para>
+
+ <figure>
+ <title>Split types</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="RFSplitType.png" format="PNG"
+ role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Split types (refering to the above): When you click on a split, you
+ will see the above properties panel. You then have to choose the type:
+ AND, OR, and XOR. The interesting ones are OR and XOR: if you choose OR,
+ then any of the "ouputs" of the split can happen (ie processing can
+ proceed in parallel down more then one path). If you chose XOR, then it
+ will be only one path.</para>
+
+ <para>If you choose OR or XOR, then in the row that has constraints, you
+ will see a button on the right hand side that has "..." - click on this,
+ and you will see the constraint editor. From this constraint editor, you
+ set the conditions which the split will use to decide which "output path"
+ will be chosen.</para>
+
+ <figure>
+ <title>Edit constraints</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="RFEditConstraints.png"
+ format="PNG" role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Choose the output path you want to set the constraints for (eg
+ Autosettlement), and then you should see the following constraint
+ editor:</para>
+
+ <figure>
+ <title>Constraint editor</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center" fileref="RFConstraintEditor.png"
+ format="PNG" role="" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>This is a text editor where the constraints (which are like the
+ condition part of a rule) are entered. These constraints operate on facts
+ in the working memory (eg. in the above example, it is checking for claims
+ with a value of less than 250). Should this condition be true, then the
+ path specified by it will be followed.</para>
+ </section>
+
+ <section>
+ <title>Using a rule flow in your application</title>
+
+ <para>Once you have a valid ruleflow (you can check its valid by pressing
+ the green "tick" icon in the IDE), you can add a rule flow to a package
+ just like a drl: <programlisting>Reader rf = ... (rule flow reader)
+packageBuilder.addRuleFlow(rf);
+</programlisting></para>
+
+ <para>Alternatively, you can upload the .rf file to the BRMS (as a
+ ruleflow asset) and it will automatically be included in packages that are
+ deployed from it.</para>
+
+ <para>To activate a particular ruleflow in your runtime code, you will
+ need to use the WorkingMemory interface. After you have asserted your
+ facts, you use: <programlisting>workingMemory.startProcess("ID_From_your_Ruleflow_properties");</programlisting>
+ And then call fireAllRules(). This tells the engine what process is in
+ effect (as you may have multiple processes to consider). Thats it !</para>
+ </section>
+</section>
\ No newline at end of file
Deleted: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/column.png
===================================================================
(Binary files differ)
Deleted: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/column.svg
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/column.svg 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/column.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -1,342 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 column.svg Page-1 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" xmlns:xlink="http://www.w3.org/1999/xlink" width="4.71024in" height="2.75456in" viewBox="0 0 339.138 198.328" xml:space="preserve" color-interpolation-filters="sRGB" class="st7" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css">
- <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
-
- <style type="text/css" xml:space="preserve">
-
- .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
- .st2 {fill:#000000;font-family:Arial;font-size:0.666664em}
- .st3 {font-size:1em}
- .st4 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
- .st5 {marker-end:url(#mrkr2-27);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
- .st6 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
- .st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
-
- </style>
-
- <defs id="Markers">
- <g id="lend2">
- <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
- </g>
- <marker xmlns="http://www.w3.org/TR/xhtml1/transitional" overflow="visible" id="mrkr2-27" class="st6" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto" markerUnits="strokeWidth" preserveAspectRatio="xMidYMid meet">
- <use xmlns="http://www.w3.org/2000/svg" xlink:href="#lend2" transform="scale(-11.5,-11.5) " xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
- </marker>
- </defs>
- <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
- <title content="structured text">Page-1</title>
- <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" v:shadowOffsetY="-8.50394"/>
- <v:layer v:name="Flowchart" v:index="0"/>
- <v:layer v:name="Connector" v:index="1"/>
- <g id="shape1-1" v:mID="1" v:groupContext="shape" v:layerMember="0" transform="translate(27.0866,-155.553)">
- <title content="structured text">Process.103</title>
- <desc content="structured text">fact</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="12.7559" cy="191.205" width="25.52" height="14.2459"/>
- <rect x="0" y="184.082" width="25.5118" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="6.3" y="193.61" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>fact</text> </g>
- <g id="shape7-4" v:mID="7" v:groupContext="shape" v:layerMember="0" transform="translate(65.2878,-155.553)">
- <title content="structured text">Process.109</title>
- <desc content="structured text">‘(‘</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="10.6844" cy="191.205" width="21.37" height="14.2459"/>
- <rect x="0" y="184.082" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="7.57" y="193.61" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">(</tspan>‘</text> </g>
- <g id="shape8-8" v:mID="8" v:groupContext="shape" v:layerMember="0" transform="translate(292.126,-155.553)">
- <title content="structured text">Process.110</title>
- <desc content="structured text">‘)’</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="10.6844" cy="191.205" width="21.37" height="14.2459"/>
- <rect x="0" y="184.082" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="7.57" y="193.61" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">)</tspan>’</text> </g>
- <g id="shape10-12" v:mID="10" v:groupContext="shape" v:layerMember="0" transform="translate(215.893,-134.293)">
- <title content="structured text">Process.113</title>
- <desc content="structured text">field</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="24.6521" cy="191.205" width="49.31" height="14.2459"/>
- <rect x="0" y="184.082" width="49.3042" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="17.31" y="193.61" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>field</text> </g>
- <g id="shape11-15" v:mID="11" v:groupContext="shape" v:layerMember="0" transform="translate(101.33,-134.221)">
- <title content="structured text">Process.114</title>
- <desc content="structured text">fieldBinding</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="30.8767" cy="191.205" width="61.76" height="14.2459"/>
- <rect x="0" y="184.082" width="61.7535" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="10.19" y="193.61" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>fieldBinding</text> </g>
- <g id="shape12-18" v:mID="12" v:groupContext="shape" v:layerMember="0" transform="translate(177.214,-134.293)">
- <title content="structured text">Process.115</title>
- <desc content="structured text">‘:’</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="10.6844" cy="191.205" width="21.37" height="14.2459"/>
- <rect x="0" y="184.082" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="7.79" y="193.61" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">:</tspan>’</text> </g>
- <g id="shape13-22" v:mID="13" v:groupContext="shape" v:layerMember="1" transform="translate(198.583,-134.33)">
- <title content="structured text">Dynamic connector.117</title>
- <path d="M0 191.24 L14.55 191.24" class="st5"/>
- </g>
- <g id="shape15-28" v:mID="15" v:groupContext="shape" v:layerMember="1" transform="translate(163.062,-134.293)">
- <title content="structured text">Dynamic connector.119</title>
- <path d="M0.02 191.28 L6.82 191.28 L6.82 191.21 L11.39 191.21" class="st5"/>
- </g>
- <g id="shape16-33" v:mID="16" v:groupContext="shape" v:layerMember="0" transform="translate(114.894,-105.874)">
- <title content="structured text">Process.120</title>
- <desc content="structured text">operator</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="19.8758" cy="191.205" width="39.76" height="14.2459"/>
- <rect x="0" y="184.082" width="39.7516" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="4.98" y="193.61" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>operator</text> </g>
- <g id="shape17-36" v:mID="17" v:groupContext="shape" v:layerMember="0" transform="translate(185.472,-105.874)">
- <title content="structured text">Process.121</title>
- <desc content="structured text">literalConstraint</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="36.6732" cy="191.205" width="73.35" height="14.2459"/>
- <rect x="0" y="184.082" width="73.3465" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="8.89" y="193.61" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>literalConstraint</text> </g>
- <g id="shape18-39" v:mID="18" v:groupContext="shape" v:layerMember="0" transform="translate(177.868,-52.7847)">
- <title content="structured text">Process.122</title>
- <desc content="structured text">returnValueConstraint</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="45.0136" cy="191.205" width="90.03" height="14.2459"/>
- <rect x="0" y="184.082" width="90.0273" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="6.11" y="193.61" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>returnValueConstraint</text> </g>
- <g id="shape19-42" v:mID="19" v:groupContext="shape" v:layerMember="1" transform="translate(86.6566,-162.676)">
- <title content="structured text">Dynamic connector.125</title>
- <path d="M0 198.33 L3.79 198.33 A3.79316 3.79316 0 0 1 7.59 202.12 L7.59 216.12 A3.54331 3.54331 -180 0 0 11.13 219.66 L11.91 219.66" class="st5"/>
- </g>
- <g id="shape20-47" v:mID="20" v:groupContext="shape" v:layerMember="1" transform="translate(154.646,-112.997)">
- <title content="structured text">Dynamic connector.126</title>
- <path d="M0 198.33 L5.31 198.33 A5.31496 5.31496 0 0 1 10.63 203.64 L10.63 245.75 A5.66929 5.66929 -180 0 0 16.3 251.42 L20.46 251.42" class="st5"/>
- </g>
- <g id="shape21-52" v:mID="21" v:groupContext="shape" v:layerMember="1" transform="translate(154.646,-105.91)">
- <title content="structured text">Dynamic connector.127</title>
- <path d="M0 191.24 L28.07 191.24" class="st5"/>
- </g>
- <g id="shape22-57" v:mID="22" v:groupContext="shape" v:layerMember="1" transform="translate(267.895,-59.9077)">
- <title content="structured text">Dynamic connector.128</title>
- <path d="M0 198.33 L5.81 198.33 A5.66929 5.66929 -180 0 0 11.47 192.66 L11.47 101.23 A5.66929 5.66929 0 0 1 17.14 95.56 L21.47 95.56" class="st5"/>
- </g>
- <g id="shape23-62" v:mID="23" v:groupContext="shape" v:layerMember="1" transform="translate(258.819,-112.997)">
- <title content="structured text">Dynamic connector.129</title>
- <path d="M0 198.33 L14.88 198.33 A5.66929 5.66929 -180 0 0 20.55 192.66 L20.55 154.32 A5.66929 5.66929 0 0 1 26.22 148.65 L30.55 148.65" class="st5"/>
- </g>
- <g id="shape28-67" v:mID="28" v:groupContext="shape" v:layerMember="0" transform="translate(118.762,-24.4019)">
- <title content="structured text">Process.135</title>
- <desc content="structured text">‘->’</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="13.8703" cy="191.205" width="27.75" height="14.2459"/>
- <rect x="0" y="184.082" width="27.7406" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="8.43" y="193.61" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3" v:langID="2057">-</tspan><tspan class="st3" v:langID="2057">></tspan>’</text> </g>
- <g id="shape29-72" v:mID="29" v:groupContext="shape" v:layerMember="1" transform="translate(265.197,-141.416)">
- <title content="structured text">Dynamic connector.136</title>
- <path d="M0 198.33 L8.5 198.33 A5.66929 5.66929 -180 0 0 14.17 192.66 L14.17 182.74 A5.66929 5.66929 0 0 1 19.84 177.07 L24.17 177.07" class="st5"/>
- </g>
- <g id="shape30-77" v:mID="30" v:groupContext="shape" v:layerMember="1" transform="translate(265.197,-141.416)">
- <title content="structured text">Dynamic connector.137</title>
- <path d="M0 198.33 L8.5 198.33 A5.66929 5.66929 0 0 1 14.17 204 L14.17 206.87 A5.66929 5.66929 0 0 1 8.5 212.54 L-158.81 212.54 A5.66929 5.66929 -180 0 0 -164.48 218.21 L-164.48 221.08 A5.66929 5.66929 -180 0 0 -158.81 226.75 L-153.06 226.75" class="st5"/>
- </g>
- <g id="shape31-82" v:mID="31" v:groupContext="shape" v:layerMember="1" transform="translate(265.197,-141.416)">
- <title content="structured text">Dynamic connector.138</title>
- <path d="M0 198.33 L8.5 198.33 A5.66929 5.66929 0 0 1 14.17 204 L14.17 206.87 A5.66929 5.66929 0 0 1 8.5 212.54 L-158.81 212.54 A5.66929 5.66929 -180 0 0 -164.48 218.21 L-164.48 302.55 A5.66929 5.66929 -180 0 0 -158.81 308.22 L-149.2 308.22" class="st5"/>
- </g>
- <g id="shape32-87" v:mID="32" v:groupContext="shape" v:layerMember="0" transform="translate(185.575,-24.4019)">
- <title content="structured text">Process.123</title>
- <desc content="structured text">predicateConstraint</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="39.034" cy="191.205" width="78.07" height="14.2459"/>
- <rect x="0" y="184.082" width="78.068" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="4.34" y="193.61" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>predicateConstraint</text> </g>
- <g id="shape33-90" v:mID="33" v:groupContext="shape" v:layerMember="1" transform="translate(146.502,-24.4382)">
- <title content="structured text">Dynamic connector.139</title>
- <path d="M0 191.24 L36.31 191.24" class="st5"/>
- </g>
- <g id="shape34-95" v:mID="34" v:groupContext="shape" v:layerMember="1" transform="translate(263.643,-31.5249)">
- <title content="structured text">Dynamic connector.140</title>
- <path d="M0 198.33 L10.06 198.33 A5.66929 5.66929 -180 0 0 15.73 192.66 L15.73 72.85 A5.66929 5.66929 0 0 1 21.4 67.18 L25.72 67.18" class="st5"/>
- </g>
- <g id="shape35-100" v:mID="35" v:groupContext="shape" v:layerMember="1" transform="translate(86.6566,-155.589)">
- <title content="structured text">Dynamic connector.116</title>
- <path d="M0 191.24 L202.71 191.24" class="st5"/>
- </g>
- <g id="shape36-105" v:mID="36" v:groupContext="shape" v:layerMember="0" transform="translate(122.916,-1.67704)">
- <title content="structured text">Process.124</title>
- <desc content="structured text">‘,’</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="10.6844" cy="191.205" width="21.37" height="14.2459"/>
- <rect x="0" y="184.082" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="7.79" y="193.61" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>‘,’</text> </g>
- <g id="shape37-108" v:mID="37" v:groupContext="shape" v:layerMember="1" transform="translate(263.643,-31.5249)">
- <title content="structured text">Dynamic connector.141</title>
- <path d="M0 198.33 L9.78 198.33 A5.66929 5.66929 0 0 1 15.45 204 L15.45 215.38 A5.66929 5.66929 0 0 1 9.78 221.05 L-116.6 221.05" class="st5"/>
- </g>
- <g id="shape38-113" v:mID="38" v:groupContext="shape" v:layerMember="1" transform="translate(267.895,-59.9077)">
- <title content="structured text">Dynamic connector.142</title>
- <path d="M0 198.33 L5.6 198.33 A5.60082 5.60082 0 0 1 11.2 203.93 L11.2 243.77 A5.66929 5.66929 0 0 1 5.53 249.44 L-120.85 249.44" class="st5"/>
- </g>
- <g id="shape39-118" v:mID="39" v:groupContext="shape" v:layerMember="1" transform="translate(258.819,-112.997)">
- <title content="structured text">Dynamic connector.143</title>
- <path d="M0 198.33 L14.88 198.33 A5.66929 5.66929 0 0 1 20.55 204 L20.55 296.86 A5.66929 5.66929 0 0 1 14.88 302.53 L-111.77 302.53" class="st5"/>
- </g>
- <g id="shape40-123" v:mID="40" v:groupContext="shape" v:layerMember="1" transform="translate(265.197,-141.416)">
- <title content="structured text">Dynamic connector.144</title>
- <path d="M0 198.33 L8.5 198.33 A5.66929 5.66929 0 0 1 14.17 204 L14.17 325.28 A5.66929 5.66929 0 0 1 8.5 330.94 L-118.15 330.94" class="st5"/>
- </g>
- <g id="shape41-128" v:mID="41" v:groupContext="shape" v:layerMember="1" transform="translate(122.916,-8.8)">
- <title content="structured text">Dynamic connector.148</title>
- <path d="M0 198.33 L-30.7 198.33 A5.66929 5.66929 0 0 1 -36.37 192.66 L-36.37 71.45 A5.66929 5.66929 0 0 1 -30.7 65.78 L-24.35 65.78" class="st5"/>
- </g>
- <g id="shape43-133" v:mID="43" v:groupContext="shape" v:layerMember="1;0" transform="translate(1.5748,-184.206)">
- <title content="structured text">On-page reference</title>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <path d="M0 192.1 A6.23259 6.23259 0 0 1 12.47 192.1 A6.23259 6.23259 0 1 1 0 192.1 Z" class="st1"/>
- </g>
- <g id="shape44-135" v:mID="44" v:groupContext="shape" v:layerMember="1;0" transform="translate(326.432,-185.623)">
- <title content="structured text">On-page reference.57</title>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <path d="M0 192.1 A6.23259 6.23259 0 0 1 12.47 192.1 A6.23259 6.23259 0 1 1 0 192.1 Z" class="st1"/>
- </g>
- <g id="shape45-137" v:mID="45" v:groupContext="shape" v:layerMember="1" transform="translate(13.4767,-190.438)">
- <title content="structured text">Dynamic connector.7</title>
- <path d="M0.56 198.33 L3.54 198.33 A2.98001 2.98001 0 0 1 6.52 201.31 L6.52 222.55 A3.54331 3.54331 -180 0 0 10.07 226.09 L10.85 226.09" class="st5"/>
- </g>
- <g id="shape46-142" v:mID="46" v:groupContext="shape" v:layerMember="1" transform="translate(312.877,-162.676)">
- <title content="structured text">Dynamic connector.58</title>
- <path d="M0.62 198.33 L3.4 198.33 A2.78013 2.78013 -180 0 0 6.18 195.55 L6.18 172.84 A3.68867 3.68867 0 0 1 9.87 169.15 L10.8 169.15" class="st5"/>
- </g>
- <g id="shape47-147" v:mID="47" v:groupContext="shape" v:layerMember="0" transform="translate(176.614,-79.7502)">
- <title content="structured text">Process.47</title>
- <desc content="structured text">boundVariableConstraint</desc>
- <v:custProps>
- <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
- <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
- <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
- </v:custProps>
- <v:userDefs>
- <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
- </v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="47.4803" cy="191.205" width="94.97" height="14.2459"/>
- <rect x="0" y="184.082" width="94.9606" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="3.45" y="193.61" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>boundVariableConstraint</text> </g>
- <g id="shape48-150" v:mID="48" v:groupContext="shape" v:layerMember="1" transform="translate(154.646,-112.997)">
- <title content="structured text">Dynamic connector.48</title>
- <path d="M0 198.33 L5.31 198.33 A5.31496 5.31496 0 0 1 10.63 203.64 L10.63 218.78 A5.66929 5.66929 -180 0 0 16.3 224.45 L19.21 224.45" class="st5"/>
- </g>
- <g id="shape49-155" v:mID="49" v:groupContext="shape" v:layerMember="1" transform="translate(271.575,-86.8731)">
- <title content="structured text">Dynamic connector.49</title>
- <path d="M0 198.33 L3.9 198.33 A3.89764 3.89764 0 0 1 7.8 202.23 L7.8 270.73 A5.66929 5.66929 0 0 1 2.13 276.4 L-124.53 276.4" class="st5"/>
- </g>
- <g id="shape50-160" v:mID="50" v:groupContext="shape" v:layerMember="1" transform="translate(271.575,-86.8731)">
- <title content="structured text">Dynamic connector.50</title>
- <path d="M0 198.33 L3.9 198.33 A3.89764 3.89764 -180 0 0 7.8 194.43 L7.8 128.19 A5.66929 5.66929 0 0 1 13.46 122.53 L17.79 122.53" class="st5"/>
- </g>
- <g id="shape51-165" v:mID="51" v:groupContext="shape" v:layerMember="1" transform="translate(86.6566,-162.676)">
- <title content="structured text">Dynamic connector.51</title>
- <path d="M0 198.33 L115.06 198.33 A5.66929 5.66929 0 0 1 120.73 204 L120.73 215.34 A4.25197 4.25197 -180 0 0 124.98 219.59 L126.48 219.59" class="st5"/>
- </g>
- <g id="shape9-170" v:mID="9" v:groupContext="shape" v:layerMember="1" transform="translate(51.8565,-155.589)">
- <title content="structured text">Dynamic connector.9</title>
- <path d="M0.74 191.24 L10.67 191.24" class="st5"/>
- </g>
- </g>
-</svg>
\ No newline at end of file
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/compoundValueRestriction.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/compoundValueRestriction.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/compoundValueRestriction.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/compoundValueRestriction.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/compoundValueRestriction.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/compoundValueRestriction.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 compoundValueRestriction.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="6.23736in"
+ height="1.94883in" viewBox="0 0 449.09 140.316" xml:space="preserve" color-interpolation-filters="sRGB" class="st7">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {marker-end:url(#mrkr2-8);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st3 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st4 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st5 {fill:#000000;font-family:Arial;font-size:0.666664em}
+ .st6 {font-size:1em}
+ .st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-8" class="st3" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape81-1" v:mID="81" v:groupContext="shape" v:layerMember="0;1" transform="translate(437.386,-113.335)">
+ <title>On-page reference.66</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 134.58 A5.73228 5.73228 0 0 1 11.46 134.58 A5.73228 5.73228 0 1 1 0 134.58 Z" class="st1"/>
+ </g>
+ <g id="shape82-3" v:mID="82" v:groupContext="shape" v:layerMember="0" transform="translate(96.618,-99.6976)">
+ <title>Dynamic connector.83</title>
+ <path d="M0 133.23 L26.07 133.23" class="st2"/>
+ </g>
+ <g id="shape83-9" v:mID="83" v:groupContext="shape" v:layerMember="1" transform="translate(40.2069,-100.233)">
+ <title>Process.95</title>
+ <desc>‘in’ | ‘not in’</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="28.2055" cy="133.764" width="56.42" height="13.1024"/>
+ <rect x="0" y="127.213" width="56.4111" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="8.49" y="136.16" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>‘in’ | ‘not in’</text> </g>
+ <g id="shape84-12" v:mID="84" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-101.052)">
+ <title>On-page reference.96</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 134.58 A5.73228 5.73228 0 0 1 11.46 134.58 A5.73228 5.73228 0 1 1 0 134.58 Z" class="st1"/>
+ </g>
+ <g id="shape85-14" v:mID="85" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-99.6976)">
+ <title>Dynamic connector.85</title>
+ <path d="M0 133.23 L25.74 133.23" class="st2"/>
+ </g>
+ <g id="shape86-19" v:mID="86" v:groupContext="shape" v:layerMember="1" transform="translate(397.745,-112.091)">
+ <title>Process.67</title>
+ <desc>‘)‘</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="10.6844" cy="133.193" width="21.37" height="14.2459"/>
+ <rect x="0" y="126.07" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.57" y="135.59" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+ v:langID="2057">)</tspan>‘</text> </g>
+ <g id="shape87-23" v:mID="87" v:groupContext="shape" v:layerMember="1" transform="translate(125.446,-99.6613)">
+ <title>Process.87</title>
+ <desc>‘(‘</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="10.6844" cy="133.193" width="21.37" height="14.2459"/>
+ <rect x="0" y="126.07" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.57" y="135.59" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+ v:langID="2057">(</tspan>‘</text> </g>
+ <g id="shape88-27" v:mID="88" v:groupContext="shape" v:layerMember="1" transform="translate(256.012,-87.9242)">
+ <title>Process.98</title>
+ <desc>‘,‘</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="10.6844" cy="133.193" width="21.37" height="14.2459"/>
+ <rect x="0" y="126.07" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.79" y="135.59" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+ v:langID="2057">,</tspan>‘</text> </g>
+ <g id="shape89-31" v:mID="89" v:groupContext="shape" v:layerMember="1" transform="translate(170.319,-126.973)">
+ <title>Process.40</title>
+ <desc>variable</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="20.6255" cy="133.764" width="41.26" height="13.1024"/>
+ <rect x="0" y="127.213" width="41.2511" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="6.62" y="136.16" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>variable</text> </g>
+ <g id="shape90-34" v:mID="90" v:groupContext="shape" v:layerMember="1" transform="translate(171.83,-100.312)">
+ <title>Process.41</title>
+ <desc>literal</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="20.6255" cy="133.764" width="41.26" height="13.1024"/>
+ <rect x="0" y="127.213" width="41.2511" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="11.07" y="136.16" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>literal</text> </g>
+ <g id="shape91-37" v:mID="91" v:groupContext="shape" v:layerMember="1" transform="translate(170.319,-73.6504)">
+ <title>Process.4</title>
+ <desc>returnValue</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="24.1688" cy="133.764" width="48.34" height="13.1024"/>
+ <rect x="0" y="127.213" width="48.3377" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="3.5" y="136.16" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>returnValue</text> </g>
+ <g id="shape92-40" v:mID="92" v:groupContext="shape" v:layerMember="1" transform="translate(304.964,-87.2882)">
+ <title>Process.5</title>
+ <desc>variable</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="20.6255" cy="133.764" width="41.26" height="13.1024"/>
+ <rect x="0" y="127.213" width="41.2511" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="6.62" y="136.16" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>variable</text> </g>
+ <g id="shape93-43" v:mID="93" v:groupContext="shape" v:layerMember="1" transform="translate(308.433,-44.422)">
+ <title>Process.11</title>
+ <desc>literal</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="20.6255" cy="133.764" width="41.26" height="13.1024"/>
+ <rect x="0" y="127.213" width="41.2511" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="11.07" y="136.16" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>literal</text> </g>
+ <g id="shape94-46" v:mID="94" v:groupContext="shape" v:layerMember="1" transform="translate(313.394,-16.9575)">
+ <title>Process.12</title>
+ <desc>returnValue</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="24.1688" cy="133.764" width="48.34" height="13.1024"/>
+ <rect x="0" y="127.213" width="48.3377" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="3.5" y="136.16" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>returnValue</text> </g>
+ <g id="shape95-49" v:mID="95" v:groupContext="shape" v:layerMember="0" transform="translate(146.815,-106.784)">
+ <title>Dynamic connector.33</title>
+ <path d="M0 140.32 L5.31 140.32 A5.31496 5.31496 -180 0 0 10.63 135 L10.63 119.24 A5.66929 5.66929 0 0 1 16.3 113.58
+ L20.74 113.58" class="st2"/>
+ </g>
+ <g id="shape96-54" v:mID="96" v:groupContext="shape" v:layerMember="0" transform="translate(146.815,-99.737)">
+ <title>Dynamic connector.53</title>
+ <path d="M0 133.27 L10.59 133.27 a0.0393701 0.0393701 -180 0 0 0.0393701 -0.0393701 L10.63 133.23 a0.0393701 0.0393701
+ 0 0 1 0.0393701 -0.0393701 L22.25 133.19" class="st2"/>
+ </g>
+ <g id="shape97-59" v:mID="97" v:groupContext="shape" v:layerMember="0" transform="translate(146.815,-106.784)">
+ <title>Dynamic connector.54</title>
+ <path d="M0 140.32 L5.31 140.32 A5.31496 5.31496 0 0 1 10.63 145.63 L10.63 161.23 A5.66929 5.66929 -180 0 0 16.3 166.9
+ L20.74 166.9" class="st2"/>
+ </g>
+ <g id="shape98-64" v:mID="98" v:groupContext="shape" v:layerMember="0" transform="translate(277.381,-101.53)">
+ <title>Dynamic connector.114</title>
+ <path d="M0 146.8 L17.11 146.8 a0.603876 0.603876 0 0 1 0.603876 0.603876 L17.72 147.4 a0.603876 0.603876 -180 0 0 0.603876
+ 0.603876 L24.82 148.01" class="st2"/>
+ </g>
+ <g id="shape99-69" v:mID="99" v:groupContext="shape" v:layerMember="0" transform="translate(277.381,-95.0471)">
+ <title>Dynamic connector.99</title>
+ <path d="M0 140.32 L12.05 140.32 A5.66929 5.66929 0 0 1 17.72 145.98 L17.72 206.18 A5.66929 5.66929 -180 0 0 23.39 211.85
+ L33.25 211.85" class="st2"/>
+ </g>
+ <g id="shape100-74" v:mID="100" v:groupContext="shape" v:layerMember="0" transform="translate(277.381,-95.0471)">
+ <title>Dynamic connector.116</title>
+ <path d="M0 140.32 L12.05 140.32 A5.66929 5.66929 0 0 1 17.72 145.98 L17.72 178.72 A5.66929 5.66929 -180 0 0 23.39 184.39
+ L28.29 184.39" class="st2"/>
+ </g>
+ <g id="shape101-79" v:mID="101" v:groupContext="shape" v:layerMember="0" transform="translate(211.57,-133.524)">
+ <title>Dynamic connector.101</title>
+ <path d="M0 140.32 L12.61 140.32 A5.66929 5.66929 0 0 1 18.28 145.98 L18.28 148.96 A5.66929 5.66929 -180 0 0 23.95 154.63
+ L183.41 154.63" class="st2"/>
+ </g>
+ <g id="shape102-84" v:mID="102" v:groupContext="shape" v:layerMember="0" transform="translate(346.215,-93.8394)">
+ <title>Dynamic connector.102</title>
+ <path d="M0 140.32 L20.48 140.32 A5.66929 5.66929 -180 0 0 26.15 134.65 L26.15 120.61 A5.66929 5.66929 0 0 1 31.82 114.94
+ L48.77 114.94" class="st2"/>
+ </g>
+ <g id="shape103-89" v:mID="103" v:groupContext="shape" v:layerMember="0" transform="translate(349.684,-50.9732)">
+ <title>Dynamic connector.103</title>
+ <path d="M0 140.32 L17.01 140.32 A5.66929 5.66929 -180 0 0 22.68 134.65 L22.68 77.74 A5.66929 5.66929 0 0 1 28.35 72.07
+ L45.3 72.07" class="st2"/>
+ </g>
+ <g id="shape104-94" v:mID="104" v:groupContext="shape" v:layerMember="0" transform="translate(361.732,-23.5087)">
+ <title>Dynamic connector.104</title>
+ <path d="M0 140.32 L5.31 140.32 A5.31496 5.31496 -180 0 0 10.63 135 L10.63 50.28 A5.66929 5.66929 0 0 1 16.3 44.61 L33.25
+ 44.61" class="st2"/>
+ </g>
+ <g id="shape105-99" v:mID="105" v:groupContext="shape" v:layerMember="0" transform="translate(346.215,-90.9181)">
+ <title>Dynamic connector.105</title>
+ <path d="M0 137.39 L5.31 137.39 A5.31496 5.31496 -180 0 0 10.63 132.08 L10.63 117.69 A5.66929 5.66929 -180 0 0 4.96 112.02
+ L-73.85 112.02 A5.66929 5.66929 -180 0 0 -79.52 117.69 L-79.52 126.3" class="st2"/>
+ </g>
+ <g id="shape106-104" v:mID="106" v:groupContext="shape" v:layerMember="0" transform="translate(361.732,-23.5087)">
+ <title>Dynamic connector.106</title>
+ <path d="M0 140.32 L5.6 140.32 A5.60486 5.60486 0 0 1 11.21 145.92 L11.21 149.35 A5.66929 5.66929 0 0 1 5.54 155.02 L-89.37
+ 155.02 A5.66929 5.66929 0 0 1 -95.03 149.35 L-95.03 78.66" class="st2"/>
+ </g>
+ <g id="shape107-109" v:mID="107" v:groupContext="shape" v:layerMember="0" transform="translate(349.684,-50.9732)">
+ <title>Dynamic connector.107</title>
+ <path d="M0 140.32 L5.74 140.32 A5.66929 5.66929 -180 0 0 11.41 134.65 L11.41 123.78 A5.66929 5.66929 -180 0 0 5.74 118.11
+ L-48.9 118.11 A5.66929 5.66929 0 0 1 -52.91 116.44 A2.3622 2.3622 -180 0 0 -56.26 116.44 A5.66929 5.66929
+ 0 0 1 -60.28 118.11 L-77.32 118.11 A5.66929 5.66929 0 0 1 -82.99 112.44 L-82.99 106.12" class="st2"/>
+ </g>
+ <g id="shape108-114" v:mID="108" v:groupContext="shape" v:layerMember="0" transform="translate(213.081,-108.042)">
+ <title>Dynamic connector.125</title>
+ <path d="M0 141.49 L10.62 141.49 A5.66929 5.66929 0 0 1 16.29 147.16 L16.29 147.64 A5.66929 5.66929 -180 0 0 21.96 153.31
+ L40.17 153.31" class="st2"/>
+ </g>
+ <g id="shape109-119" v:mID="109" v:groupContext="shape" v:layerMember="0" transform="translate(213.081,-105.952)">
+ <title>Dynamic connector.127</title>
+ <path d="M0 139.4 L10.62 139.4 A5.66929 5.66929 -180 0 0 16.29 133.74 L16.29 132.72 A5.66929 5.66929 0 0 1 21.96 127.05
+ L181.9 127.05" class="st2"/>
+ </g>
+ <g id="shape110-124" v:mID="110" v:groupContext="shape" v:layerMember="0" transform="translate(218.656,-80.2016)">
+ <title>Dynamic connector.128</title>
+ <path d="M0 140.32 L5.36 140.32 A5.35872 5.35872 -180 0 0 10.72 134.96 L10.72 106.97 A5.66929 5.66929 0 0 1 16.39 101.3
+ L176.33 101.3" class="st2"/>
+ </g>
+ <g id="shape111-129" v:mID="111" v:groupContext="shape" v:layerMember="0" transform="translate(218.656,-80.2016)">
+ <title>Dynamic connector.126</title>
+ <path d="M0 140.32 L5.31 140.32 A5.31496 5.31496 -180 0 0 10.63 135 L10.63 131.14 A5.66929 5.66929 0 0 1 16.3 125.47
+ L34.6 125.47" class="st2"/>
+ </g>
+ <g id="shape137-134" v:mID="137" v:groupContext="shape" v:layerMember="0" transform="translate(419.113,-126.228)">
+ <title>Dynamic connector.137</title>
+ <path d="M0 147.33 L10.56 147.33 a0.0732889 0.0732889 0 0 1 0.0732889 0.0732889 L10.63 147.4 a0.0732889 0.0732889 -180
+ 0 0 0.0732889 0.0732889 L15.51 147.48" class="st2"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraint.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/constraint.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraint.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/constraint.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraint.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraint.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 constraint.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="2.25164in"
+ height="0.616735in" viewBox="0 0 162.118 44.4049" xml:space="preserve" color-interpolation-filters="sRGB" class="st5">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st3 {marker-end:url(#mrkr2-14);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-14" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape49-1" v:mID="49" v:groupContext="shape" v:layerMember="0;1" transform="translate(150.413,-29.8726)">
+ <title>On-page reference.25</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 38.67 A5.73228 5.73228 0 0 1 11.46 38.67 A5.73228 5.73228 0 1 1 0 38.67 Z" class="st1"/>
+ </g>
+ <g id="shape50-3" v:mID="50" v:groupContext="shape" v:layerMember="1" transform="translate(44.0506,-29.0537)">
+ <title>Process.73</title>
+ <desc>fieldConstraint</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="37.8537" width="62.08" height="13.1024"/>
+ <rect x="0" y="31.3025" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="5.46" y="40.25" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>fieldConstraint</text> </g>
+ <g id="shape51-6" v:mID="51" v:groupContext="shape" v:layerMember="1" transform="translate(44.0506,-0.24)">
+ <title>Process.74</title>
+ <desc>inlineEvalConstraint</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="39.0711" cy="37.8537" width="78.15" height="13.1024"/>
+ <rect x="0" y="31.3025" width="78.1421" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="3.72" y="40.25" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>inlineEvalConstraint</text> </g>
+ <g id="shape52-9" v:mID="52" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-35.3372)">
+ <title>Dynamic connector.75</title>
+ <path d="M0 44.4 L8.44 44.4 A5.66929 5.66929 0 0 1 14.11 50.07 L14.11 67.28 A5.66929 5.66929 -180 0 0 19.78 72.95 L29.59
+ 72.95" class="st3"/>
+ </g>
+ <g id="shape53-15" v:mID="53" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-28.3844)">
+ <title>Dynamic connector.79</title>
+ <path d="M0 37.45 L29.59 37.21" class="st3"/>
+ </g>
+ <g id="shape54-20" v:mID="54" v:groupContext="shape" v:layerMember="0" transform="translate(106.125,-42.6915)">
+ <title>Dynamic connector.88</title>
+ <path d="M0 51.49 L41.53 51.49" class="st3"/>
+ </g>
+ <g id="shape55-25" v:mID="55" v:groupContext="shape" v:layerMember="0" transform="translate(122.193,-6.79118)">
+ <title>Dynamic connector.92</title>
+ <path d="M0 44.4 L5.67 44.4 A5.66929 5.66929 -180 0 0 11.34 38.74 L11.34 21.26 A5.66929 5.66929 0 0 1 17.01 15.59 L25.46
+ 15.59" class="st3"/>
+ </g>
+ <g id="shape56-30" v:mID="56" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-29.6049)">
+ <title>On-page reference.93</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 38.67 A5.73228 5.73228 0 0 1 11.46 38.67 A5.73228 5.73228 0 1 1 0 38.67 Z" class="st1"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraintGroup.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/constraintGroup.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraintGroup.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/constraintGroup.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraintGroup.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraintGroup.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 constraintGroup.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="2.78069in"
+ height="0.244444in" viewBox="0 0 200.21 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st7">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st3 {marker-end:url(#mrkr2-11);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st5 {fill:#000000;font-family:Arial;font-size:0.666664em}
+ .st6 {font-size:1em}
+ .st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-11" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape37-1" v:mID="37" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-2.56741)">
+ <title>On-page reference.185</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.37 A6.23259 6.23259 0 0 1 12.47 11.37 A6.23259 6.23259 0 1 1 0 11.37 Z" class="st1"/>
+ </g>
+ <g id="shape38-3" v:mID="38" v:groupContext="shape" v:layerMember="1" transform="translate(74.8813,-2.24882)">
+ <title>Process.187</title>
+ <desc>constraints</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="25.2236" cy="11.0488" width="50.45" height="13.1024"/>
+ <rect x="0" y="4.49764" width="50.4472" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="5.88" y="13.45" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>constraints</text> </g>
+ <g id="shape39-6" v:mID="39" v:groupContext="shape" v:layerMember="0" transform="translate(12.7052,-1.71339)">
+ <title>Dynamic connector.190</title>
+ <path d="M0 10.51 L17.64 10.51" class="st3"/>
+ </g>
+ <g id="shape40-12" v:mID="40" v:groupContext="shape" v:layerMember="0" transform="translate(125.329,-1.71339)">
+ <title>Dynamic connector.188</title>
+ <path d="M0 10.51 L17.64 10.51" class="st3"/>
+ </g>
+ <g id="shape41-17" v:mID="41" v:groupContext="shape" v:layerMember="1" transform="translate(33.1088,-1.67704)">
+ <title>Process.191</title>
+ <desc>‘(‘</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="10.6844" cy="10.477" width="21.37" height="14.2459"/>
+ <rect x="0" y="3.35409" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.57" y="12.88" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+ v:langID="2057">(</tspan>‘</text> </g>
+ <g id="shape42-21" v:mID="42" v:groupContext="shape" v:layerMember="1" transform="translate(145.732,-1.67704)">
+ <title>Process.195</title>
+ <desc>‘)‘</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="10.6844" cy="10.477" width="21.37" height="14.2459"/>
+ <rect x="0" y="3.35409" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.57" y="12.88" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st6"
+ v:langID="2057">)</tspan>‘</text> </g>
+ <g id="shape43-25" v:mID="43" v:groupContext="shape" v:layerMember="0;1" transform="translate(187.505,-2.56741)">
+ <title>On-page reference.186</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.37 A6.23259 6.23259 0 0 1 12.47 11.37 A6.23259 6.23259 0 1 1 0 11.37 Z" class="st1"/>
+ </g>
+ <g id="shape44-27" v:mID="44" v:groupContext="shape" v:layerMember="0" transform="translate(167.101,-1.71339)">
+ <title>Dynamic connector.196</title>
+ <path d="M0 10.51 L17.64 10.51" class="st3"/>
+ </g>
+ <g id="shape45-32" v:mID="45" v:groupContext="shape" v:layerMember="0" transform="translate(54.4777,-1.71339)">
+ <title>Dynamic connector.197</title>
+ <path d="M0 10.51 L17.64 10.51" class="st3"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraints.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/constraints.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraints.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/constraints.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraints.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/constraints.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 constraints.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="4.70892in"
+ height="1.8644in" viewBox="0 0 339.042 134.237" xml:space="preserve" color-interpolation-filters="sRGB" class="st6">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st3 {fill:#000000;font-family:Arial;font-size:0.666664em}
+ .st4 {marker-end:url(#mrkr2-19);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st5 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st6 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-19" class="st5" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape18-1" v:mID="18" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-121.532)">
+ <title>On-page reference.68</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 128 A6.23259 6.23259 0 0 1 12.47 128 A6.23259 6.23259 0 1 1 0 128 Z" class="st1"/>
+ </g>
+ <g id="shape19-3" v:mID="19" v:groupContext="shape" v:layerMember="0;1" transform="translate(326.337,-54.6268)">
+ <title>On-page reference.76</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 128 A6.23259 6.23259 0 0 1 12.47 128 A6.23259 6.23259 0 1 1 0 128 Z" class="st1"/>
+ </g>
+ <g id="shape20-5" v:mID="20" v:groupContext="shape" v:layerMember="1" transform="translate(37.6537,-92.0063)">
+ <title>Process.78</title>
+ <desc>constraint</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="25.2236" cy="127.686" width="50.45" height="13.1024"/>
+ <rect x="0" y="121.134" width="50.4472" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.88" y="130.09" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>constraint</text> </g>
+ <g id="shape21-8" v:mID="21" v:groupContext="shape" v:layerMember="1" transform="translate(37.6537,-57.8024)">
+ <title>Process.80</title>
+ <desc>constraintGroup</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="127.686" width="62.08" height="13.1024"/>
+ <rect x="0" y="121.134" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="2.57" y="130.09" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>constraintGroup</text> </g>
+ <g id="shape22-11" v:mID="22" v:groupContext="shape" v:layerMember="1" transform="translate(153.311,-71.562)">
+ <title>Process.81</title>
+ <desc>‘,’ | ‘&&’ | ‘||’</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="22.6772" cy="127.114" width="45.36" height="14.2459"/>
+ <rect x="0" y="119.991" width="45.3543" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="2.29" y="129.51" class="st3" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>‘,’ | ‘&&’ | ‘||’</text> </g>
+ <g id="shape23-14" v:mID="23" v:groupContext="shape" v:layerMember="0" transform="translate(12.7052,-127.764)">
+ <title>Dynamic connector.82</title>
+ <path d="M0 134.24 L5.31 134.24 A5.31496 5.31496 0 0 1 10.63 139.55 L10.63 157.77 A5.66929 5.66929 -180 0 0 16.3 163.44
+ L22.19 163.44" class="st4"/>
+ </g>
+ <g id="shape24-20" v:mID="24" v:groupContext="shape" v:layerMember="0" transform="translate(12.7052,-127.764)">
+ <title>Dynamic connector.84</title>
+ <path d="M0 134.24 L5.31 134.24 A5.31496 5.31496 0 0 1 10.63 139.55 L10.63 191.98 A5.66929 5.66929 -180 0 0 16.3 197.65
+ L22.19 197.65" class="st4"/>
+ </g>
+ <g id="shape25-25" v:mID="25" v:groupContext="shape" v:layerMember="0" transform="translate(88.1009,-98.5575)">
+ <title>Dynamic connector.85</title>
+ <path d="M0 134.24 L26.94 134.24 A5.66929 5.66929 -180 0 0 32.61 128.57 L32.61 122.89 A5.66929 5.66929 0 0 1 38.28 117.22
+ L238.8 117.22 A5.66929 5.66929 0 0 1 244.47 122.89 L244.47 162.94" class="st4"/>
+ </g>
+ <g id="shape26-30" v:mID="26" v:groupContext="shape" v:layerMember="0" transform="translate(88.1009,-98.5575)">
+ <title>Dynamic connector.87</title>
+ <path d="M0 134.24 L26.94 134.24 A5.66929 5.66929 0 0 1 32.61 139.91 L32.61 148.44 A5.66929 5.66929 -180 0 0 38.28 154.11
+ L62.45 154.11" class="st4"/>
+ </g>
+ <g id="shape27-35" v:mID="27" v:groupContext="shape" v:layerMember="1" transform="translate(225.028,-70.7528)">
+ <title>Process.91</title>
+ <desc>constraint</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="25.2236" cy="127.686" width="50.45" height="13.1024"/>
+ <rect x="0" y="121.134" width="50.4472" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.88" y="130.09" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>constraint</text> </g>
+ <g id="shape28-38" v:mID="28" v:groupContext="shape" v:layerMember="1" transform="translate(225.647,-31.9496)">
+ <title>Process.148</title>
+ <desc>constraintGroup</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="127.686" width="62.08" height="13.1024"/>
+ <rect x="0" y="121.134" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="2.57" y="130.09" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>constraintGroup</text> </g>
+ <g id="shape29-41" v:mID="29" v:groupContext="shape" v:layerMember="0" transform="translate(198.665,-78.6849)">
+ <title>Dynamic connector.157</title>
+ <path d="M0 134.24 L9.01 134.24 A5.66929 5.66929 0 0 1 14.68 139.91 L14.68 168.75 A5.66929 5.66929 -180 0 0 20.34 174.42
+ L24.22 174.42" class="st4"/>
+ </g>
+ <g id="shape30-46" v:mID="30" v:groupContext="shape" v:layerMember="0" transform="translate(275.476,-77.3039)">
+ <title>Dynamic connector.160</title>
+ <path d="M0 134.24 L31.61 134.24 A5.66929 5.66929 0 0 1 37.28 139.91 L37.28 145.01 A5.66929 5.66929 -180 0 0 42.95 150.68
+ L48.1 150.68" class="st4"/>
+ </g>
+ <g id="shape31-51" v:mID="31" v:groupContext="shape" v:layerMember="0" transform="translate(287.721,-38.5008)">
+ <title>Dynamic connector.162</title>
+ <path d="M0 134.24 L19.01 134.24 A5.66929 5.66929 0 0 1 24.68 139.91 L24.68 146.46 A5.66929 5.66929 0 0 1 19.01 152.13
+ L-143.97 152.13 A5.66929 5.66929 0 0 1 -149.64 146.46 L-149.64 99.72 A5.66929 5.66929 0 0 1 -143.97 94.05
+ L-137.17 94.05" class="st4"/>
+ </g>
+ <g id="shape32-56" v:mID="32" v:groupContext="shape" v:layerMember="0" transform="translate(275.476,-70.9078)">
+ <title>Dynamic connector.163</title>
+ <path d="M0 127.84 L30.55 127.84 A5.66929 5.66929 -180 0 0 36.22 122.17 L36.22 109.42 A5.66929 5.66929 -180 0 0 30.55
+ 103.75 L-132.23 103.75 A5.66929 5.66929 -180 0 0 -137.9 109.42 L-137.9 120.79 A5.66929 5.66929 -180 0 0
+ -132.23 126.46 L-124.92 126.46" class="st4"/>
+ </g>
+ <g id="shape33-61" v:mID="33" v:groupContext="shape" v:layerMember="0" transform="translate(287.721,-38.5008)">
+ <title>Dynamic connector.165</title>
+ <path d="M0 134.24 L20.54 134.24 A5.66929 5.66929 -180 0 0 26.21 128.57 L26.21 117.55 A5.66929 5.66929 0 0 1 31.88 111.88
+ L35.86 111.88" class="st4"/>
+ </g>
+ <g id="shape34-66" v:mID="34" v:groupContext="shape" v:layerMember="0" transform="translate(99.7281,-64.3536)">
+ <title>Dynamic connector.20</title>
+ <path d="M0 134.24 L15.32 134.24 A5.66929 5.66929 -180 0 0 20.98 128.57 L20.98 125.57 A5.66929 5.66929 0 0 1 26.65 119.91
+ L50.82 119.91" class="st4"/>
+ </g>
+ <g id="shape35-71" v:mID="35" v:groupContext="shape" v:layerMember="0" transform="translate(198.665,-85.081)">
+ <title>Dynamic connector.69</title>
+ <path d="M0 140.63 L9.94 140.63 a0.690491 0.690491 0 0 1 0.690491 0.690491 L10.63 141.32 a0.690491 0.690491 -180 0 0
+ 0.690491 0.690491 L23.6 142.01" class="st4"/>
+ </g>
+ <g id="shape36-76" v:mID="36" v:groupContext="shape" v:layerMember="0" transform="translate(99.7281,-66.5768)">
+ <title>Dynamic connector.77</title>
+ <path d="M0 136.46 L16.34 136.46 A5.66929 5.66929 0 0 1 22.01 142.13 L22.01 186.34 A5.66929 5.66929 -180 0 0 27.68 192.01
+ L227.17 192.01 A5.66929 5.66929 -180 0 0 232.84 186.34 L232.84 148.95" class="st4"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/fieldConstraint.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/fieldConstraint.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/fieldConstraint.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/fieldConstraint.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/fieldConstraint.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/fieldConstraint.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 fieldConstraint.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="5.04572in"
+ height="1.50777in" viewBox="0 0 363.292 108.559" xml:space="preserve" color-interpolation-filters="sRGB" class="st6">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st3 {marker-end:url(#mrkr2-20);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st5 {fill:#000000;font-family:Arial;font-size:0.666664em}
+ .st6 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-20" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape58-1" v:mID="58" v:groupContext="shape" v:layerMember="0;1" transform="translate(351.587,-80.9014)">
+ <title>On-page reference.144</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 102.83 A5.73228 5.73228 0 0 1 11.46 102.83 A5.73228 5.73228 0 1 1 0 102.83 Z" class="st1"/>
+ </g>
+ <g id="shape59-3" v:mID="59" v:groupContext="shape" v:layerMember="1" transform="translate(231.815,-80.0825)">
+ <title>Process.145</title>
+ <desc>singleValueRestrion</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="47.5636" cy="102.008" width="95.13" height="13.1024"/>
+ <rect x="0" y="95.4568" width="95.1273" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="12" y="104.41" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>singleValueRestrion</text> </g>
+ <g id="shape60-6" v:mID="60" v:groupContext="shape" v:layerMember="1" transform="translate(231.074,-53.4683)">
+ <title>Process.146</title>
+ <desc>compoundValueRestrion</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="47.5636" cy="102.008" width="95.13" height="13.1024"/>
+ <rect x="0" y="95.4568" width="95.1273" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="3.77" y="104.41" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>compoundValueRestrion</text> </g>
+ <g id="shape61-9" v:mID="61" v:groupContext="shape" v:layerMember="1" transform="translate(231.074,-26.8542)">
+ <title>Process.147</title>
+ <desc>returnValueRestriction</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="47.5636" cy="102.008" width="95.13" height="13.1024"/>
+ <rect x="0" y="95.4568" width="95.1273" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="8" y="104.41" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>returnValueRestriction</text> </g>
+ <g id="shape62-12" v:mID="62" v:groupContext="shape" v:layerMember="1" transform="translate(228.406,-0.24)">
+ <title>Process.149</title>
+ <desc>regexpRestriction</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="47.5636" cy="102.008" width="95.13" height="13.1024"/>
+ <rect x="0" y="95.4568" width="95.1273" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="16.45" y="104.41" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>regexpRestriction</text> </g>
+ <g id="shape63-15" v:mID="63" v:groupContext="shape" v:layerMember="0" transform="translate(207.169,-86.6337)">
+ <title>Dynamic connector.151</title>
+ <path d="M0 108.56 L7.5 108.56 A5.66929 5.66929 0 0 1 13.17 114.23 L13.17 184.37 A4.03383 4.03383 -180 0 0 17.2 188.4
+ L18.48 188.4" class="st3"/>
+ </g>
+ <g id="shape64-21" v:mID="64" v:groupContext="shape" v:layerMember="0" transform="translate(207.169,-86.6337)">
+ <title>Dynamic connector.152</title>
+ <path d="M0 108.56 L7.5 108.56 A5.66929 5.66929 0 0 1 13.17 114.23 L13.17 156.42 A5.36783 5.36783 -180 0 0 18.54 161.79
+ L21.14 161.79" class="st3"/>
+ </g>
+ <g id="shape65-26" v:mID="65" v:groupContext="shape" v:layerMember="0" transform="translate(207.169,-86.6337)">
+ <title>Dynamic connector.153</title>
+ <path d="M0 108.56 L7.4 108.56 A5.66929 5.66929 0 0 1 13.07 114.23 L13.07 129.76 A5.41668 5.41668 -180 0 0 18.49 135.17
+ L21.14 135.17" class="st3"/>
+ </g>
+ <g id="shape66-31" v:mID="66" v:groupContext="shape" v:layerMember="0" transform="translate(207.169,-79.5471)">
+ <title>Dynamic connector.154</title>
+ <path d="M0 101.47 L21.89 101.47" class="st3"/>
+ </g>
+ <g id="shape67-36" v:mID="67" v:groupContext="shape" v:layerMember="0" transform="translate(326.942,-93.7203)">
+ <title>Dynamic connector.155</title>
+ <path d="M0 115.65 L21.89 115.65" class="st3"/>
+ </g>
+ <g id="shape68-41" v:mID="68" v:groupContext="shape" v:layerMember="0" transform="translate(326.201,-60.0195)">
+ <title>Dynamic connector.156</title>
+ <path d="M0 108.56 L5.31 108.56 A5.31496 5.31496 -180 0 0 10.63 103.24 L10.63 87.61 A5.66929 5.66929 0 0 1 16.3 81.94
+ L22.63 81.94" class="st3"/>
+ </g>
+ <g id="shape69-46" v:mID="69" v:groupContext="shape" v:layerMember="0" transform="translate(326.201,-33.4054)">
+ <title>Dynamic connector.158</title>
+ <path d="M0 108.56 L5.31 108.56 A5.31496 5.31496 -180 0 0 10.63 103.24 L10.63 61 A5.66929 5.66929 0 0 1 16.3 55.33 L22.63
+ 55.33" class="st3"/>
+ </g>
+ <g id="shape70-51" v:mID="70" v:groupContext="shape" v:layerMember="0" transform="translate(323.533,-6.79118)">
+ <title>Dynamic connector.161</title>
+ <path d="M0 108.56 L7.63 108.56 A5.66929 5.66929 -180 0 0 13.3 102.89 L13.3 34.39 A5.66929 5.66929 0 0 1 18.97 28.72
+ L25.29 28.72" class="st3"/>
+ </g>
+ <g id="shape72-56" v:mID="72" v:groupContext="shape" v:layerMember="1" transform="translate(156.232,-80.0825)">
+ <title>Process.164</title>
+ <desc>fieldName</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="25.4689" cy="102.008" width="50.94" height="13.1024"/>
+ <rect x="0" y="95.4568" width="50.9378" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.47" y="104.41" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>fieldName</text> </g>
+ <g id="shape73-59" v:mID="73" v:groupContext="shape" v:layerMember="1" transform="translate(36.3498,-80.0825)">
+ <title>Process.168</title>
+ <desc>fieldBinding</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="25.4689" cy="102.008" width="50.94" height="13.1024"/>
+ <rect x="0" y="95.4568" width="50.9378" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="4.79" y="104.41" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>fieldBinding</text> </g>
+ <g id="shape74-62" v:mID="74" v:groupContext="shape" v:layerMember="1" transform="translate(111.933,-80.0825)">
+ <title>Process.169</title>
+ <desc>:</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="9.82677" cy="102.008" width="19.66" height="13.1024"/>
+ <rect x="0" y="95.4568" width="19.6535" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="8.71" y="104.41" class="st5" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>:</text> </g>
+ <g id="shape75-65" v:mID="75" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-80.9014)">
+ <title>On-page reference.170</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 102.83 A5.73228 5.73228 0 0 1 11.46 102.83 A5.73228 5.73228 0 1 1 0 102.83 Z" class="st1"/>
+ </g>
+ <g id="shape76-67" v:mID="76" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-79.5471)">
+ <title>Dynamic connector.171</title>
+ <path d="M0 101.47 L21.89 101.47" class="st3"/>
+ </g>
+ <g id="shape77-72" v:mID="77" v:groupContext="shape" v:layerMember="0" transform="translate(87.2876,-79.5471)">
+ <title>Dynamic connector.172</title>
+ <path d="M0 101.47 L21.89 101.47" class="st3"/>
+ </g>
+ <g id="shape78-77" v:mID="78" v:groupContext="shape" v:layerMember="0" transform="translate(131.586,-79.5471)">
+ <title>Dynamic connector.173</title>
+ <path d="M0 101.47 L21.89 101.47" class="st3"/>
+ </g>
+ <g id="shape79-82" v:mID="79" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-79.5471)">
+ <title>Dynamic connector.174</title>
+ <path d="M0 101.47 L8.5 101.47 A5.66929 5.66929 -180 0 0 14.17 95.8 L14.17 94.02 A5.66929 5.66929 0 0 1 19.84 88.35 L118.35
+ 88.35 A5.66929 5.66929 0 0 1 124.02 94.02 L124.02 95.8 A5.66929 5.66929 -180 0 0 129.69 101.47 L141.77 101.47"
+ class="st3"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/inlineEvalConstraint.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/inlineEvalConstraint.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/inlineEvalConstraint.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/inlineEvalConstraint.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/inlineEvalConstraint.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/inlineEvalConstraint.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 inlineEvalConstraint.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="2.68181in"
+ height="0.244444in" viewBox="0 0 193.09 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st7">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em}
+ .st3 {font-size:1em}
+ .st4 {marker-end:url(#mrkr2-15);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st5 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st6 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-15" class="st5" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Flowchart" v:index="0"/>
+ <v:layer v:name="Connector" v:index="1"/>
+ <g id="shape127-1" v:mID="127" v:groupContext="shape" v:layerMember="0" transform="translate(27.0236,-2.24882)">
+ <title>Process.175</title>
+ <desc>‘eval(‘</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="14.5115" cy="11.0488" width="29.03" height="13.1024"/>
+ <rect x="0" y="4.49764" width="29.023" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="4.05" y="13.45" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+ v:langID="2057">eval</tspan><tspan class="st3" v:langID="2057">(</tspan>‘</text> </g>
+ <g id="shape128-6" v:mID="128" v:groupContext="shape" v:layerMember="0" transform="translate(143.244,-2.24882)">
+ <title>Process.176</title>
+ <desc>‘)’</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="9.82677" cy="11.0488" width="19.66" height="13.1024"/>
+ <rect x="0" y="4.49764" width="19.6535" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="6.72" y="13.45" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+ v:langID="2057">)</tspan>’</text> </g>
+ <g id="shape129-10" v:mID="129" v:groupContext="shape" v:layerMember="1" transform="translate(12.9134,-1.71339)">
+ <title>Dynamic connector.177</title>
+ <path d="M0.06 10.51 L11.35 10.51" class="st4"/>
+ </g>
+ <g id="shape130-16" v:mID="130" v:groupContext="shape" v:layerMember="1;0" transform="translate(181.386,-3.06772)">
+ <title>On-page reference.178</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ <g id="shape131-18" v:mID="131" v:groupContext="shape" v:layerMember="1" transform="translate(162.898,-1.71339)">
+ <title>Dynamic connector.179</title>
+ <path d="M0 10.51 L15.73 10.51" class="st4"/>
+ </g>
+ <g id="shape132-23" v:mID="132" v:groupContext="shape" v:layerMember="0" transform="translate(75.763,-2.24882)">
+ <title>Process.180</title>
+ <desc>expression</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="25.4689" cy="11.0488" width="50.94" height="13.1024"/>
+ <rect x="0" y="4.49764" width="50.9378" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="6.13" y="13.45" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>expression</text> </g>
+ <g id="shape133-26" v:mID="133" v:groupContext="shape" v:layerMember="1" transform="translate(56.0466,-1.71339)">
+ <title>Dynamic connector.181</title>
+ <path d="M0 10.51 L16.96 10.51" class="st4"/>
+ </g>
+ <g id="shape134-31" v:mID="134" v:groupContext="shape" v:layerMember="1" transform="translate(126.701,-1.71339)">
+ <title>Dynamic connector.182</title>
+ <path d="M0 10.51 L13.78 10.51" class="st4"/>
+ </g>
+ <g id="shape135-36" v:mID="135" v:groupContext="shape" v:layerMember="1;0" transform="translate(1.51181,-3.06772)">
+ <title>On-page reference.183</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ </g>
+</svg>
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/lhs.png
===================================================================
(Binary files differ)
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/lhs.svg
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/lhs.svg 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/lhs.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -1,33 +1,38 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 lhs.svg Page-1 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" xmlns:xlink="http://www.w3.org/1999/xlink" width="1.48536in" height="0.477498in" viewBox="0 0 106.946 34.3799" xml:space="preserve" color-interpolation-filters="sRGB" class="st5" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 lhs.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="2.01454in"
+ height="0.484719in" viewBox="0 0 145.047 34.8997" xml:space="preserve" color-interpolation-filters="sRGB" class="st5">
<v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
- <style type="text/css" xml:space="preserve">
-
+ <style type="text/css">
+ <![CDATA[
.st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
.st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
.st3 {marker-end:url(#mrkr2-9);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
.st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
.st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
-
+ ]]>
</style>
<defs id="Markers">
<g id="lend2">
<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
</g>
- <marker xmlns="http://www.w3.org/TR/xhtml1/transitional" overflow="visible" id="mrkr2-9" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto" markerUnits="strokeWidth" preserveAspectRatio="xMidYMid meet">
- <use xmlns="http://www.w3.org/2000/svg" xlink:href="#lend2" transform="scale(-11.5,-11.5) " xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
+ <marker id="mrkr2-9" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
</marker>
</defs>
<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
- <title content="structured text">Page-1</title>
- <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" v:shadowOffsetY="-8.50394"/>
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
<v:layer v:name="Flowchart" v:index="0"/>
<v:layer v:name="Connector" v:index="1"/>
<g id="shape84-1" v:mID="84" v:groupContext="shape" v:layerMember="0" transform="translate(28.1683,-2.13018)">
- <title content="structured text">Process.84</title>
- <desc content="structured text">pattern</desc>
+ <title>Process.84</title>
+ <desc>conditionalElement</desc>
<v:custProps>
<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -37,36 +42,37 @@
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="21.4689" cy="27.71" width="42.94" height="13.3396"/>
- <rect x="0" y="21.0402" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="9.02" y="30.11" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>pattern</text> </g>
- <g id="shape92-4" v:mID="92" v:groupContext="shape" v:layerMember="1" transform="translate(71.1061,-5.0483)">
- <title content="structured text">Dynamic connector.92</title>
- <path d="M0 30.63 L6.59 30.63 A5.66929 5.66929 -180 0 0 12.26 24.96 L12.26 14.62 A5.66929 5.66929 -180 0 0 6.59 8.95 L-15.8 8.95 A5.66929 5.66929 -180 0 0 -21.47 14.62 L-21.47 21.2" class="st3"/>
+ <v:textRect cx="40.6028" cy="28.2299" width="81.21" height="13.3396"/>
+ <rect x="0" y="21.5601" width="81.2056" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="6.8" y="30.63" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>conditionalElement</text> </g>
+ <g id="shape92-4" v:mID="92" v:groupContext="shape" v:layerMember="1" transform="translate(109.374,-5.0483)">
+ <title>Dynamic connector.92</title>
+ <path d="M0 31.15 L5.31 31.15 A5.31496 5.31496 -180 0 0 10.63 25.83 L10.63 19.52 A5.66929 5.66929 -180 0 0 4.96 13.85
+ L-35.29 13.85 A5.31496 5.31496 -180 0 0 -40.6 19.16 L-40.6 21.72" class="st3"/>
</g>
<g id="shape130-10" v:mID="130" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.24,-2.96391)">
- <title content="structured text">On-page reference.130</title>
+ <title>On-page reference.130</title>
<v:userDefs>
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <path d="M0 28.54 A5.83609 5.83609 0 1 1 11.67 28.54 A5.83609 5.83609 0 0 1 0 28.54 Z" class="st1"/>
+ <path d="M0 29.06 A5.83609 5.83609 0 1 1 11.67 29.06 A5.83609 5.83609 0 0 1 0 29.06 Z" class="st1"/>
</g>
<g id="shape131-12" v:mID="131" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-1.71339)">
- <title content="structured text">Dynamic connector.131</title>
- <path d="M0 27.29 L13.5 27.29" class="st3"/>
+ <title>Dynamic connector.131</title>
+ <path d="M0 27.81 L13.5 27.81" class="st3"/>
</g>
- <g id="shape132-17" v:mID="132" v:groupContext="shape" v:layerMember="1;0" transform="translate(95.0338,-2.96391)">
- <title content="structured text">On-page reference.132</title>
+ <g id="shape132-17" v:mID="132" v:groupContext="shape" v:layerMember="1;0" transform="translate(133.135,-2.96391)">
+ <title>On-page reference.132</title>
<v:userDefs>
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <path d="M0 28.54 A5.83609 5.83609 0 1 1 11.67 28.54 A5.83609 5.83609 0 0 1 0 28.54 Z" class="st1"/>
+ <path d="M0 29.06 A5.83609 5.83609 0 1 1 11.67 29.06 A5.83609 5.83609 0 0 1 0 29.06 Z" class="st1"/>
</g>
- <g id="shape133-19" v:mID="133" v:groupContext="shape" v:layerMember="1" transform="translate(71.1061,-1.71339)">
- <title content="structured text">Dynamic connector.133</title>
- <path d="M0 27.29 L21.17 27.29" class="st3"/>
+ <g id="shape133-19" v:mID="133" v:groupContext="shape" v:layerMember="1" transform="translate(109.374,-1.71339)">
+ <title>Dynamic connector.133</title>
+ <path d="M0 27.81 L21 27.81" class="st3"/>
</g>
</g>
-</svg>
\ No newline at end of file
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literal.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/literal.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literal.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/literal.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literal.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literal.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 literal.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="2.46817in"
+ height="1.71232in" viewBox="0 0 177.708 123.287" xml:space="preserve" color-interpolation-filters="sRGB" class="st5">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st3 {marker-end:url(#mrkr2-23);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-23" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape39-1" v:mID="39" v:groupContext="shape" v:layerMember="0;1" transform="translate(166.004,-108.754)">
+ <title>On-page reference.42</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 117.55 A5.73228 5.73228 0 0 1 11.46 117.55 A5.73228 5.73228 0 1 1 0 117.55 Z" class="st1"/>
+ </g>
+ <g id="shape40-3" v:mID="40" v:groupContext="shape" v:layerMember="1" transform="translate(59.5782,-107.936)">
+ <title>Process.99</title>
+ <desc>numeric</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="116.736" width="62.08" height="13.1024"/>
+ <rect x="0" y="110.184" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="16.8" y="119.14" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>numeric</text> </g>
+ <g id="shape41-6" v:mID="41" v:groupContext="shape" v:layerMember="1" transform="translate(59.5782,-78.8542)">
+ <title>Process.100</title>
+ <desc>date</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="116.736" width="62.08" height="13.1024"/>
+ <rect x="0" y="110.184" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="23.24" y="119.14" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>date</text> </g>
+ <g id="shape42-9" v:mID="42" v:groupContext="shape" v:layerMember="1" transform="translate(59.5782,-51.1006)">
+ <title>Process.101</title>
+ <desc>string</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="116.736" width="62.08" height="13.1024"/>
+ <rect x="0" y="110.184" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="21.24" y="119.14" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>string</text> </g>
+ <g id="shape43-12" v:mID="43" v:groupContext="shape" v:layerMember="1" transform="translate(59.5782,-26.4447)">
+ <title>Process.102</title>
+ <desc>boolean</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="116.736" width="62.08" height="13.1024"/>
+ <rect x="0" y="110.184" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="16.79" y="119.14" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>boolean</text> </g>
+ <g id="shape44-15" v:mID="44" v:groupContext="shape" v:layerMember="1" transform="translate(59.5782,-0.24)">
+ <title>Process.103</title>
+ <desc>enum</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="116.736" width="62.08" height="13.1024"/>
+ <rect x="0" y="110.184" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="21.02" y="119.14" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>enum</text> </g>
+ <g id="shape45-18" v:mID="45" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-114.487)">
+ <title>Dynamic connector.104</title>
+ <path d="M0 123.29 L23.97 123.29 A5.66929 5.66929 0 0 1 29.64 128.96 L29.64 225.31 A5.66929 5.66929 -180 0 0 35.31 230.98
+ L45.11 230.98" class="st3"/>
+ </g>
+ <g id="shape46-24" v:mID="46" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-114.487)">
+ <title>Dynamic connector.105</title>
+ <path d="M0 123.29 L23.97 123.29 A5.66929 5.66929 0 0 1 29.64 128.96 L29.64 199.11 A5.66929 5.66929 -180 0 0 35.31 204.78
+ L45.11 204.78" class="st3"/>
+ </g>
+ <g id="shape47-29" v:mID="47" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-114.487)">
+ <title>Dynamic connector.106</title>
+ <path d="M0 123.29 L23.97 123.29 A5.66929 5.66929 0 0 1 29.64 128.96 L29.64 174.45 A5.66929 5.66929 -180 0 0 35.31 180.12
+ L45.11 180.12" class="st3"/>
+ </g>
+ <g id="shape48-34" v:mID="48" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-114.487)">
+ <title>Dynamic connector.107</title>
+ <path d="M0 123.29 L23.97 123.29 A5.66929 5.66929 0 0 1 29.64 128.96 L29.64 146.7 A5.66929 5.66929 -180 0 0 35.31 152.37
+ L45.11 152.37" class="st3"/>
+ </g>
+ <g id="shape49-39" v:mID="49" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-107.4)">
+ <title>Dynamic connector.108</title>
+ <path d="M0 116.2 L45.11 116.2" class="st3"/>
+ </g>
+ <g id="shape50-44" v:mID="50" v:groupContext="shape" v:layerMember="0" transform="translate(121.653,-6.79118)">
+ <title>Dynamic connector.109</title>
+ <path d="M0 123.29 L8.98 123.29 A5.66929 5.66929 -180 0 0 14.65 117.62 L14.65 21.26 A5.66929 5.66929 0 0 1 20.32 15.59
+ L41.59 15.59" class="st3"/>
+ </g>
+ <g id="shape51-49" v:mID="51" v:groupContext="shape" v:layerMember="0" transform="translate(121.653,-121.573)">
+ <title>Dynamic connector.110</title>
+ <path d="M0 130.37 L41.59 130.37" class="st3"/>
+ </g>
+ <g id="shape52-54" v:mID="52" v:groupContext="shape" v:layerMember="0" transform="translate(121.653,-85.4054)">
+ <title>Dynamic connector.111</title>
+ <path d="M0 123.29 L8.98 123.29 A5.66929 5.66929 -180 0 0 14.65 117.62 L14.65 99.87 A5.66929 5.66929 0 0 1 20.32 94.21
+ L41.59 94.21" class="st3"/>
+ </g>
+ <g id="shape53-59" v:mID="53" v:groupContext="shape" v:layerMember="0" transform="translate(121.653,-57.6517)">
+ <title>Dynamic connector.112</title>
+ <path d="M0 123.29 L8.98 123.29 A5.66929 5.66929 -180 0 0 14.65 117.62 L14.65 72.12 A5.66929 5.66929 0 0 1 20.32 66.45
+ L41.59 66.45" class="st3"/>
+ </g>
+ <g id="shape54-64" v:mID="54" v:groupContext="shape" v:layerMember="0" transform="translate(121.653,-32.9959)">
+ <title>Dynamic connector.113</title>
+ <path d="M0 123.29 L8.98 123.29 A5.66929 5.66929 -180 0 0 14.65 117.62 L14.65 47.47 A5.66929 5.66929 0 0 1 20.32 41.8
+ L41.59 41.8" class="st3"/>
+ </g>
+ <g id="shape55-69" v:mID="55" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-108.754)">
+ <title>On-page reference.115</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 117.55 A5.73228 5.73228 0 0 1 11.46 117.55 A5.73228 5.73228 0 1 1 0 117.55 Z" class="st1"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literalRestriction.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/literalRestriction.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literalRestriction.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/literalRestriction.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literalRestriction.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/literalRestriction.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 literalRestriction.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="3.25255in"
+ height="0.244444in" viewBox="0 0 234.183 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st5">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st3 {marker-end:url(#mrkr2-11);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-11" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape7-1" v:mID="7" v:groupContext="shape" v:layerMember="0;1" transform="translate(222.479,-3.06772)">
+ <title>On-page reference.188</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ <g id="shape8-3" v:mID="8" v:groupContext="shape" v:layerMember="1" transform="translate(151.329,-2.24882)">
+ <title>Process.190</title>
+ <desc>literal</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="18.0669" cy="11.0488" width="36.14" height="13.1024"/>
+ <rect x="0" y="4.49764" width="36.1339" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="8.52" y="13.45" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>literal</text> </g>
+ <g id="shape9-6" v:mID="9" v:groupContext="shape" v:layerMember="0" transform="translate(91.6546,-1.71339)">
+ <title>Dynamic connector.197</title>
+ <path d="M0 10.51 L56.91 10.51" class="st3"/>
+ </g>
+ <g id="shape10-12" v:mID="10" v:groupContext="shape" v:layerMember="0" transform="translate(187.463,-1.71339)">
+ <title>Dynamic connector.199</title>
+ <path d="M0 10.51 L32.26 10.51" class="st3"/>
+ </g>
+ <g id="shape17-17" v:mID="17" v:groupContext="shape" v:layerMember="1" transform="translate(29.5802,-2.24882)">
+ <title>Process.13</title>
+ <desc>operator</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="11.0488" width="62.08" height="13.1024"/>
+ <rect x="0" y="4.49764" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="16.13" y="13.45" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>operator</text> </g>
+ <g id="shape18-20" v:mID="18" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-3.06772)">
+ <title>On-page reference.43</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ <g id="shape19-22" v:mID="19" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-1.71339)">
+ <title>Dynamic connector.44</title>
+ <path d="M0 10.51 L15.12 10.51" class="st3"/>
+ </g>
+ </g>
+</svg>
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/operator.png
===================================================================
(Binary files differ)
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/operator.svg
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/operator.svg 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/operator.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -1,40 +1,47 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 operator.svg Page-1 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" xmlns:xlink="http://www.w3.org/1999/xlink" width="3.49457in" height="0.188644in" viewBox="0 0 251.609 13.5824" xml:space="preserve" color-interpolation-filters="sRGB" class="st5" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 operator.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="5.2319in"
+ height="0.244444in" viewBox="0 0 376.697 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st6">
<v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
- <style type="text/css" xml:space="preserve">
-
+ <style type="text/css">
+ <![CDATA[
.st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
- .st2 {fill:#000000;font-family:Arial;font-size:0.583328em}
- .st3 {marker-end:url(#mrkr2-13);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
- .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.086956377384407}
- .st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
-
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em}
+ .st3 {font-size:1em}
+ .st4 {marker-end:url(#mrkr2-21);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st5 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st6 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
</style>
<defs id="Markers">
<g id="lend2">
<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
</g>
- <marker xmlns="http://www.w3.org/TR/xhtml1/transitional" overflow="visible" id="mrkr2-13" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="0" refX="-0" orient="auto" markerUnits="strokeWidth" preserveAspectRatio="xMidYMid meet">
- <use xmlns="http://www.w3.org/2000/svg" xlink:href="#lend2" transform="scale(-11.500019090944,-11.500019090944) " xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
+ <marker id="mrkr2-21" class="st5" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
</marker>
</defs>
<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
- <title content="structured text">Page-1</title>
- <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50392" v:shadowOffsetY="-8.50392"/>
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
<v:layer v:name="Connector" v:index="0"/>
<v:layer v:name="Flowchart" v:index="1"/>
- <g id="shape1-1" v:mID="1" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24228,-0.894998)">
- <title content="structured text">On-page reference.210</title>
+ <g id="shape11-1" v:mID="11" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-3.13071)">
+ <title>On-page reference.210</title>
<v:userDefs>
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
- <path d="M0 7.69 A5.73227 5.73227 0 0 1 11.46 7.69 A5.73227 5.73227 0 1 1 0 7.69 Z" class="st1"/>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.93 A5.66929 5.66929 0 1 1 11.34 11.93 A5.66929 5.66929 0 0 1 0 11.93 Z" class="st1"/>
</g>
- <g id="shape2-3" v:mID="2" v:groupContext="shape" v:layerMember="1" transform="translate(22.6793,-0.24)">
- <title content="structured text">Process.211</title>
- <desc content="structured text">'<' | '<=' | '>' | '>=' | '==' | '!=' | ‘matches’ | ‘contains’</desc>
+ <g id="shape12-3" v:mID="12" v:groupContext="shape" v:layerMember="1" transform="translate(38.7354,-2.24882)">
+ <title>Process.211</title>
+ <desc>'<' | '<=' | '>' | '>=' | '==' | '!=' | ‘contains’ | ‘not con...</desc>
<v:custProps>
<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -43,24 +50,29 @@
<v:userDefs>
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
- <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5196"/>
- <v:textRect cx="97.7952" cy="7.03115" width="195.6" height="13.1024"/>
- <path d="M0 10.75 A3.03627 2.83471 -180 0 0 3.04 13.58 L192.55 13.58 A3.03627 2.83471 -180 0 0 195.59 10.75 L195.59 3.31 A3.03627 2.83471 -180 0 0 192.55 0.48 L3.04 0.48 A3.03627 2.83471 -180 0 0 -0 3.31 L0 10.75 Z" class="st1"/>
- <text x="2.84" y="9.13" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>'<' | '<=' | '>' | '>=' | '==' | '!=' | ‘matches’ | ‘contains’ | ‘excludes’</text> </g>
- <g id="shape3-6" v:mID="3" v:groupContext="shape" v:layerMember="0;1" transform="translate(239.907,-0.894998)">
- <title content="structured text">On-page reference.212</title>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="155.823" cy="11.0488" width="311.65" height="13.1024"/>
+ <rect x="0" y="4.49764" width="311.646" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="8.91" y="13.45" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>'<' | '<=' | '>' | '>=' | '==' | '!='<tspan
+ class="st3" v:langID="2057"> | </tspan><tspan class="st3" v:langID="2057">‘contains’ </tspan><tspan
+ class="st3" v:langID="2057">| </tspan><tspan class="st3" v:langID="2057">‘not contains’ </tspan><tspan
+ class="st3" v:langID="2057">| </tspan><tspan class="st3" v:langID="2057">‘memberof’ </tspan><tspan
+ class="st3" v:langID="2057">| </tspan><tspan class="st3" v:langID="2057">‘not memberof’</tspan></text> </g>
+ <g id="shape13-14" v:mID="13" v:groupContext="shape" v:layerMember="0;1" transform="translate(363.012,-3.06772)">
+ <title>On-page reference.212</title>
<v:userDefs>
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
- <path d="M0 7.69 A5.73227 5.73227 0 0 1 11.46 7.69 A5.73227 5.73227 0 1 1 0 7.69 Z" class="st1"/>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
</g>
- <g id="shape4-8" v:mID="4" v:groupContext="shape" v:layerMember="0" transform="translate(11.7069,-6.7946)">
- <title content="structured text">Dynamic connector.213</title>
- <path d="M0 13.58 L9.46 13.58 L10.97 13.58" class="st3"/>
+ <g id="shape14-16" v:mID="14" v:groupContext="shape" v:layerMember="0" transform="translate(11.5786,-1.71339)">
+ <title>Dynamic connector.213</title>
+ <path d="M0 10.51 L24.4 10.51" class="st4"/>
</g>
- <g id="shape5-14" v:mID="5" v:groupContext="shape" v:layerMember="0" transform="translate(218.27,-6.7946)">
- <title content="structured text">Dynamic connector.214</title>
- <path d="M0 13.58 L19.29 13.58 L21.63 13.58" class="st3"/>
+ <g id="shape15-22" v:mID="15" v:groupContext="shape" v:layerMember="0" transform="translate(349.61,-1.71339)">
+ <title>Dynamic connector.214</title>
+ <path d="M0.77 10.51 L10.64 10.51" class="st4"/>
</g>
</g>
-</svg>
\ No newline at end of file
+</svg>
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/pattern.png
===================================================================
(Binary files differ)
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/pattern.svg
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/pattern.svg 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/pattern.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -1,33 +1,40 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 pattern.svg Page-1 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" xmlns:xlink="http://www.w3.org/1999/xlink" width="2.23803in" height="1.4954in" viewBox="0 0 161.138 107.669" xml:space="preserve" color-interpolation-filters="sRGB" class="st5" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 pattern.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="5.28226in"
+ height="0.493833in" viewBox="0 0 380.323 35.556" xml:space="preserve" color-interpolation-filters="sRGB" class="st7">
<v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
- <style type="text/css" xml:space="preserve">
-
+ <style type="text/css">
+ <![CDATA[
.st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
.st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
- .st3 {marker-end:url(#mrkr2-23);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
- .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
- .st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
-
+ .st3 {fill:#000000;font-family:Arial;font-size:0.666664em}
+ .st4 {font-size:1em}
+ .st5 {marker-end:url(#mrkr2-13);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st6 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
</style>
<defs id="Markers">
<g id="lend2">
<path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
</g>
- <marker xmlns="http://www.w3.org/TR/xhtml1/transitional" overflow="visible" id="mrkr2-23" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto" markerUnits="strokeWidth" preserveAspectRatio="xMidYMid meet">
- <use xmlns="http://www.w3.org/2000/svg" xlink:href="#lend2" transform="scale(-11.5,-11.5) " xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>
+ <marker id="mrkr2-13" class="st6" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
</marker>
</defs>
<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
- <title content="structured text">Page-1</title>
- <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" v:shadowOffsetY="-8.50394"/>
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
<v:layer v:name="Flowchart" v:index="0"/>
<v:layer v:name="Connector" v:index="1"/>
- <g id="shape83-1" v:mID="83" v:groupContext="shape" v:layerMember="0" transform="translate(61.5185,-69.2093)">
- <title content="structured text">Process.83</title>
- <desc content="structured text">eval</desc>
+ <g id="shape1-1" v:mID="1" v:groupContext="shape" v:layerMember="0" transform="translate(150.043,-1.67704)">
+ <title>Process.89</title>
+ <desc>patternType</desc>
<v:custProps>
<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -37,12 +44,12 @@
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="21.4689" cy="100.999" width="42.94" height="13.3396"/>
- <rect x="0" y="94.3293" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="14.14" y="103.4" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>eval</text> </g>
- <g id="shape94-4" v:mID="94" v:groupContext="shape" v:layerMember="0" transform="translate(61.9366,-46.2196)">
- <title content="structured text">Process.94</title>
- <desc content="structured text">and</desc>
+ <v:textRect cx="24.1157" cy="28.433" width="48.24" height="14.2459"/>
+ <rect x="0" y="21.3101" width="48.2314" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="2.78" y="30.83" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>patternType</text> </g>
+ <g id="shape2-4" v:mID="2" v:groupContext="shape" v:layerMember="0" transform="translate(219.534,-1.67704)">
+ <title>Process.90</title>
+ <desc>‘(‘</desc>
<v:custProps>
<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -52,12 +59,17 @@
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="21.4689" cy="100.999" width="42.94" height="13.3396"/>
- <rect x="0" y="94.3293" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="14.8" y="103.4" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>and</text> </g>
- <g id="shape93-7" v:mID="93" v:groupContext="shape" v:layerMember="0" transform="translate(61.9366,-92.1991)">
- <title content="structured text">Process.93</title>
- <desc content="structured text">column</desc>
+ <v:textRect cx="10.6844" cy="28.433" width="21.37" height="14.2459"/>
+ <rect x="0" y="21.3101" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.57" y="30.83" class="st3" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st4"
+ v:langID="2057">(</tspan>‘</text> </g>
+ <g id="shape3-8" v:mID="3" v:groupContext="shape" v:layerMember="1" transform="translate(198.275,-1.71339)">
+ <title>Dynamic connector.166</title>
+ <path d="M0 28.47 L18.5 28.47" class="st5"/>
+ </g>
+ <g id="shape4-14" v:mID="4" v:groupContext="shape" v:layerMember="0" transform="translate(327.024,-1.67704)">
+ <title>Process.70</title>
+ <desc>‘)‘</desc>
<v:custProps>
<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -67,12 +79,25 @@
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="21.4689" cy="100.999" width="42.94" height="13.3396"/>
- <rect x="0" y="94.3293" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="8.58" y="103.4" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>column</text> </g>
- <g id="shape96-10" v:mID="96" v:groupContext="shape" v:layerMember="0" transform="translate(64.3531,-23.2298)">
- <title content="structured text">Process.96</title>
- <desc content="structured text">or</desc>
+ <v:textRect cx="10.6844" cy="28.433" width="21.37" height="14.2459"/>
+ <rect x="0" y="21.3101" width="21.3689" height="14.2459" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="7.57" y="30.83" class="st3" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st4"
+ v:langID="2057">)</tspan>‘</text> </g>
+ <g id="shape5-18" v:mID="5" v:groupContext="shape" v:layerMember="1;0" transform="translate(367.617,-2.56741)">
+ <title>On-page reference.71</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 29.32 A6.23259 6.23259 0 0 1 12.47 29.32 A6.23259 6.23259 0 1 1 0 29.32 Z" class="st1"/>
+ </g>
+ <g id="shape6-20" v:mID="6" v:groupContext="shape" v:layerMember="1" transform="translate(307.914,-1.71339)">
+ <title>Dynamic connector.72</title>
+ <path d="M0 28.47 L16.35 28.47" class="st5"/>
+ </g>
+ <g id="shape7-25" v:mID="7" v:groupContext="shape" v:layerMember="0" transform="translate(260.013,-2.24882)">
+ <title>Process.22</title>
+ <desc>constraints</desc>
<v:custProps>
<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -82,12 +107,20 @@
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="21.4689" cy="100.999" width="42.94" height="13.3396"/>
- <rect x="0" y="94.3293" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="17.92" y="103.4" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>or</text> </g>
- <g id="shape106-13" v:mID="106" v:groupContext="shape" v:layerMember="0" transform="translate(64.3531,-0.24)">
- <title content="structured text">Process.106</title>
- <desc content="structured text">group</desc>
+ <v:textRect cx="23.9506" cy="29.0048" width="47.91" height="13.1024"/>
+ <rect x="0" y="22.4536" width="47.9011" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="4.61" y="31.4" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>constraints</text> </g>
+ <g id="shape8-28" v:mID="8" v:groupContext="shape" v:layerMember="1" transform="translate(240.903,-1.71339)">
+ <title>Dynamic connector.86</title>
+ <path d="M0 28.47 L16.35 28.47" class="st5"/>
+ </g>
+ <g id="shape9-33" v:mID="9" v:groupContext="shape" v:layerMember="1" transform="translate(348.393,-1.71339)">
+ <title>Dynamic connector.1</title>
+ <path d="M0 28.47 L16.46 28.47" class="st5"/>
+ </g>
+ <g id="shape10-38" v:mID="10" v:groupContext="shape" v:layerMember="0" transform="translate(30.7754,-2.24882)">
+ <title>Process.150</title>
+ <desc>patternBinding</desc>
<v:custProps>
<v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
<v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
@@ -97,64 +130,53 @@
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <v:textRect cx="21.4689" cy="100.999" width="42.94" height="13.3396"/>
- <rect x="0" y="94.3293" width="42.9378" height="13.3396" rx="2.83465" ry="2.83465" class="st1"/>
- <text x="11.24" y="103.4" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>group</text> </g>
- <g id="shape107-16" v:mID="107" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.24,-93.0328)">
- <title content="structured text">On-page reference.107</title>
+ <v:textRect cx="30.7953" cy="29.0048" width="61.6" height="13.1024"/>
+ <rect x="0" y="22.4536" width="61.5906" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="5" y="31.4" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>patternBinding</text> </g>
+ <g id="shape11-41" v:mID="11" v:groupContext="shape" v:layerMember="0" transform="translate(106.539,-2.24882)">
+ <title>Process.159</title>
+ <desc>:</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
<v:userDefs>
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <path d="M0 101.83 A5.83609 5.83609 0 1 1 11.67 101.83 A5.83609 5.83609 0 0 1 0 101.83 Z" class="st1"/>
- </g>
- <g id="shape109-18" v:mID="109" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-91.7823)">
- <title content="structured text">Dynamic connector.109</title>
- <path d="M0 100.58 L47.26 100.58" class="st3"/>
- </g>
- <g id="shape90-24" v:mID="90" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-98.8689)">
- <title content="structured text">Dynamic connector.90</title>
- <path d="M0 107.67 L23.76 107.67 A5.66929 5.66929 0 0 1 29.43 113.34 L29.43 124.99 A5.66929 5.66929 -180 0 0 35.1 130.66 L46.85 130.66" class="st3"/>
- </g>
- <g id="shape95-29" v:mID="95" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-98.8689)">
- <title content="structured text">Dynamic connector.95</title>
- <path d="M0 107.67 L23.76 107.67 A5.66929 5.66929 0 0 1 29.43 113.34 L29.43 147.98 A5.66929 5.66929 -180 0 0 35.1 153.65 L47.26 153.65" class="st3"/>
- </g>
- <g id="shape101-34" v:mID="101" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-98.8689)">
- <title content="structured text">Dynamic connector.101</title>
- <path d="M0 107.67 L24.09 107.67 A5.66929 5.66929 0 0 1 29.76 113.34 L29.76 170.97 A5.66929 5.66929 -180 0 0 35.43 176.64 L49.68 176.64" class="st3"/>
- </g>
- <g id="shape102-39" v:mID="102" v:groupContext="shape" v:layerMember="1" transform="translate(11.9122,-98.8689)">
- <title content="structured text">Dynamic connector.102</title>
- <path d="M0 107.67 L24.09 107.67 A5.66929 5.66929 0 0 1 29.76 113.34 L29.76 193.96 A5.66929 5.66929 -180 0 0 35.43 199.63 L49.68 199.63" class="st3"/>
- </g>
- <g id="shape103-44" v:mID="103" v:groupContext="shape" v:layerMember="1;0" transform="translate(149.226,-93.0328)">
- <title content="structured text">On-page reference.103</title>
+ <v:textRect cx="9.82677" cy="29.0048" width="19.66" height="13.1024"/>
+ <rect x="0" y="22.4536" width="19.6535" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="8.71" y="31.4" class="st3" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>:</text> </g>
+ <g id="shape12-44" v:mID="12" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.24,-3.06772)">
+ <title>On-page reference.192</title>
<v:userDefs>
<v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
</v:userDefs>
<v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
- <path d="M0 101.83 A5.83609 5.83609 0 1 1 11.67 101.83 A5.83609 5.83609 0 0 1 0 101.83 Z" class="st1"/>
+ <path d="M0 29.82 A5.73228 5.73228 0 0 1 11.46 29.82 A5.73228 5.73228 0 1 1 0 29.82 Z" class="st1"/>
</g>
- <g id="shape125-46" v:mID="125" v:groupContext="shape" v:layerMember="1" transform="translate(107.291,-6.90982)">
- <title content="structured text">Dynamic connector.125</title>
- <path d="M0 107.67 L13.76 107.67 A5.66929 5.66929 -180 0 0 19.42 102 L19.42 21.38 A5.66929 5.66929 0 0 1 25.09 15.71 L39.17 15.71" class="st3"/>
+ <g id="shape13-46" v:mID="13" v:groupContext="shape" v:layerMember="1" transform="translate(11.7046,-1.71339)">
+ <title>Dynamic connector.193</title>
+ <path d="M0 28.47 L16.31 28.47" class="st5"/>
</g>
- <g id="shape126-51" v:mID="126" v:groupContext="shape" v:layerMember="1" transform="translate(107.291,-29.8996)">
- <title content="structured text">Dynamic connector.126</title>
- <path d="M0 107.67 L13.76 107.67 A5.66929 5.66929 -180 0 0 19.42 102 L19.42 44.37 A5.66929 5.66929 0 0 1 25.09 38.7 L39.17 38.7" class="st3"/>
+ <g id="shape14-51" v:mID="14" v:groupContext="shape" v:layerMember="1" transform="translate(92.366,-1.71339)">
+ <title>Dynamic connector.194</title>
+ <path d="M0 28.47 L11.41 28.47" class="st5"/>
</g>
- <g id="shape127-56" v:mID="127" v:groupContext="shape" v:layerMember="1" transform="translate(104.874,-52.8894)">
- <title content="structured text">Dynamic connector.127</title>
- <path d="M0 107.67 L16.17 107.67 A5.66929 5.66929 -180 0 0 21.84 102 L21.84 67.36 A5.66929 5.66929 0 0 1 27.51 61.69 L41.59 61.69" class="st3"/>
+ <g id="shape15-56" v:mID="15" v:groupContext="shape" v:layerMember="1" transform="translate(126.193,-1.71339)">
+ <title>Dynamic connector.199</title>
+ <path d="M0 28.47 L21.09 28.47" class="st5"/>
</g>
- <g id="shape128-61" v:mID="128" v:groupContext="shape" v:layerMember="1" transform="translate(104.456,-75.8792)">
- <title content="structured text">Dynamic connector.128</title>
- <path d="M0 107.67 L16.59 107.67 A5.66929 5.66929 -180 0 0 22.26 102 L22.26 90.35 A5.66929 5.66929 0 0 1 27.93 84.68 L42.01 84.68" class="st3"/>
+ <g id="shape16-61" v:mID="16" v:groupContext="shape" v:layerMember="1" transform="translate(11.7046,-1.71339)">
+ <title>Dynamic connector.201</title>
+ <path d="M0 28.47 L16.31 28.47" class="st5"/>
</g>
- <g id="shape129-66" v:mID="129" v:groupContext="shape" v:layerMember="1" transform="translate(104.874,-105.956)">
- <title content="structured text">Dynamic connector.129</title>
- <path d="M0 114.76 L41.59 114.76" class="st3"/>
+ <g id="shape17-66" v:mID="17" v:groupContext="shape" v:layerMember="1" transform="translate(11.7046,-15.8866)">
+ <title>Dynamic connector.202</title>
+ <path d="M0 42.64 L6.31 42.64 A5.66929 5.66929 -180 0 0 11.98 36.97 L11.98 30.36 A5.66929 5.66929 0 0 1 17.65 24.69 L122.04
+ 24.69 A5.66929 5.66929 0 0 1 127.71 30.36 L127.71 37.33 A5.31496 5.31496 -180 0 0 133.02 42.64 L135.58 42.64"
+ class="st5"/>
</g>
</g>
-</svg>
\ No newline at end of file
+</svg>
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/pattern.vsd
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/regexpRestriction.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/regexpRestriction.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/regexpRestriction.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/regexpRestriction.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/regexpRestriction.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/regexpRestriction.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 regexpRestriction.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="3.09507in"
+ height="0.244444in" viewBox="0 0 222.845 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st5">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st3 {marker-end:url(#mrkr2-11);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-11" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape30-1" v:mID="30" v:groupContext="shape" v:layerMember="0;1" transform="translate(211.14,-3.06772)">
+ <title>On-page reference.56</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ <g id="shape31-3" v:mID="31" v:groupContext="shape" v:layerMember="1" transform="translate(151.329,-2.24882)">
+ <title>Process.31</title>
+ <desc>regexp</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="21.3466" cy="11.0488" width="42.7" height="13.1024"/>
+ <rect x="0" y="4.49764" width="42.6931" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="9.12" y="13.45" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>regexp</text> </g>
+ <g id="shape32-6" v:mID="32" v:groupContext="shape" v:layerMember="0" transform="translate(128.338,-1.71339)">
+ <title>Dynamic connector.58</title>
+ <path d="M0 10.51 L20.23 10.51" class="st3"/>
+ </g>
+ <g id="shape33-12" v:mID="33" v:groupContext="shape" v:layerMember="0" transform="translate(194.022,-1.71339)">
+ <title>Dynamic connector.33</title>
+ <path d="M0 10.51 L14.36 10.51" class="st3"/>
+ </g>
+ <g id="shape34-17" v:mID="34" v:groupContext="shape" v:layerMember="1" transform="translate(29.5802,-2.24882)">
+ <title>Process.60</title>
+ <desc>‘matches’ | ‘not matches’</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="49.3791" cy="11.0488" width="98.76" height="13.1024"/>
+ <rect x="0" y="4.49764" width="98.7581" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="5.65" y="13.45" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>‘matches’ | ‘not matches’</text> </g>
+ <g id="shape35-20" v:mID="35" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-3.06772)">
+ <title>On-page reference.61</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ <g id="shape36-22" v:mID="36" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-1.71339)">
+ <title>Dynamic connector.62</title>
+ <path d="M0 10.51 L15.12 10.51" class="st3"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValue.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/returnValue.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValue.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/returnValue.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValue.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValue.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 returnValue.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="2.82338in"
+ height="0.244444in" viewBox="0 0 203.283 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st7">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em}
+ .st3 {font-size:1em}
+ .st4 {marker-end:url(#mrkr2-14);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st5 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st6 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st7 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-14" class="st5" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Flowchart" v:index="0"/>
+ <v:layer v:name="Connector" v:index="1"/>
+ <g id="shape57-1" v:mID="57" v:groupContext="shape" v:layerMember="0" transform="translate(29.8693,-2.24882)">
+ <title>Process.17</title>
+ <desc>‘(‘</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="9.82677" cy="11.0488" width="19.66" height="13.1024"/>
+ <rect x="0" y="4.49764" width="19.6535" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="6.72" y="13.45" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+ v:langID="2057">(</tspan>‘</text> </g>
+ <g id="shape58-5" v:mID="58" v:groupContext="shape" v:layerMember="0" transform="translate(149.248,-2.24882)">
+ <title>Process.18</title>
+ <desc>‘)’</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="9.82677" cy="11.0488" width="19.66" height="13.1024"/>
+ <rect x="0" y="4.49764" width="19.6535" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="6.72" y="13.45" class="st2" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>‘<tspan class="st3"
+ v:langID="2057">)</tspan>’</text> </g>
+ <g id="shape59-9" v:mID="59" v:groupContext="shape" v:layerMember="1" transform="translate(11.7046,-1.71339)">
+ <title>Dynamic connector.21</title>
+ <path d="M0 10.51 L15.4 10.51" class="st4"/>
+ </g>
+ <g id="shape60-15" v:mID="60" v:groupContext="shape" v:layerMember="1;0" transform="translate(191.579,-3.06772)">
+ <title>On-page reference.23</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ <g id="shape61-17" v:mID="61" v:groupContext="shape" v:layerMember="1" transform="translate(168.901,-1.71339)">
+ <title>Dynamic connector.24</title>
+ <path d="M0 10.51 L19.92 10.51" class="st4"/>
+ </g>
+ <g id="shape62-22" v:mID="62" v:groupContext="shape" v:layerMember="0" transform="translate(69.2392,-2.24882)">
+ <title>Process.26</title>
+ <desc>expression</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="25.4689" cy="11.0488" width="50.94" height="13.1024"/>
+ <rect x="0" y="4.49764" width="50.9378" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="6.13" y="13.45" class="st6" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>expression</text> </g>
+ <g id="shape63-25" v:mID="63" v:groupContext="shape" v:layerMember="1" transform="translate(49.5229,-1.71339)">
+ <title>Dynamic connector.63</title>
+ <path d="M0 10.51 L16.96 10.51" class="st4"/>
+ </g>
+ <g id="shape64-30" v:mID="64" v:groupContext="shape" v:layerMember="1" transform="translate(120.177,-1.71339)">
+ <title>Dynamic connector.29</title>
+ <path d="M0 10.51 L26.31 10.51" class="st4"/>
+ </g>
+ <g id="shape65-35" v:mID="65" v:groupContext="shape" v:layerMember="1;0" transform="translate(0.24,-3.06772)">
+ <title>On-page reference.32</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValueRestriction.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/returnValueRestriction.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValueRestriction.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/returnValueRestriction.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValueRestriction.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/returnValueRestriction.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 returnValueRestriction.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="3.25255in"
+ height="0.244444in" viewBox="0 0 234.183 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st5">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {marker-end:url(#mrkr2-6);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st3 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st4 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-6" class="st2" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape3-1" v:mID="3" v:groupContext="shape" v:layerMember="0" transform="translate(91.6546,-1.71339)">
+ <title>Dynamic connector.177</title>
+ <path d="M0 10.51 L56.91 10.51" class="st1"/>
+ </g>
+ <g id="shape4-7" v:mID="4" v:groupContext="shape" v:layerMember="0;1" transform="translate(222.479,-3.06772)">
+ <title>On-page reference.179</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st3"/>
+ </g>
+ <g id="shape5-9" v:mID="5" v:groupContext="shape" v:layerMember="0" transform="translate(202.267,-1.71339)">
+ <title>Dynamic connector.180</title>
+ <path d="M0 10.51 L17.45 10.51" class="st1"/>
+ </g>
+ <g id="shape6-14" v:mID="6" v:groupContext="shape" v:layerMember="1" transform="translate(151.329,-2.24882)">
+ <title>Process.181</title>
+ <desc>returnValue</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="25.4689" cy="11.0488" width="50.94" height="13.1024"/>
+ <rect x="0" y="4.49764" width="50.9378" height="13.1024" rx="2.83465" ry="2.83465" class="st3"/>
+ <text x="4.8" y="13.45" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>returnValue</text> </g>
+ <g id="shape20-17" v:mID="20" v:groupContext="shape" v:layerMember="1" transform="translate(29.5802,-2.24882)">
+ <title>Process.7</title>
+ <desc>operator</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="11.0488" width="62.08" height="13.1024"/>
+ <rect x="0" y="4.49764" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st3"/>
+ <text x="16.13" y="13.45" class="st4" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>operator</text> </g>
+ <g id="shape21-20" v:mID="21" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-3.06772)">
+ <title>On-page reference.45</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st3"/>
+ </g>
+ <g id="shape22-22" v:mID="22" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-1.71339)">
+ <title>Dynamic connector.22</title>
+ <path d="M0 10.51 L15.12 10.51" class="st1"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/singleValueRestriction.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/singleValueRestriction.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/singleValueRestriction.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/singleValueRestriction.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/singleValueRestriction.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/singleValueRestriction.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 singleValueRestriction.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="2.46817in"
+ height="1.34836in" viewBox="0 0 177.708 97.0821" xml:space="preserve" color-interpolation-filters="sRGB" class="st5">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st3 {marker-end:url(#mrkr2-20);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-20" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape112-1" v:mID="112" v:groupContext="shape" v:layerMember="0;1" transform="translate(166.004,-82.5498)">
+ <title>On-page reference.129</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 91.35 A5.73228 5.73228 0 0 1 11.46 91.35 A5.73228 5.73228 0 1 1 0 91.35 Z" class="st1"/>
+ </g>
+ <g id="shape113-3" v:mID="113" v:groupContext="shape" v:layerMember="1" transform="translate(45.2872,-81.7309)">
+ <title>Process.130</title>
+ <desc>literalRestriction</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="43.937" cy="90.5309" width="87.88" height="13.1024"/>
+ <rect x="0" y="83.9797" width="87.874" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="15.47" y="92.93" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>literalRestriction</text> </g>
+ <g id="shape114-6" v:mID="114" v:groupContext="shape" v:layerMember="1" transform="translate(45.2872,-52.6494)">
+ <title>Process.131</title>
+ <desc>variableRestriction</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="43.937" cy="90.5309" width="87.88" height="13.1024"/>
+ <rect x="0" y="83.9797" width="87.874" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="11.02" y="92.93" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>variableRestriction</text> </g>
+ <g id="shape115-9" v:mID="115" v:groupContext="shape" v:layerMember="1" transform="translate(45.2872,-24.8958)">
+ <title>Process.115</title>
+ <desc>returnValueRestriction</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="43.937" cy="90.5309" width="87.88" height="13.1024"/>
+ <rect x="0" y="83.9797" width="87.874" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="4.35" y="92.93" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>returnValueRestriction</text> </g>
+ <g id="shape116-12" v:mID="116" v:groupContext="shape" v:layerMember="1" transform="translate(45.2872,-0.24)">
+ <title>Process.133</title>
+ <desc>regexpRestriction</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="43.937" cy="90.5309" width="87.88" height="13.1024"/>
+ <rect x="0" y="83.9797" width="87.874" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="12.8" y="92.93" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>regexpRestriction</text> </g>
+ <g id="shape117-15" v:mID="117" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-88.2821)">
+ <title>Dynamic connector.117</title>
+ <path d="M0 97.08 L17.38 97.08 A5.66929 5.66929 0 0 1 23.05 102.75 L23.05 173.31 A5.26612 5.26612 -180 0 0 28.32 178.57
+ L30.82 178.57" class="st3"/>
+ </g>
+ <g id="shape118-21" v:mID="118" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-88.2821)">
+ <title>Dynamic connector.135</title>
+ <path d="M0 97.08 L17.38 97.08 A5.66929 5.66929 0 0 1 23.05 102.75 L23.05 148.65 A5.26612 5.26612 -180 0 0 28.32 153.92
+ L30.82 153.92" class="st3"/>
+ </g>
+ <g id="shape119-26" v:mID="119" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-88.2821)">
+ <title>Dynamic connector.136</title>
+ <path d="M0 97.08 L17.28 97.08 A5.66929 5.66929 0 0 1 22.95 102.75 L22.95 120.85 A5.31496 5.31496 -180 0 0 28.27 126.16
+ L30.82 126.16" class="st3"/>
+ </g>
+ <g id="shape120-31" v:mID="120" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-81.1954)">
+ <title>Dynamic connector.137</title>
+ <path d="M0 90 L30.82 90" class="st3"/>
+ </g>
+ <g id="shape121-36" v:mID="121" v:groupContext="shape" v:layerMember="0" transform="translate(133.161,-95.3687)">
+ <title>Dynamic connector.138</title>
+ <path d="M0 104.17 L30.08 104.17" class="st3"/>
+ </g>
+ <g id="shape122-41" v:mID="122" v:groupContext="shape" v:layerMember="0" transform="translate(133.161,-59.2006)">
+ <title>Dynamic connector.142</title>
+ <path d="M0 97.08 L4.25 97.08 A4.25197 4.25197 -180 0 0 8.5 92.83 L8.5 73.67 A5.66929 5.66929 0 0 1 14.17 68 L30.08 68"
+ class="st3"/>
+ </g>
+ <g id="shape123-46" v:mID="123" v:groupContext="shape" v:layerMember="0" transform="translate(133.161,-31.447)">
+ <title>Dynamic connector.143</title>
+ <path d="M0 97.08 L4.25 97.08 A4.25197 4.25197 -180 0 0 8.5 92.83 L8.5 45.92 A5.66929 5.66929 0 0 1 14.17 40.25 L30.08
+ 40.25" class="st3"/>
+ </g>
+ <g id="shape124-51" v:mID="124" v:groupContext="shape" v:layerMember="0" transform="translate(133.161,-6.79118)">
+ <title>Dynamic connector.144</title>
+ <path d="M0 97.08 L4.25 97.08 A4.25197 4.25197 -180 0 0 8.5 92.83 L8.5 21.26 A5.66929 5.66929 0 0 1 14.17 15.59 L30.08
+ 15.59" class="st3"/>
+ </g>
+ <g id="shape125-56" v:mID="125" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-82.5498)">
+ <title>On-page reference.145</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 91.35 A5.73228 5.73228 0 0 1 11.46 91.35 A5.73228 5.73228 0 1 1 0 91.35 Z" class="st1"/>
+ </g>
+ </g>
+</svg>
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/variableRestriction.png (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/variableRestriction.png)
===================================================================
(Binary files differ)
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/variableRestriction.svg (from rev 13605, labs/jbossrules/trunk/documentation/manual/en/Chapter-Rule_Language/variableRestriction.svg)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/variableRestriction.svg (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/Chapter-Rule_Language/variableRestriction.svg 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Generated by Microsoft Visio 11.0, SVG Export, v1.0 variableRestriction.svg Page-1 -->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="3.25255in"
+ height="0.244444in" viewBox="0 0 234.183 17.6" xml:space="preserve" color-interpolation-filters="sRGB" class="st5">
+ <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"/>
+
+ <style type="text/css">
+ <![CDATA[
+ .st1 {fill:#e8eef7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st2 {fill:#000000;font-family:Arial;font-size:0.666664em;font-style:italic}
+ .st3 {marker-end:url(#mrkr2-11);stroke:#4677bf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+ .st4 {fill:#4677bf;fill-opacity:1;stroke:#4677bf;stroke-opacity:1;stroke-width:0.08695652173913}
+ .st5 {fill:none;fill-rule:evenodd;font-size:12;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
+ ]]>
+ </style>
+
+ <defs id="Markers">
+ <g id="lend2">
+ <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/>
+ </g>
+ <marker id="mrkr2-11" class="st4" v:arrowType="2" v:arrowSize="2" v:setback="11.5" refX="-11.5" orient="auto"
+ markerUnits="strokeWidth">
+ <use xlink:href="#lend2" transform="scale(-11.5,-11.5) "/>
+ </marker>
+ </defs>
+ <g v:mID="0" v:index="1" v:groupContext="foregroundPage">
+ <title>Page-1</title>
+ <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394"
+ v:shadowOffsetY="-8.50394"/>
+ <v:layer v:name="Connector" v:index="0"/>
+ <v:layer v:name="Flowchart" v:index="1"/>
+ <g id="shape24-1" v:mID="24" v:groupContext="shape" v:layerMember="0;1" transform="translate(222.479,-3.06772)">
+ <title>On-page reference.48</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ <g id="shape25-3" v:mID="25" v:groupContext="shape" v:layerMember="1" transform="translate(151.329,-2.24882)">
+ <title>Process.49</title>
+ <desc>variable</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="20.6255" cy="11.0488" width="41.26" height="13.1024"/>
+ <rect x="0" y="4.49764" width="41.2511" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="6.62" y="13.45" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>variable</text> </g>
+ <g id="shape26-6" v:mID="26" v:groupContext="shape" v:layerMember="0" transform="translate(91.6546,-1.71339)">
+ <title>Dynamic connector.26</title>
+ <path d="M0 10.51 L56.91 10.51" class="st3"/>
+ </g>
+ <g id="shape27-12" v:mID="27" v:groupContext="shape" v:layerMember="0" transform="translate(192.58,-1.71339)">
+ <title>Dynamic connector.27</title>
+ <path d="M0 10.51 L27.14 10.51" class="st3"/>
+ </g>
+ <g id="shape28-17" v:mID="28" v:groupContext="shape" v:layerMember="1" transform="translate(29.5802,-2.24882)">
+ <title>Process.52</title>
+ <desc>operator</desc>
+ <v:custProps>
+ <v:cp v:nameU="Cost" v:lbl="Cost" v:type="7" v:format="@" v:langID="1033"/>
+ <v:cp v:nameU="Duration" v:lbl="Duration" v:type="2" v:langID="1033"/>
+ <v:cp v:nameU="Resources" v:lbl="Resources" v:langID="1033"/>
+ </v:custProps>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <v:textRect cx="31.0372" cy="11.0488" width="62.08" height="13.1024"/>
+ <rect x="0" y="4.49764" width="62.0744" height="13.1024" rx="2.83465" ry="2.83465" class="st1"/>
+ <text x="16.13" y="13.45" class="st2" v:langID="2057"><v:paragraph v:horizAlign="1"/><v:tabList/>operator</text> </g>
+ <g id="shape37-20" v:mID="37" v:groupContext="shape" v:layerMember="0;1" transform="translate(0.24,-3.06772)">
+ <title>On-page reference.63</title>
+ <v:userDefs>
+ <v:ud v:nameU="visVersion" v:val="VT0(11):26"/>
+ </v:userDefs>
+ <v:textBlock v:margins="rect(2,2,2,2)" v:tabSpace="42.5197"/>
+ <path d="M0 11.87 A5.73228 5.73228 0 0 1 11.46 11.87 A5.73228 5.73228 0 1 1 0 11.87 Z" class="st1"/>
+ </g>
+ <g id="shape38-22" v:mID="38" v:groupContext="shape" v:layerMember="0" transform="translate(11.7046,-1.71339)">
+ <title>Dynamic connector.38</title>
+ <path d="M0 10.51 L15.12 10.51" class="st3"/>
+ </g>
+ </g>
+</svg>
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/master.xml
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/master.xml 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/documentation/manual/en/master.xml 2007-07-19 04:28:05 UTC (rev 13620)
@@ -119,6 +119,8 @@
<xi:include href="Chapter-Rule_Language/Section-XML.xml" />
+ <xi:include href="Chapter-Rule_Language/Section-RuleFlow.xml" />
+
<!--xi:include href="Chapter-Rule_Language/Section-Column.xml" />
<xi:include href="Chapter-Rule_Language/Section-Field_Constraints.xml" />
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/ClassObjectType.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/ClassObjectType.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/ClassObjectType.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -16,12 +16,6 @@
* limitations under the License.
*/
-import java.lang.reflect.Field;
-
-import org.drools.RuntimeDroolsException;
-import org.drools.objenesis.Objenesis;
-import org.drools.objenesis.ObjenesisStd;
-import org.drools.objenesis.instantiator.ObjectInstantiator;
import org.drools.spi.ObjectType;
/**
@@ -79,6 +73,20 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/**
+ * Determine if the passed <code>Class</code> matches to the object type
+ * defined by this <code>objectType</code> instance.
+ *
+ * @param clazz
+ * The <code>Class</code> to test.
+ *
+ * @return <code>true</code> if the <code>Class</code> matches this
+ * object type, else <code>false</code>.
+ */
+ public boolean matchesClass(final Class clazz) {
+ return getClassType().isAssignableFrom( clazz );
+ }
+
+ /**
* Determine if the passed <code>Object</code> belongs to the object type
* defined by this <code>objectType</code> instance.
*
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -35,36 +35,35 @@
import org.drools.asm.MethodVisitor;
import org.drools.asm.Opcodes;
import org.drools.asm.Type;
-import org.drools.rule.MapBackedClassLoader;
import org.drools.util.ShadowProxyUtils;
/**
* A factory for ShadowProxy classes
*/
public class ShadowProxyFactory {
- private static final String UPDATE_PROXY = "updateProxy";
- private static final String SET_SHADOWED_OBJECT = "setShadowedObject";
- private static final String GET_SHADOWED_OBJECT = "getShadowedObject";
+ private static final String UPDATE_PROXY = "updateProxy";
+ private static final String SET_SHADOWED_OBJECT = "setShadowedObject";
+ private static final String GET_SHADOWED_OBJECT = "getShadowedObject";
- private static final String BASE_INTERFACE = Type.getInternalName( ShadowProxy.class );
+ private static final String BASE_INTERFACE = Type.getInternalName( ShadowProxy.class );
//private static final String FIELD_NAME_PREFIX = "__";
- public static final String FIELD_SET_FLAG = "IsSet";
+ public static final String FIELD_SET_FLAG = "IsSet";
- public static final String DELEGATE_FIELD_NAME = "delegate";
+ public static final String DELEGATE_FIELD_NAME = "delegate";
- public static final String HASHCACHE_FIELD_NAME = "__hashCache";
-
+ public static final String HASHCACHE_FIELD_NAME = "__hashCache";
+
private static final ProtectionDomain PROTECTION_DOMAIN;
-
+
static {
PROTECTION_DOMAIN = (ProtectionDomain) AccessController.doPrivileged( new PrivilegedAction() {
public Object run() {
return ShadowProxyFactory.class.getProtectionDomain();
}
} );
- }
+ }
public static Class getProxy(final Class clazz) {
try {
@@ -965,10 +964,17 @@
offset );
offset += type.getSize();
}
- mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
- Type.getInternalName( clazz ),
- method.getName(),
- Type.getMethodDescriptor( method ) );
+ if ( clazz.isInterface() ) {
+ mv.visitMethodInsn( Opcodes.INVOKEINTERFACE,
+ Type.getInternalName( clazz ),
+ method.getName(),
+ Type.getMethodDescriptor( method ) );
+ } else {
+ mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
+ Type.getInternalName( clazz ),
+ method.getName(),
+ Type.getMethodDescriptor( method ) );
+ }
mv.visitInsn( Type.getType( method.getReturnType() ).getOpcode( Opcodes.IRETURN ) );
final Label l1 = new Label();
mv.visitLabel( l1 );
@@ -1009,7 +1015,7 @@
final Label l0 = new Label();
mv.visitLabel( l0 );
- // if ( this == object || this.delegate == object )
+ // if ( this == object || this.delegate == object || this.delegate.equals( object ) ) {
mv.visitVarInsn( Opcodes.ALOAD,
0 );
mv.visitVarInsn( Opcodes.ALOAD,
@@ -1025,17 +1031,38 @@
Type.getDescriptor( clazz ) );
mv.visitVarInsn( Opcodes.ALOAD,
1 );
+ mv.visitJumpInsn( Opcodes.IF_ACMPEQ,
+ l1 );
+
+ mv.visitVarInsn(Opcodes.ALOAD, 0);
+ mv.visitFieldInsn( Opcodes.GETFIELD,
+ className,
+ DELEGATE_FIELD_NAME,
+ Type.getDescriptor( clazz ) );
+ mv.visitVarInsn(Opcodes.ALOAD, 1);
+ if ( clazz.isInterface() ) {
+ mv.visitMethodInsn( Opcodes.INVOKEINTERFACE,
+ Type.getInternalName( clazz ),
+ "equals",
+ Type.getMethodDescriptor( Type.BOOLEAN_TYPE,
+ new Type[]{Type.getType( Object.class )} ) );
+ } else {
+ mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
+ Type.getInternalName( clazz ),
+ "equals",
+ Type.getMethodDescriptor( Type.BOOLEAN_TYPE,
+ new Type[]{Type.getType( Object.class )} ) );
+ }
Label l2 = new Label();
- mv.visitJumpInsn( Opcodes.IF_ACMPNE,
- l2 );
+ mv.visitJumpInsn(Opcodes.IFEQ, l2);
+
+ // return true;
mv.visitLabel( l1 );
-
- // return true;
mv.visitInsn( Opcodes.ICONST_1 );
mv.visitInsn( Opcodes.IRETURN );
+ mv.visitLabel( l2 );
// if (( object == null ) || ( ! ( object instanceof <class> ) ) )
- mv.visitLabel( l2 );
mv.visitVarInsn( Opcodes.ALOAD,
1 );
final Label l3 = new Label();
@@ -1053,9 +1080,75 @@
mv.visitLabel( l3 );
mv.visitInsn( Opcodes.ICONST_0 );
mv.visitInsn( Opcodes.IRETURN );
+ mv.visitLabel( l4 );
+ // if( object instanceof ShadowProxy &&
+ // ( this.delegate == ((ShadowProxy)object).delegate ||
+ // this.delegate.equals( ((ShadowProxy)object).delegate ) ) ) {
+ Label c0 = new Label();
+ mv.visitLabel( c0 );
+ mv.visitVarInsn( Opcodes.ALOAD,
+ 1 );
+ mv.visitTypeInsn( Opcodes.INSTANCEOF,
+ className );
+ Label c1 = new Label();
+ mv.visitJumpInsn( Opcodes.IFEQ,
+ c1 );
+ mv.visitVarInsn( Opcodes.ALOAD,
+ 0 );
+ mv.visitFieldInsn( Opcodes.GETFIELD,
+ className,
+ DELEGATE_FIELD_NAME,
+ Type.getDescriptor( clazz ) );
+ mv.visitVarInsn( Opcodes.ALOAD,
+ 1 );
+ mv.visitTypeInsn( Opcodes.CHECKCAST,
+ className );
+ mv.visitFieldInsn( Opcodes.GETFIELD,
+ className,
+ DELEGATE_FIELD_NAME,
+ Type.getDescriptor( clazz ) );
+ Label c2 = new Label();
+ mv.visitJumpInsn( Opcodes.IF_ACMPEQ,
+ c2 );
+ mv.visitVarInsn( Opcodes.ALOAD,
+ 0 );
+ mv.visitFieldInsn( Opcodes.GETFIELD,
+ className,
+ DELEGATE_FIELD_NAME,
+ Type.getDescriptor( clazz ) );
+ mv.visitVarInsn( Opcodes.ALOAD,
+ 1 );
+ mv.visitTypeInsn( Opcodes.CHECKCAST,
+ className );
+ mv.visitFieldInsn( Opcodes.GETFIELD,
+ className,
+ DELEGATE_FIELD_NAME,
+ Type.getDescriptor( clazz ) );
+ if ( clazz.isInterface() ) {
+ mv.visitMethodInsn( Opcodes.INVOKEINTERFACE,
+ Type.getInternalName( clazz ),
+ "equals",
+ Type.getMethodDescriptor( Type.BOOLEAN_TYPE,
+ new Type[]{Type.getType( Object.class )} ) );
+ } else {
+ mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
+ Type.getInternalName( clazz ),
+ "equals",
+ Type.getMethodDescriptor( Type.BOOLEAN_TYPE,
+ new Type[]{Type.getType( Object.class )} ) );
+ }
+ mv.visitJumpInsn( Opcodes.IFEQ,
+ c1 );
+ mv.visitLabel( c2 );
+ // return true;
+ mv.visitInsn( Opcodes.ICONST_1 );
+ mv.visitInsn( Opcodes.IRETURN );
+ // }
+ mv.visitLabel( c1 );
+
+
// <class> other = (<class>) object;
- mv.visitLabel( l4 );
mv.visitVarInsn( Opcodes.ALOAD,
1 );
mv.visitTypeInsn( Opcodes.CHECKCAST,
@@ -1322,11 +1415,19 @@
Type.getDescriptor( clazz ) );
mv.visitVarInsn( Opcodes.ALOAD,
1 );
- mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
- Type.getInternalName( clazz ),
- "equals",
- Type.getMethodDescriptor( Type.BOOLEAN_TYPE,
- new Type[]{Type.getType( Object.class )} ) );
+ if ( clazz.isInterface() ) {
+ mv.visitMethodInsn( Opcodes.INVOKEINTERFACE,
+ Type.getInternalName( clazz ),
+ "equals",
+ Type.getMethodDescriptor( Type.BOOLEAN_TYPE,
+ new Type[]{Type.getType( Object.class )} ) );
+ } else {
+ mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
+ Type.getInternalName( clazz ),
+ "equals",
+ Type.getMethodDescriptor( Type.BOOLEAN_TYPE,
+ new Type[]{Type.getType( Object.class )} ) );
+ }
mv.visitInsn( Opcodes.IRETURN );
Label l3 = new Label();
mv.visitLabel( l3 );
@@ -1401,11 +1502,19 @@
className,
DELEGATE_FIELD_NAME,
Type.getDescriptor( clazz ) );
- mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
- Type.getInternalName( clazz ),
- "hashCode",
- Type.getMethodDescriptor( Type.INT_TYPE,
- new Type[0] ) );
+ if ( clazz.isInterface() ) {
+ mv.visitMethodInsn( Opcodes.INVOKEINTERFACE,
+ Type.getInternalName( clazz ),
+ "hashCode",
+ Type.getMethodDescriptor( Type.INT_TYPE,
+ new Type[0] ) );
+ } else {
+ mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
+ Type.getInternalName( clazz ),
+ "hashCode",
+ Type.getMethodDescriptor( Type.INT_TYPE,
+ new Type[0] ) );
+ }
mv.visitFieldInsn( Opcodes.PUTFIELD,
className,
HASHCACHE_FIELD_NAME,
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -746,12 +746,22 @@
// we need to remove the handle from the map, before replacing the object
// and then re-add the handle. Otherwise we may end up with a leak.
this.assertMap.remove( handle );
- handle.setObject( object );
+ Object oldObject = handle.getObject();
+ if( oldObject instanceof ShadowProxy ) {
+ ((ShadowProxy) oldObject).setShadowedObject( object );
+ } else {
+ handle.setObject( object );
+ }
this.assertMap.put( handle,
handle,
false );
} else {
- handle.setObject( object );
+ Object oldObject = handle.getObject();
+ if( oldObject instanceof ShadowProxy ) {
+ ((ShadowProxy) oldObject).setShadowedObject( object );
+ } else {
+ handle.setObject( object );
+ }
}
return handle;
} else {
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/common/EqualityKey.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/common/EqualityKey.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/common/EqualityKey.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -20,6 +20,8 @@
import java.util.ArrayList;
import java.util.List;
+import org.drools.base.ShadowProxy;
+
/**
* Upon instantiation the EqualityKey caches the first Object's hashCode
* this can never change. The EqualityKey has an internal datastructure
@@ -153,7 +155,7 @@
if ( object instanceof EqualityKey ) {
return this == object;
}
-
+
return (this.handle.getObject().equals( object ));
}
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -73,6 +73,20 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/**
+ * Determine if the passed <code>Class</code> matches to the object type
+ * defined by this <code>objectType</code> instance.
+ *
+ * @param clazz
+ * The <code>Class</code> to test.
+ *
+ * @return <code>true</code> if the <code>Class</code> matches this
+ * object type, else <code>false</code>.
+ */
+ public boolean matchesClass(final Class clazz) {
+ return FactImpl.class.isAssignableFrom( clazz );
+ }
+
+ /**
* Determine if the passed <code>Object</code> belongs to the object type
* defined by this <code>objectType</code> instance.
*
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -128,6 +128,18 @@
}
/**
+ * Tests the provided class to see if this <code>ObjectTypeNode</code> can receive instances of that class
+ * for assertion and retraction propagations.
+ *
+ * @param object
+ * @return
+ * boolean value indicating whether the <code>ObjectTypeNode</code> can receive instances of the class.
+ */
+ public boolean matchesClass(final Class clazz) {
+ return this.objectType.matchesClass( clazz );
+ }
+
+ /**
* Propagate the <code>FactHandleimpl</code> through the <code>Rete</code> network. All
* <code>FactHandleImpl</code> should be remembered in the node memory, so that later runtime rule attachmnents
* can have the matched facts propagated to them.
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/reteoo/Rete.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/reteoo/Rete.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -187,7 +187,7 @@
ObjectTypeConf objectTypeConf;
if ( object instanceof ShadowProxy ) {
- objectTypeConf = (ObjectTypeConf) memory.get( object.getClass().getSuperclass() );
+ objectTypeConf = (ObjectTypeConf) memory.get( ((ShadowProxy)object).getShadowedObject().getClass() );
} else {
objectTypeConf = (ObjectTypeConf) memory.get( object.getClass() );
}
@@ -310,49 +310,114 @@
//private final InternalRuleBase ruleBase;
- public ObjectTypeConf(Class cls,
+ public ObjectTypeConf(Class clazz,
InternalRuleBase ruleBase) {
- this.cls = cls;
+ this.cls = clazz;
this.ruleBase = ruleBase;
- Rete rete = ruleBase.getRete();
- if ( !ruleBase.getConfiguration().isShadowProxy() || cls == null || !ruleBase.getConfiguration().isShadowed( cls.getName() ) ) {
+ defineShadowProxyData( clazz );
+ }
+
+ private void defineShadowProxyData(Class clazz) {
+ Rete rete = this.ruleBase.getRete();
+
+ if ( !ruleBase.getConfiguration().isShadowProxy() || clazz == null || !ruleBase.getConfiguration().isShadowed( clazz.getName() ) ) {
+ this.shadowEnabled = false;
+ this.shadowClass = null;
+ this.instantiator = null;
return;
}
-
- Package pkg = cls.getPackage();
+
+ Package pkg = clazz.getPackage();
String pkgName = (pkg != null) ? pkg.getName() : "";
if ( "org.drools.reteoo".equals( pkgName ) || "org.drools.base".equals( pkgName ) ) {
// We don't shadow internal classes
this.shadowEnabled = false;
+ this.shadowClass = null;
+ this.instantiator = null;
return;
}
+ // try to generate proxy for the actual class
+ Class shadowClass = loadOrGenerateProxy( clazz,
+ rete );
+
+ if ( shadowClass == null ) {
+ // if it failed, try to find a parent class
+ ObjectTypeNode[] nodes = this.getMatchingObjectTypes( clazz );
+ Class shadowClassRoot = clazz;
+ while ( shadowClass == null && (shadowClassRoot = this.findAFeasibleSuperclassOrInterface( nodes,
+ shadowClassRoot )) != null ) {
+ shadowClass = loadOrGenerateProxy( shadowClassRoot,
+ rete );
+ }
+ }
+
+ if ( shadowClass != null ) {
+ this.shadowClass = shadowClass;
+ this.shadowEnabled = true;
+ setInstantiator();
+ }
+ }
+
+ private Class loadOrGenerateProxy(Class clazz,
+ Rete rete) {
Class shadowClass = null;
- final String shadowProxyName = ShadowProxyFactory.getProxyClassNameForClass( this.cls );
+ final String shadowProxyName = ShadowProxyFactory.getProxyClassNameForClass( clazz );
try {
// if already loaded
shadowClass = rete.getRuleBase().getMapBackedClassLoader().loadClass( shadowProxyName );
} catch ( final ClassNotFoundException cnfe ) {
// otherwise, create and load
- final byte[] proxyBytes = ShadowProxyFactory.getProxyBytes( cls );
+ final byte[] proxyBytes = ShadowProxyFactory.getProxyBytes( clazz );
if ( proxyBytes != null ) {
rete.getRuleBase().getMapBackedClassLoader().addClass( shadowProxyName,
proxyBytes );
try {
shadowClass = rete.getRuleBase().getMapBackedClassLoader().loadClass( shadowProxyName );
} catch ( ClassNotFoundException e ) {
- throw new RuntimeException( "Unable to find or generate the ShadowProxy implementation for '" + this.cls.getName() + "'" );
+ throw new RuntimeException( "Unable to find or generate the ShadowProxy implementation for '" + clazz + "'" );
}
}
}
+ return shadowClass;
+ }
- if ( shadowClass != null ) {
- this.shadowClass = shadowClass;
- this.shadowEnabled = true;
- setInstantiator();
+ private Class findAFeasibleSuperclassOrInterface(ObjectTypeNode[] nodes,
+ Class clazz) {
+
+ // check direct superclass
+ Class ret = clazz.getSuperclass();
+ boolean isOk = ret != null && ret != Object.class; // we don't want to shadow java.lang.Object
+ if ( isOk ) {
+ for ( int i = 0; isOk && ret != null && i < nodes.length; i++ ) {
+ isOk = nodes[i].matchesClass( ret );
+ }
}
+
+ if ( !isOk ) {
+ // try the interfaces now...
+ Class[] interfaces = clazz.getInterfaces();
+ boolean notFound = true;
+ isOk = interfaces.length > 0;
+ for ( int i = 0; notFound && i < interfaces.length; i++ ) {
+ ret = interfaces[i];
+ isOk = interfaces[i] != Serializable.class &&
+ interfaces[i] != Cloneable.class &&
+ interfaces[i] != Comparable.class;
+ for ( int j = 0; isOk && j < nodes.length; j++ ) {
+ isOk = nodes[j].matchesClass( ret );
+ }
+ notFound = !isOk;
+ }
+ if( notFound ) {
+ ret = null;
+ }
+ }
+
+ // ret now contains a superclass/interface that can be shadowed or null if none
+ return ret;
}
private void readObject(ObjectInputStream stream) throws IOException,
@@ -372,16 +437,15 @@
ShadowProxy proxy = null;
if ( isShadowEnabled() ) {
try {
- if( Collection.class.isAssignableFrom( this.shadowClass ) ||
- Map.class.isAssignableFrom( this.shadowClass ) ) {
+ if ( Collection.class.isAssignableFrom( this.shadowClass ) || Map.class.isAssignableFrom( this.shadowClass ) ) {
// if it is a collection, try to instantiate using constructor
try {
- proxy = (ShadowProxy) this.shadowClass.getConstructor( new Class[] { cls } ).newInstance( new Object[] { fact } );
+ proxy = (ShadowProxy) this.shadowClass.getConstructor( new Class[]{cls} ).newInstance( new Object[]{fact} );
} catch ( Exception e ) {
// not possible to instantiate using constructor
}
}
- if( proxy == null ) {
+ if ( proxy == null ) {
if ( this.instantiator == null ) {
this.setInstantiator();
}
@@ -402,6 +466,7 @@
public void resetCache() {
this.objectTypeNodes = null;
+ defineShadowProxyData( cls );
}
public ObjectTypeNode[] getObjectTypeNodes(final Object object) {
@@ -411,6 +476,20 @@
return this.objectTypeNodes;
}
+ private ObjectTypeNode[] getMatchingObjectTypes(final Class clazz) throws FactException {
+ final List cache = new ArrayList();
+
+ final Iterator it = ruleBase.getRete().getObjectTypeNodes().newIterator();
+ for ( ObjectEntry entry = (ObjectEntry) it.next(); entry != null; entry = (ObjectEntry) it.next() ) {
+ final ObjectTypeNode node = (ObjectTypeNode) entry.getValue();
+ if ( node.matchesClass( clazz ) ) {
+ cache.add( node );
+ }
+ }
+
+ return (ObjectTypeNode[]) cache.toArray( new ObjectTypeNode[cache.size()] );
+ }
+
private void buildCache(final Object object) throws FactException {
final List cache = new ArrayList();
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/spi/ObjectType.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/spi/ObjectType.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/main/java/org/drools/spi/ObjectType.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -31,6 +31,18 @@
extends
Serializable {
/**
+ * Determine if the passed <code>Class</code> matches to the object type
+ * defined by this <code>objectType</code> instance.
+ *
+ * @param clazz
+ * The <code>Class</code> to test.
+ *
+ * @return <code>true</code> if the <code>Class</code> matches this
+ * object type, else <code>false</code>.
+ */
+ boolean matchesClass(Class clazz);
+
+ /**
* Determine if the passed <code>Object</code> belongs to the object type
* defined by this <code>objectType</code> instance.
*
Copied: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/CheeseEqual.java (from rev 13605, labs/jbossrules/trunk/drools-core/src/test/java/org/drools/CheeseEqual.java)
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/CheeseEqual.java (rev 0)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/CheeseEqual.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -0,0 +1,91 @@
+package org.drools;
+
+import java.io.Serializable;
+
+/*
+ * Copyright 2005 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.
+ */
+
+public class CheeseEqual
+ implements
+ Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ protected String type;
+ protected int price;
+
+ public CheeseEqual() {
+
+ }
+
+ public CheeseEqual(final String type,
+ final int price) {
+ super();
+ this.type = type;
+ this.price = price;
+ }
+
+ public int getPrice() {
+ return this.price;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setPrice(final int price) {
+ this.price = price;
+ }
+
+ public String toString() {
+ return "CheeseEqual( type='" + this.type + "', price=" + this.price + " )";
+ }
+
+ public boolean equals(final Object object) {
+ if ( this == object ) {
+ return true;
+ }
+
+ if ( (object == null) || (object.getClass() != this.getClass()) ) {
+ return false;
+ }
+
+ final CheeseEqual other = (CheeseEqual) object;
+
+ if ( !this.type.equals( other.type ) ) {
+ return false;
+ }
+
+ if ( this.price != other.price ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public int hashCode() {
+ //like org.apache.commons.lang.builder.HashCodeBuilder
+ int hashCode = 17;
+ hashCode = hashCode * 37 + this.price;
+ hashCode = hashCode * 37 + (this.type == null ? 0 : this.type.hashCode());
+ return hashCode;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+}
\ No newline at end of file
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -10,6 +10,7 @@
import org.drools.Address;
import org.drools.Cheese;
+import org.drools.CheeseEqual;
import org.drools.CheeseInterface;
import org.drools.Person;
@@ -201,9 +202,9 @@
Assert.assertEquals( cheeseHash,
cheeseProxy1.hashCode() );
- // now they are different
- Assert.assertFalse( cheeseProxy1.equals( cheeseProxy2 ) );
- Assert.assertFalse( cheeseProxy2.equals( cheeseProxy1 ) );
+ // they are still identity equals
+ Assert.assertTrue( cheeseProxy1.equals( cheeseProxy2 ) );
+ Assert.assertTrue( cheeseProxy2.equals( cheeseProxy1 ) );
// updating proxy2
((ShadowProxy) cheeseProxy2).updateProxy();
@@ -557,5 +558,98 @@
fail( "Error: " + e.getMessage() );
}
}
-
+
+ public void testProxyForInterface2() {
+ try {
+ // creating original object
+ final String original = "stilton";
+
+ // creating proxy
+ final Class proxy = ShadowProxyFactory.getProxy( Comparable.class );
+ final Comparable comparableProxy = (Comparable) proxy.getConstructor( new Class[]{Comparable.class} ).newInstance( new Object[]{original} );
+
+ // proxy is proxying the values
+ Assert.assertEquals( comparableProxy,
+ original );
+ Assert.assertSame( original,
+ ((ShadowProxy) comparableProxy).getShadowedObject() );
+ Assert.assertEquals( original.hashCode(),
+ comparableProxy.hashCode() );
+
+ } catch ( final Exception e ) {
+ fail( "Error: " + e.getMessage() );
+ }
+ }
+
+ public void testProxyForClassWithEquals() {
+ try {
+ // creating original object
+ final String originalType = "stilton";
+ final int originalPrice = 15;
+ final CheeseEqual cheese = new CheeseEqual( originalType,
+ originalPrice );
+
+ // creating proxy
+ final Class proxy = ShadowProxyFactory.getProxy( CheeseEqual.class );
+ final CheeseEqual cheeseProxy = (CheeseEqual) proxy.getConstructor( new Class[]{CheeseEqual.class} ).newInstance( new Object[]{cheese} );
+
+ // proxy is proxying the values
+ Assert.assertEquals( originalType,
+ cheeseProxy.getType() );
+ Assert.assertEquals( originalPrice,
+ cheeseProxy.getPrice() );
+ Assert.assertSame( cheese,
+ ((ShadowProxy) cheeseProxy).getShadowedObject() );
+
+ // proxy must recongnize the original object on equals()/hashcode() calls
+ //Assert.assertEquals( cheeseProxy.hashCode(), cheese.hashCode() );
+ Assert.assertEquals( cheeseProxy,
+ cheese );
+
+ // changing original values
+ final String actualType = "rotten stilton";
+ final int actualPrice = 1;
+ cheese.setType( actualType );
+ cheese.setPrice( actualPrice );
+
+ // proxy does not see changes
+ Assert.assertEquals( actualType,
+ cheese.getType() );
+ Assert.assertFalse( actualType.equals( cheeseProxy.getType() ) );
+ Assert.assertEquals( originalType,
+ cheeseProxy.getType() );
+ Assert.assertEquals( actualPrice,
+ cheese.getPrice() );
+ Assert.assertFalse( actualPrice == cheeseProxy.getPrice() );
+ Assert.assertEquals( originalPrice,
+ cheeseProxy.getPrice() );
+
+ // reseting proxy
+ ((ShadowProxy) cheeseProxy).updateProxy();
+
+ // now proxy see changes
+ Assert.assertEquals( actualType,
+ cheese.getType() );
+ Assert.assertEquals( actualType,
+ cheeseProxy.getType() );
+ Assert.assertFalse( originalType.equals( cheeseProxy.getType() ) );
+ Assert.assertEquals( actualPrice,
+ cheese.getPrice() );
+ Assert.assertEquals( actualPrice,
+ cheeseProxy.getPrice() );
+ Assert.assertFalse( originalPrice == cheeseProxy.getPrice() );
+
+ // Another cheese
+ final CheeseEqual cheese2 = new CheeseEqual( "brie",
+ 10 );
+
+ final CheeseEqual cheese2Proxy = (CheeseEqual) proxy.getConstructor( new Class[]{CheeseEqual.class} ).newInstance( new Object[]{cheese2} );
+ assertFalse( cheeseProxy.equals( cheese2Proxy ) );
+ assertFalse( cheese2Proxy.equals( cheeseProxy ) );
+
+ } catch ( final Exception e ) {
+ fail( "Error: " + e.getMessage() );
+ }
+ }
+
}
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -320,10 +320,6 @@
}
public void testAssertObjectWithShadowEnabled() throws Exception {
- final PropagationContext context = new PropagationContextImpl( 0,
- PropagationContext.ASSERTION,
- null,
- null );
final ReteooRuleBase ruleBase = (ReteooRuleBase) RuleBaseFactory.newRuleBase();
final ReteooWorkingMemory workingMemory = new ReteooWorkingMemory( 1,
@@ -331,7 +327,6 @@
final Rete source = ruleBase.getRete();
- final Class shadowClass = ShadowProxyFactory.getProxy( Cheese.class );
final ObjectTypeNode objectTypeNode = new ObjectTypeNode( 1,
new ClassObjectType( Cheese.class ),
source,
@@ -339,17 +334,13 @@
final MockObjectSink sink = new MockObjectSink();
objectTypeNode.addObjectSink( sink );
+ source.addObjectSink( objectTypeNode );
final Object cheese = new Cheese( "muzzarela",
5 );
final InternalFactHandle handle1 = (InternalFactHandle) workingMemory.insert( cheese );
- // should assert as ObjectType matches
- objectTypeNode.assertObject( handle1,
- context,
- workingMemory );
-
// make sure just string1 was asserted
final List asserted = sink.getAsserted();
assertLength( 1,
Modified: labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/spi/MockObjectType.java
===================================================================
--- labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/spi/MockObjectType.java 2007-07-19 04:09:43 UTC (rev 13619)
+++ labs/jbossrules/branches/mvel-tooling-2007-06-30/drools-core/src/test/java/org/drools/spi/MockObjectType.java 2007-07-19 04:28:05 UTC (rev 13620)
@@ -62,6 +62,20 @@
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/**
+ * Determine if the passed <code>Class</code> matches to the object type
+ * defined by this <code>objectType</code> instance.
+ *
+ * @param clazz
+ * The <code>Class</code> to test.
+ *
+ * @return <code>true</code> if the <code>Class</code> matches this
+ * object type, else <code>false</code>.
+ */
+ public boolean matchesClass(final Class clazz) {
+ return this.matches;
+ }
+
+ /**
* Determine if the passed <code>Object</code> belongs to the object type
* defined by this <code>objectType</code> instance.
*
More information about the jboss-svn-commits
mailing list