[jboss-svn-commits] JBL Code SVN: r17161 - in labs/jbossrules/trunk: drools-analytics/src/main/java/org/drools/analytics/report/components and 40 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Dec 10 13:37:24 EST 2007
Author: tirelli
Date: 2007-12-10 13:37:22 -0500 (Mon, 10 Dec 2007)
New Revision: 17161
Added:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/EvaluatorBasedRestrictionDescr.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/OrderEvent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/StockTick.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/AbstractEventListener.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/Event.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/PseudoSessionClock.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGenerator.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGeneratorTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventListener.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ExampleScenario.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/FailureEvent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/HeartbeatEvent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ProductionEvent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Resource.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/SlidingWindow.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Status.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/StatusChangedEvent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Tools.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/example_scenario.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/test_eventGenerator.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleTimeWindow.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/import_event.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/pluggable_operators.drl
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ClockType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/TemporalSession.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/AfterEvaluatorDefinition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorCache.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorDefinition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/MatchesEvaluatorsDefinition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/SetEvaluatorsDefinition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/SoundslikeEvaluatorsDefinition.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EventFactHandle.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FactTemplateTypeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeConf.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooTemporalSession.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionClock.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionPseudoClock.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/DateUtils.java
labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94EventFactHandle.java
Removed:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/AbstractEventListener.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/Event.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/PseudoSessionClock.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGenerator.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGeneratorTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventListener.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ExampleScenario.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/FailureEvent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/HeartbeatEvent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ProductionEvent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Resource.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/SlidingWindow.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Status.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/StatusChangedEvent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Tools.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/example_scenario.drl
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/test_eventGenerator.drl
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BaseMemberOfEvaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BaseNotMemberOfEvaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BigDecimalFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BigIntegerFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BooleanFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ByteFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/CharacterFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DoubleFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FactTemplateFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FloatFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/LongFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ShortFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/StringFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionClock.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionPseudoClock.java
Modified:
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java
labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/MissingRange.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/MVELDumper.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PredicateDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/QualifiedIdentifierRestrictionDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RestrictionConnectiveDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ReturnValueRestrictionDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/VariableRestrictionDescr.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PackageBuildContext.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaRuleClassBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/rules/QualifiedIdentifierRestrictionHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools.default.packagebuilder.conf
labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockRuleBase.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/StatefulSession.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseEvaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassTypeResolver.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/Operator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELCalendarCoercion.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELDateCoercion.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaConstraints.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalFactHandle.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TupleStartEqualsConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatelessSession.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Evaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ObjectType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Restriction.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELCalendarCoercionTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELDateCoercionTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/BaseBetaConstraintsTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/EqualityKeyTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/TripleBetaConstraintsTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/AgendaEventSupportTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/RuleBaseEventListenerTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AccumulateNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/DefaultFactHandleFactoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeConfTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockObjectType.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java
labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/ExternalSheetListenerTest.java
labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94FactHandle.java
labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94FactHandleFactory.java
Log:
JBRULES-1384: merging temporal support for revisions 15772:17159 into trunk
Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/PackageDescrFlattener.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -83,7 +83,7 @@
formPossibilities();
}
- private void flatten(Collection<Object> descrs, AnalyticsComponent parent) {
+ private void flatten(Collection<?> descrs, AnalyticsComponent parent) {
int orderNumber = 0;
@@ -604,7 +604,7 @@
restriction.setConstraintId(currentConstraint.getId());
restriction.setFieldId(currentConstraint.getFieldId());
restriction.setOperator(Operator
- .determineOperator(descr.getEvaluator()));
+ .determineOperator(descr.getEvaluator(), descr.isNegated()));
restriction.setVariable(variable);
restriction.setOrderNumber(orderNumber);
restriction.setParent(parent);
@@ -634,7 +634,7 @@
restriction.setConstraintId(currentConstraint.getId());
restriction.setFieldId(currentConstraint.getFieldId());
restriction.setOperator(Operator
- .determineOperator(descr.getEvaluator()));
+ .determineOperator(descr.getEvaluator(), descr.isNegated()));
restriction.setClassMethodName(descr.getClassMethodName());
restriction.setContent(descr.getContent());
restriction.setDeclarations(descr.getDeclarations());
@@ -665,7 +665,7 @@
restriction.setConstraintId(currentConstraint.getId());
restriction.setFieldId(currentConstraint.getFieldId());
restriction.setOperator(Operator
- .determineOperator(descr.getEvaluator()));
+ .determineOperator(descr.getEvaluator(), descr.isNegated()));
restriction.setValue(descr.getText());
restriction.setOrderNumber(orderNumber);
restriction.setParent(parent);
@@ -698,7 +698,7 @@
restriction.setConstraintId(currentConstraint.getId());
restriction.setFieldId(currentConstraint.getFieldId());
restriction.setOperator(Operator
- .determineOperator(descr.getEvaluator()));
+ .determineOperator(descr.getEvaluator(), descr.isNegated()));
restriction.setVariableId(variable.getId());
restriction.setVariableName(text.substring(0, text.indexOf(".")));
restriction.setVariablePath(text.substring(text.indexOf(".")));
Modified: labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/MissingRange.java
===================================================================
--- labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/MissingRange.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-analytics/src/main/java/org/drools/analytics/report/components/MissingRange.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -31,21 +31,9 @@
return Operator.LESS;
} else if (e.equals(Operator.LESS_OR_EQUAL)) {
return Operator.GREATER;
- } else if (e.equals(Operator.MATCHES)) {
- return Operator.NOT_MATCHES;
- } else if (e.equals(Operator.NOT_MATCHES)) {
- return Operator.MATCHES;
- } else if (e.equals(Operator.CONTAINS)) {
- return Operator.NOT_CONTAINS;
- } else if (e.equals(Operator.NOT_CONTAINS)) {
- return Operator.CONTAINS;
- } else if (e.equals(Operator.MEMBEROF)) {
- return Operator.NOTMEMBEROF;
- } else if (e.equals(Operator.NOTMEMBEROF)) {
- return Operator.MEMBEROF;
- }
-
- return e;
+ } else {
+ return Operator.determineOperator( e.getOperatorString(), !e.isNegated() );
+ }
}
public int compareTo(MissingRange another) {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -32,7 +32,6 @@
import org.drools.facttemplates.FactTemplateImpl;
import org.drools.facttemplates.FieldTemplate;
import org.drools.facttemplates.FieldTemplateImpl;
-import org.drools.lang.descr.ActionDescr;
import org.drools.lang.descr.BaseDescr;
import org.drools.lang.descr.FactTemplateDescr;
import org.drools.lang.descr.FieldTemplateDescr;
@@ -41,23 +40,14 @@
import org.drools.lang.descr.GlobalDescr;
import org.drools.lang.descr.ImportDescr;
import org.drools.lang.descr.PackageDescr;
-import org.drools.lang.descr.ProcessDescr;
import org.drools.lang.descr.QueryDescr;
import org.drools.lang.descr.RuleDescr;
+import org.drools.rule.ImportDeclaration;
import org.drools.rule.Package;
import org.drools.rule.Rule;
-import org.drools.rule.builder.ProcessBuildContext;
import org.drools.rule.builder.RuleBuildContext;
import org.drools.rule.builder.RuleBuilder;
-import org.drools.rule.builder.dialect.java.JavaDialect;
import org.drools.ruleflow.common.core.Process;
-import org.drools.ruleflow.common.core.impl.ProcessImpl;
-import org.drools.ruleflow.core.ActionNode;
-import org.drools.ruleflow.core.Node;
-import org.drools.ruleflow.core.RuleFlowProcess;
-import org.drools.ruleflow.core.impl.ActionNodeImpl;
-import org.drools.ruleflow.core.impl.DroolsConsequenceAction;
-import org.drools.xml.ExtensibleXmlParser;
import org.drools.xml.SemanticModules;
import org.drools.xml.XmlPackageReader;
import org.drools.xml.XmlProcessReader;
@@ -146,12 +136,12 @@
this.classFieldExtractorCache = ClassFieldExtractorCache.getInstance();
if ( this.pkg != null ) {
- this.typeResolver = new ClassTypeResolver( this.pkg.getImports(),
+ this.typeResolver = new ClassTypeResolver( new HashSet<String>( this.pkg.getImports().keySet() ),
this.configuration.getClassLoader() );
// make an automatic import for the current package
this.typeResolver.addImport( this.pkg.getName() + ".*" );
} else {
- this.typeResolver = new ClassTypeResolver( new HashSet(),
+ this.typeResolver = new ClassTypeResolver( new HashSet<String>(),
this.configuration.getClassLoader() );
}
@@ -392,10 +382,11 @@
private void mergePackage(final PackageDescr packageDescr) {
final List imports = packageDescr.getImports();
for ( final Iterator it = imports.iterator(); it.hasNext(); ) {
- String importEntry = ((ImportDescr) it.next()).getTarget();
- this.pkg.addImport( importEntry );
- this.typeResolver.addImport( importEntry );
- this.dialectRegistry.addImport( importEntry );
+ ImportDescr importEntry = (ImportDescr) it.next();
+ ImportDeclaration importDecl = new ImportDeclaration( importEntry.getTarget(), importEntry.isEvent() );
+ pkg.addImport( importDecl );
+ this.typeResolver.addImport( importDecl.getTarget() );
+ this.dialectRegistry.addImport( importDecl.getTarget() );
}
for ( final Iterator it = packageDescr.getFunctionImports().iterator(); it.hasNext(); ) {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -31,6 +31,8 @@
import org.drools.RuntimeDroolsException;
import org.drools.base.accumulators.AccumulateFunction;
+import org.drools.base.evaluators.EvaluatorDefinition;
+import org.drools.base.evaluators.EvaluatorRegistry;
import org.drools.util.ChainedProperties;
import org.drools.xml.SemanticModule;
import org.drools.xml.SemanticModules;
@@ -46,6 +48,7 @@
*
* drools.dialect.default = <String>
* drools.accumulate.function.<function name> = <qualified class>
+ * drools.evaluator.<ident> = <qualified class>
*
* default dialect is java.
* Available preconfigured Accumulate functions are:
@@ -59,6 +62,8 @@
private static final String ACCUMULATE_FUNCTION_PREFIX = "drools.accumulate.function.";
+ private static final String EVALUATOR_DEFINITION_PREFIX = "drools.evaluator.";
+
private Map dialectConfigurations;
private String defaultDialect;
@@ -67,8 +72,10 @@
private ChainedProperties chainedProperties;
- private Map accumulateFunctions;
+ private Map<String, String> accumulateFunctions;
+ private EvaluatorRegistry evaluatorRegistry;
+
private SemanticModules semanticModules;
/**
@@ -127,6 +134,8 @@
buildDialectConfigurationMap();
buildAccumulateFunctionsMap();
+
+ buildEvaluatorRegistry();
}
public ChainedProperties getChainedProperties() {
@@ -331,7 +340,7 @@
// }
private void buildAccumulateFunctionsMap() {
- this.accumulateFunctions = new HashMap();
+ this.accumulateFunctions = new HashMap<String, String>();
Map temp = new HashMap();
this.chainedProperties.mapStartsWith( temp,
ACCUMULATE_FUNCTION_PREFIX,
@@ -340,11 +349,11 @@
Map.Entry entry = (Map.Entry) it.next();
String identifier = ((String) entry.getKey()).trim().substring( ACCUMULATE_FUNCTION_PREFIX.length() );
this.accumulateFunctions.put( identifier,
- entry.getValue() );
+ (String) entry.getValue() );
}
}
- public Map getAccumulateFunctionsMap() {
+ public Map<String, String> getAccumulateFunctionsMap() {
return Collections.unmodifiableMap( this.accumulateFunctions );
}
@@ -361,7 +370,7 @@
}
public AccumulateFunction getAccumulateFunction(String identifier) {
- String className = (String) this.accumulateFunctions.get( identifier );
+ String className = this.accumulateFunctions.get( identifier );
if ( className == null ) {
throw new RuntimeDroolsException( "No accumulator function found for identifier: " + identifier );
}
@@ -372,12 +381,59 @@
throw new RuntimeDroolsException( "Error loading accumulator function for identifier " + identifier + ". Class " + className + " not found",
e );
} catch ( InstantiationException e ) {
- throw new RuntimeDroolsException( "Error loading accumulator function for identifier " + identifier + ". Class " + className + " not found",
+ throw new RuntimeDroolsException( "Error loading accumulator function for identifier " + identifier + ". Instantiation failed for class " + className,
e );
} catch ( IllegalAccessException e ) {
- throw new RuntimeDroolsException( "Error loading accumulator function for identifier " + identifier + ". Class " + className + " not found",
+ throw new RuntimeDroolsException( "Error loading accumulator function for identifier " + identifier + ". Illegal access to class " + className,
e );
}
}
+ private void buildEvaluatorRegistry() {
+ this.evaluatorRegistry = new EvaluatorRegistry( this.classLoader );
+ Map temp = new HashMap();
+ this.chainedProperties.mapStartsWith( temp,
+ EVALUATOR_DEFINITION_PREFIX,
+ true );
+ for ( Iterator it = temp.values().iterator(); it.hasNext(); ) {
+ String className = (String) it.next();
+ this.evaluatorRegistry.addEvaluatorDefinition( className );
+ }
+ }
+
+ /**
+ * Returns the evaluator registry for this package builder configuration
+ * @return
+ */
+ public EvaluatorRegistry getEvaluatorRegistry() {
+ return this.evaluatorRegistry;
+ }
+
+ /**
+ * Adds an evaluator definition class to the registry using the
+ * evaluator class name. The class will be loaded and the corresponting
+ * evaluator ID will be added to the registry. In case there exists
+ * an implementation for that ID already, the new implementation will
+ * replace the previous one.
+ *
+ * @param className the name of the class for the implementation definition.
+ * The class must implement the EvaluatorDefinition interface.
+ *
+ */
+ public void addEvaluatorDefinition( String className ) {
+ this.evaluatorRegistry.addEvaluatorDefinition( className );
+ }
+
+ /**
+ * Adds an evaluator definition class to the registry. In case there exists
+ * an implementation for that evaluator ID already, the new implementation will
+ * replace the previous one.
+ *
+ * @param def the evaluator definition to be added.
+ *
+ */
+ public void addEvaluatorDefinition( EvaluatorDefinition def ) {
+ this.evaluatorRegistry.addEvaluatorDefinition( def );
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLLexer.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-11-12 18:04:45
+// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-12-10 14:18:28
package org.drools.lang;
@@ -10,97 +10,99 @@
import java.util.Map;
import java.util.HashMap;
public class DRLLexer extends Lexer {
- public static final int COMMA=11;
- public static final int EXISTS=39;
+ public static final int COMMA=12;
+ public static final int EXISTS=40;
public static final int T79=79;
- public static final int AUTO_FOCUS=27;
- public static final int END=14;
- public static final int HexDigit=65;
- public static final int FORALL=42;
- public static final int TEMPLATE=15;
- public static final int MISC=71;
- public static final int FLOAT=55;
+ public static final int AUTO_FOCUS=28;
+ public static final int END=15;
+ public static final int HexDigit=67;
+ public static final int FORALL=43;
+ public static final int TEMPLATE=16;
+ public static final int MISC=73;
+ public static final int FLOAT=57;
public static final int T74=74;
- public static final int QUERY=13;
- public static final int THEN=61;
- public static final int RULE=16;
- public static final int INIT=44;
+ public static final int QUERY=14;
+ public static final int THEN=63;
+ public static final int RULE=17;
+ public static final int INIT=45;
+ public static final int T83=83;
+ public static final int TILDE=55;
public static final int IMPORT=5;
public static final int PACKAGE=4;
- public static final int DATE_EFFECTIVE=19;
- public static final int OR=34;
- public static final int DOT=8;
- public static final int DOUBLE_PIPE=35;
- public static final int AND=36;
+ public static final int DATE_EFFECTIVE=20;
+ public static final int OR=35;
+ public static final int DOT=9;
+ public static final int DOUBLE_PIPE=36;
+ public static final int AND=37;
public static final int FUNCTION=6;
- public static final int GLOBAL=9;
- public static final int EscapeSequence=64;
- public static final int DIALECT=32;
- public static final int INT=25;
- public static final int LOCK_ON_ACTIVE=33;
- public static final int DATE_EXPIRES=21;
+ public static final int GLOBAL=10;
+ public static final int EscapeSequence=66;
+ public static final int DIALECT=33;
+ public static final int INT=26;
+ public static final int LOCK_ON_ACTIVE=34;
+ public static final int DATE_EXPIRES=22;
public static final int T81=81;
- public static final int LEFT_SQUARE=59;
- public static final int CONTAINS=49;
- public static final int SH_STYLE_SINGLE_LINE_COMMENT=68;
+ public static final int LEFT_SQUARE=61;
+ public static final int CONTAINS=50;
+ public static final int SH_STYLE_SINGLE_LINE_COMMENT=70;
public static final int T77=77;
- public static final int ATTRIBUTES=18;
- public static final int LEFT_CURLY=57;
- public static final int RESULT=47;
- public static final int ID=7;
- public static final int FROM=38;
- public static final int LEFT_PAREN=10;
- public static final int ACTIVATION_GROUP=28;
- public static final int DOUBLE_AMPER=37;
- public static final int RIGHT_CURLY=58;
- public static final int BOOL=23;
- public static final int EXCLUDES=50;
- public static final int SOUNDSLIKE=52;
- public static final int T73=73;
- public static final int MEMBEROF=53;
- public static final int WHEN=17;
+ public static final int ATTRIBUTES=19;
+ public static final int EVENT=7;
+ public static final int LEFT_CURLY=59;
+ public static final int RESULT=48;
+ public static final int ID=8;
+ public static final int FROM=39;
+ public static final int LEFT_PAREN=11;
+ public static final int ACTIVATION_GROUP=29;
+ public static final int DOUBLE_AMPER=38;
+ public static final int RIGHT_CURLY=60;
+ public static final int BOOL=24;
+ public static final int EXCLUDES=51;
+ public static final int SOUNDSLIKE=53;
+ public static final int MEMBEROF=54;
+ public static final int WHEN=18;
public static final int T78=78;
- public static final int RULEFLOW_GROUP=29;
- public static final int WS=63;
- public static final int STRING=20;
- public static final int ACTION=45;
- public static final int T72=72;
- public static final int COLLECT=48;
+ public static final int RULEFLOW_GROUP=30;
+ public static final int WS=65;
+ public static final int STRING=21;
+ public static final int ACTION=46;
+ public static final int COLLECT=49;
public static final int T76=76;
- public static final int REVERSE=46;
- public static final int IN=54;
+ public static final int REVERSE=47;
+ public static final int IN=56;
public static final int T80=80;
- public static final int ACCUMULATE=43;
- public static final int NO_LOOP=26;
- public static final int UnicodeEscape=66;
+ public static final int NO_LOOP=27;
+ public static final int ACCUMULATE=44;
+ public static final int UnicodeEscape=68;
public static final int T75=75;
- public static final int DURATION=31;
- public static final int EVAL=41;
- public static final int MATCHES=51;
+ public static final int DURATION=32;
+ public static final int EVAL=42;
+ public static final int MATCHES=52;
public static final int EOF=-1;
- public static final int AGENDA_GROUP=30;
- public static final int NULL=56;
- public static final int EOL=62;
- public static final int Tokens=82;
- public static final int SALIENCE=24;
- public static final int OctalEscape=67;
- public static final int MULTI_LINE_COMMENT=70;
- public static final int NOT=40;
- public static final int RIGHT_PAREN=12;
- public static final int ENABLED=22;
- public static final int RIGHT_SQUARE=60;
- public static final int C_STYLE_SINGLE_LINE_COMMENT=69;
+ public static final int AGENDA_GROUP=31;
+ public static final int NULL=58;
+ public static final int EOL=64;
+ public static final int Tokens=84;
+ public static final int T82=82;
+ public static final int SALIENCE=25;
+ public static final int OctalEscape=69;
+ public static final int MULTI_LINE_COMMENT=72;
+ public static final int NOT=41;
+ public static final int RIGHT_PAREN=13;
+ public static final int ENABLED=23;
+ public static final int RIGHT_SQUARE=62;
+ public static final int C_STYLE_SINGLE_LINE_COMMENT=71;
public DRLLexer() {;}
public DRLLexer(CharStream input) {
super(input);
- ruleMemo = new HashMap[80+1];
+ ruleMemo = new HashMap[82+1];
}
public String getGrammarFileName() { return "/home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g"; }
- // $ANTLR start T72
- public final void mT72() throws RecognitionException {
+ // $ANTLR start T74
+ public final void mT74() throws RecognitionException {
try {
- int _type = T72;
+ int _type = T74;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:6:5: ( ';' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:6:7: ';'
{
@@ -113,12 +115,12 @@
finally {
}
}
- // $ANTLR end T72
+ // $ANTLR end T74
- // $ANTLR start T73
- public final void mT73() throws RecognitionException {
+ // $ANTLR start T75
+ public final void mT75() throws RecognitionException {
try {
- int _type = T73;
+ int _type = T75;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:7:5: ( '.*' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:7:7: '.*'
{
@@ -132,12 +134,12 @@
finally {
}
}
- // $ANTLR end T73
+ // $ANTLR end T75
- // $ANTLR start T74
- public final void mT74() throws RecognitionException {
+ // $ANTLR start T76
+ public final void mT76() throws RecognitionException {
try {
- int _type = T74;
+ int _type = T76;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:8:5: ( ':' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:8:7: ':'
{
@@ -150,12 +152,12 @@
finally {
}
}
- // $ANTLR end T74
+ // $ANTLR end T76
- // $ANTLR start T75
- public final void mT75() throws RecognitionException {
+ // $ANTLR start T77
+ public final void mT77() throws RecognitionException {
try {
- int _type = T75;
+ int _type = T77;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:9:5: ( '->' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:9:7: '->'
{
@@ -169,12 +171,12 @@
finally {
}
}
- // $ANTLR end T75
+ // $ANTLR end T77
- // $ANTLR start T76
- public final void mT76() throws RecognitionException {
+ // $ANTLR start T78
+ public final void mT78() throws RecognitionException {
try {
- int _type = T76;
+ int _type = T78;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:10:5: ( '==' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:10:7: '=='
{
@@ -188,12 +190,12 @@
finally {
}
}
- // $ANTLR end T76
+ // $ANTLR end T78
- // $ANTLR start T77
- public final void mT77() throws RecognitionException {
+ // $ANTLR start T79
+ public final void mT79() throws RecognitionException {
try {
- int _type = T77;
+ int _type = T79;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:11:5: ( '>' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:11:7: '>'
{
@@ -206,12 +208,12 @@
finally {
}
}
- // $ANTLR end T77
+ // $ANTLR end T79
- // $ANTLR start T78
- public final void mT78() throws RecognitionException {
+ // $ANTLR start T80
+ public final void mT80() throws RecognitionException {
try {
- int _type = T78;
+ int _type = T80;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:12:5: ( '>=' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:12:7: '>='
{
@@ -225,12 +227,12 @@
finally {
}
}
- // $ANTLR end T78
+ // $ANTLR end T80
- // $ANTLR start T79
- public final void mT79() throws RecognitionException {
+ // $ANTLR start T81
+ public final void mT81() throws RecognitionException {
try {
- int _type = T79;
+ int _type = T81;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:13:5: ( '<' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:13:7: '<'
{
@@ -243,12 +245,12 @@
finally {
}
}
- // $ANTLR end T79
+ // $ANTLR end T81
- // $ANTLR start T80
- public final void mT80() throws RecognitionException {
+ // $ANTLR start T82
+ public final void mT82() throws RecognitionException {
try {
- int _type = T80;
+ int _type = T82;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:14:5: ( '<=' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:14:7: '<='
{
@@ -262,12 +264,12 @@
finally {
}
}
- // $ANTLR end T80
+ // $ANTLR end T82
- // $ANTLR start T81
- public final void mT81() throws RecognitionException {
+ // $ANTLR start T83
+ public final void mT83() throws RecognitionException {
try {
- int _type = T81;
+ int _type = T83;
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:15:5: ( '!=' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:15:7: '!='
{
@@ -281,16 +283,16 @@
finally {
}
}
- // $ANTLR end T81
+ // $ANTLR end T83
// $ANTLR start WS
public final void mWS() throws RecognitionException {
try {
int _type = WS;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1692:9: ( ( ' ' | '\\t' | '\\f' | EOL )+ )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1692:17: ( ' ' | '\\t' | '\\f' | EOL )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:9: ( ( ' ' | '\\t' | '\\f' | EOL )+ )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:17: ( ' ' | '\\t' | '\\f' | EOL )+
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1692:17: ( ' ' | '\\t' | '\\f' | EOL )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:17: ( ' ' | '\\t' | '\\f' | EOL )+
int cnt1=0;
loop1:
do {
@@ -322,28 +324,28 @@
switch (alt1) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1692:19: ' '
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:19: ' '
{
match(' '); if (failed) return ;
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1693:19: '\\t'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1710:19: '\\t'
{
match('\t'); if (failed) return ;
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1694:19: '\\f'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1711:19: '\\f'
{
match('\f'); if (failed) return ;
}
break;
case 4 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1695:19: EOL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1712:19: EOL
{
mEOL(); if (failed) return ;
@@ -376,10 +378,10 @@
// $ANTLR start EOL
public final void mEOL() throws RecognitionException {
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1701:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1718:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1719:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1719:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
int alt2=3;
int LA2_0 = input.LA(1);
@@ -398,13 +400,13 @@
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1702:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
+ new NoViableAltException("1719:6: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )", 2, 0, input);
throw nvae;
}
switch (alt2) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:14: ( '\\r\\n' )=> '\\r\\n'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1719:14: ( '\\r\\n' )=> '\\r\\n'
{
match("\r\n"); if (failed) return ;
@@ -412,14 +414,14 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1703:25: '\\r'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1720:25: '\\r'
{
match('\r'); if (failed) return ;
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1704:25: '\\n'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1721:25: '\\n'
{
match('\n'); if (failed) return ;
@@ -441,10 +443,10 @@
public final void mINT() throws RecognitionException {
try {
int _type = INT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:2: ( ( '-' )? ( '0' .. '9' )+ )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:4: ( '-' )? ( '0' .. '9' )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1726:2: ( ( '-' )? ( '0' .. '9' )+ )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1726:4: ( '-' )? ( '0' .. '9' )+
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:4: ( '-' )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1726:4: ( '-' )?
int alt3=2;
int LA3_0 = input.LA(1);
@@ -453,7 +455,7 @@
}
switch (alt3) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:5: '-'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1726:5: '-'
{
match('-'); if (failed) return ;
@@ -462,7 +464,7 @@
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:10: ( '0' .. '9' )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1726:10: ( '0' .. '9' )+
int cnt4=0;
loop4:
do {
@@ -476,7 +478,7 @@
switch (alt4) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1709:11: '0' .. '9'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1726:11: '0' .. '9'
{
matchRange('0','9'); if (failed) return ;
@@ -507,10 +509,10 @@
public final void mFLOAT() throws RecognitionException {
try {
int _type = FLOAT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:2: ( ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+ )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:4: ( '-' )? ( '0' .. '9' )+ '.' ( '0' .. '9' )+
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:4: ( '-' )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:4: ( '-' )?
int alt5=2;
int LA5_0 = input.LA(1);
@@ -519,7 +521,7 @@
}
switch (alt5) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:5: '-'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:5: '-'
{
match('-'); if (failed) return ;
@@ -528,7 +530,7 @@
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:10: ( '0' .. '9' )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:10: ( '0' .. '9' )+
int cnt6=0;
loop6:
do {
@@ -542,7 +544,7 @@
switch (alt6) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:11: '0' .. '9'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:11: '0' .. '9'
{
matchRange('0','9'); if (failed) return ;
@@ -560,7 +562,7 @@
} while (true);
match('.'); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:26: ( '0' .. '9' )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:26: ( '0' .. '9' )+
int cnt7=0;
loop7:
do {
@@ -574,7 +576,7 @@
switch (alt7) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1713:27: '0' .. '9'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:27: '0' .. '9'
{
matchRange('0','9'); if (failed) return ;
@@ -605,7 +607,7 @@
public final void mSTRING() throws RecognitionException {
try {
int _type = STRING;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1717:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1734:5: ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) )
int alt10=2;
int LA10_0 = input.LA(1);
@@ -618,19 +620,19 @@
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1716:1: STRING : ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) );", 10, 0, input);
+ new NoViableAltException("1733:1: STRING : ( ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' ) );", 10, 0, input);
throw nvae;
}
switch (alt10) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1717:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1734:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1717:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1717:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1734:8: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1734:9: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
{
match('\"'); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1717:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1734:13: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
loop8:
do {
int alt8=3;
@@ -646,14 +648,14 @@
switch (alt8) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1717:15: EscapeSequence
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1734:15: EscapeSequence
{
mEscapeSequence(); if (failed) return ;
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1717:32: ~ ( '\\\\' | '\"' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1734:32: ~ ( '\\\\' | '\"' )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
input.consume();
@@ -683,13 +685,13 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1718:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1735:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1718:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1718:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1735:8: ( '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1735:9: '\\'' ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )* '\\''
{
match('\''); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1718:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1735:14: ( EscapeSequence | ~ ( '\\\\' | '\\'' ) )*
loop9:
do {
int alt9=3;
@@ -705,14 +707,14 @@
switch (alt9) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1718:16: EscapeSequence
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1735:16: EscapeSequence
{
mEscapeSequence(); if (failed) return ;
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1718:33: ~ ( '\\\\' | '\\'' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1735:33: ~ ( '\\\\' | '\\'' )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
input.consume();
@@ -753,8 +755,8 @@
// $ANTLR start HexDigit
public final void mHexDigit() throws RecognitionException {
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1722:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1739:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1739:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
{
if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
input.consume();
@@ -779,7 +781,7 @@
// $ANTLR start EscapeSequence
public final void mEscapeSequence() throws RecognitionException {
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1726:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1743:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape )
int alt11=3;
int LA11_0 = input.LA(1);
@@ -851,7 +853,7 @@
default:
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1724:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 1, input);
+ new NoViableAltException("1741:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 1, input);
throw nvae;
}
@@ -860,13 +862,13 @@
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1724:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 0, input);
+ new NoViableAltException("1741:1: fragment EscapeSequence : ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape );", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1726:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1743:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' )
{
match('\\'); if (failed) return ;
if ( input.LA(1)=='\"'||input.LA(1)=='$'||(input.LA(1)>='&' && input.LA(1)<='+')||(input.LA(1)>='-' && input.LA(1)<='.')||input.LA(1)=='?'||(input.LA(1)>='A' && input.LA(1)<='B')||(input.LA(1)>='D' && input.LA(1)<='E')||input.LA(1)=='G'||input.LA(1)=='Q'||input.LA(1)=='S'||input.LA(1)=='W'||(input.LA(1)>='Z' && input.LA(1)<='^')||(input.LA(1)>='a' && input.LA(1)<='f')||(input.LA(1)>='n' && input.LA(1)<='p')||(input.LA(1)>='r' && input.LA(1)<='t')||(input.LA(1)>='w' && input.LA(1)<='x')||(input.LA(1)>='z' && input.LA(1)<='}') ) {
@@ -884,14 +886,14 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1730:9: UnicodeEscape
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1747:9: UnicodeEscape
{
mUnicodeEscape(); if (failed) return ;
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1731:9: OctalEscape
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1748:9: OctalEscape
{
mOctalEscape(); if (failed) return ;
@@ -908,7 +910,7 @@
// $ANTLR start OctalEscape
public final void mOctalEscape() throws RecognitionException {
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1753:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
int alt12=3;
int LA12_0 = input.LA(1);
@@ -919,9 +921,9 @@
int LA12_2 = input.LA(3);
if ( ((LA12_2>='0' && LA12_2<='7')) ) {
- int LA12_5 = input.LA(4);
+ int LA12_4 = input.LA(4);
- if ( ((LA12_5>='0' && LA12_5<='7')) ) {
+ if ( ((LA12_4>='0' && LA12_4<='7')) ) {
alt12=1;
}
else {
@@ -942,7 +944,7 @@
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1734:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
+ new NoViableAltException("1751:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 1, input);
throw nvae;
}
@@ -950,31 +952,31 @@
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1734:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
+ new NoViableAltException("1751:1: fragment OctalEscape : ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) );", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1753:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
{
match('\\'); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:14: ( '0' .. '3' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:15: '0' .. '3'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1753:14: ( '0' .. '3' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1753:15: '0' .. '3'
{
matchRange('0','3'); if (failed) return ;
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:25: ( '0' .. '7' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:26: '0' .. '7'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1753:25: ( '0' .. '7' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1753:26: '0' .. '7'
{
matchRange('0','7'); if (failed) return ;
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:36: ( '0' .. '7' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1736:37: '0' .. '7'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1753:36: ( '0' .. '7' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1753:37: '0' .. '7'
{
matchRange('0','7'); if (failed) return ;
@@ -984,18 +986,18 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1754:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
{
match('\\'); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:14: ( '0' .. '7' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:15: '0' .. '7'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1754:14: ( '0' .. '7' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1754:15: '0' .. '7'
{
matchRange('0','7'); if (failed) return ;
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:25: ( '0' .. '7' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1737:26: '0' .. '7'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1754:25: ( '0' .. '7' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1754:26: '0' .. '7'
{
matchRange('0','7'); if (failed) return ;
@@ -1005,11 +1007,11 @@
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:9: '\\\\' ( '0' .. '7' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1755:9: '\\\\' ( '0' .. '7' )
{
match('\\'); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:14: ( '0' .. '7' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1738:15: '0' .. '7'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1755:14: ( '0' .. '7' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1755:15: '0' .. '7'
{
matchRange('0','7'); if (failed) return ;
@@ -1029,8 +1031,8 @@
// $ANTLR start UnicodeEscape
public final void mUnicodeEscape() throws RecognitionException {
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1743:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1743:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1760:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1760:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
{
match('\\'); if (failed) return ;
match('u'); if (failed) return ;
@@ -1051,10 +1053,10 @@
public final void mBOOL() throws RecognitionException {
try {
int _type = BOOL;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1747:2: ( ( 'true' | 'false' ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1747:4: ( 'true' | 'false' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1764:2: ( ( 'true' | 'false' ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1764:4: ( 'true' | 'false' )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1747:4: ( 'true' | 'false' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1764:4: ( 'true' | 'false' )
int alt13=2;
int LA13_0 = input.LA(1);
@@ -1067,13 +1069,13 @@
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1747:4: ( 'true' | 'false' )", 13, 0, input);
+ new NoViableAltException("1764:4: ( 'true' | 'false' )", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1747:5: 'true'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1764:5: 'true'
{
match("true"); if (failed) return ;
@@ -1081,7 +1083,7 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1747:12: 'false'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1764:12: 'false'
{
match("false"); if (failed) return ;
@@ -1105,8 +1107,8 @@
public final void mPACKAGE() throws RecognitionException {
try {
int _type = PACKAGE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:9: ( 'package' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1750:11: 'package'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:9: ( 'package' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:11: 'package'
{
match("package"); if (failed) return ;
@@ -1124,8 +1126,8 @@
public final void mIMPORT() throws RecognitionException {
try {
int _type = IMPORT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1752:8: ( 'import' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1752:10: 'import'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1769:8: ( 'import' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1769:10: 'import'
{
match("import"); if (failed) return ;
@@ -1143,8 +1145,8 @@
public final void mFUNCTION() throws RecognitionException {
try {
int _type = FUNCTION;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1754:10: ( 'function' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1754:12: 'function'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:10: ( 'function' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1771:12: 'function'
{
match("function"); if (failed) return ;
@@ -1158,12 +1160,31 @@
}
// $ANTLR end FUNCTION
+ // $ANTLR start EVENT
+ public final void mEVENT() throws RecognitionException {
+ try {
+ int _type = EVENT;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1773:7: ( 'event' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1773:10: 'event'
+ {
+ match("event"); if (failed) return ;
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end EVENT
+
// $ANTLR start GLOBAL
public final void mGLOBAL() throws RecognitionException {
try {
int _type = GLOBAL;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:8: ( 'global' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1756:10: 'global'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1775:8: ( 'global' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1775:10: 'global'
{
match("global"); if (failed) return ;
@@ -1181,8 +1202,8 @@
public final void mRULE() throws RecognitionException {
try {
int _type = RULE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1758:9: ( 'rule' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1758:11: 'rule'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1777:9: ( 'rule' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1777:11: 'rule'
{
match("rule"); if (failed) return ;
@@ -1200,8 +1221,8 @@
public final void mQUERY() throws RecognitionException {
try {
int _type = QUERY;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1760:7: ( 'query' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1760:9: 'query'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1779:7: ( 'query' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1779:9: 'query'
{
match("query"); if (failed) return ;
@@ -1219,8 +1240,8 @@
public final void mTEMPLATE() throws RecognitionException {
try {
int _type = TEMPLATE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1762:10: ( 'template' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1762:12: 'template'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1781:10: ( 'template' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1781:12: 'template'
{
match("template"); if (failed) return ;
@@ -1238,8 +1259,8 @@
public final void mATTRIBUTES() throws RecognitionException {
try {
int _type = ATTRIBUTES;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1764:12: ( 'attributes' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1764:14: 'attributes'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1783:12: ( 'attributes' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1783:14: 'attributes'
{
match("attributes"); if (failed) return ;
@@ -1257,8 +1278,8 @@
public final void mDATE_EFFECTIVE() throws RecognitionException {
try {
int _type = DATE_EFFECTIVE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:2: ( 'date-effective' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1767:4: 'date-effective'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:2: ( 'date-effective' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:4: 'date-effective'
{
match("date-effective"); if (failed) return ;
@@ -1276,8 +1297,8 @@
public final void mDATE_EXPIRES() throws RecognitionException {
try {
int _type = DATE_EXPIRES;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1770:2: ( 'date-expires' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1770:4: 'date-expires'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1789:2: ( 'date-expires' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1789:4: 'date-expires'
{
match("date-expires"); if (failed) return ;
@@ -1295,8 +1316,8 @@
public final void mENABLED() throws RecognitionException {
try {
int _type = ENABLED;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1772:9: ( 'enabled' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1772:11: 'enabled'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1791:9: ( 'enabled' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1791:11: 'enabled'
{
match("enabled"); if (failed) return ;
@@ -1314,8 +1335,8 @@
public final void mSALIENCE() throws RecognitionException {
try {
int _type = SALIENCE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1775:2: ( 'salience' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1775:4: 'salience'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1794:2: ( 'salience' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1794:4: 'salience'
{
match("salience"); if (failed) return ;
@@ -1333,8 +1354,8 @@
public final void mNO_LOOP() throws RecognitionException {
try {
int _type = NO_LOOP;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1777:9: ( 'no-loop' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1777:11: 'no-loop'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1796:9: ( 'no-loop' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1796:11: 'no-loop'
{
match("no-loop"); if (failed) return ;
@@ -1352,8 +1373,8 @@
public final void mAUTO_FOCUS() throws RecognitionException {
try {
int _type = AUTO_FOCUS;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1780:2: ( 'auto-focus' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1780:4: 'auto-focus'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1799:2: ( 'auto-focus' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1799:4: 'auto-focus'
{
match("auto-focus"); if (failed) return ;
@@ -1371,8 +1392,8 @@
public final void mACTIVATION_GROUP() throws RecognitionException {
try {
int _type = ACTIVATION_GROUP;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1783:2: ( 'activation-group' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1783:4: 'activation-group'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1802:2: ( 'activation-group' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1802:4: 'activation-group'
{
match("activation-group"); if (failed) return ;
@@ -1390,8 +1411,8 @@
public final void mAGENDA_GROUP() throws RecognitionException {
try {
int _type = AGENDA_GROUP;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:2: ( 'agenda-group' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1786:4: 'agenda-group'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:2: ( 'agenda-group' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:4: 'agenda-group'
{
match("agenda-group"); if (failed) return ;
@@ -1409,8 +1430,8 @@
public final void mDIALECT() throws RecognitionException {
try {
int _type = DIALECT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1789:2: ( 'dialect' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1789:4: 'dialect'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1808:2: ( 'dialect' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1808:4: 'dialect'
{
match("dialect"); if (failed) return ;
@@ -1428,8 +1449,8 @@
public final void mRULEFLOW_GROUP() throws RecognitionException {
try {
int _type = RULEFLOW_GROUP;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1792:2: ( 'ruleflow-group' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1792:4: 'ruleflow-group'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1811:2: ( 'ruleflow-group' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1811:4: 'ruleflow-group'
{
match("ruleflow-group"); if (failed) return ;
@@ -1447,8 +1468,8 @@
public final void mDURATION() throws RecognitionException {
try {
int _type = DURATION;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1795:2: ( 'duration' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1795:4: 'duration'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1814:2: ( 'duration' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1814:4: 'duration'
{
match("duration"); if (failed) return ;
@@ -1466,8 +1487,8 @@
public final void mLOCK_ON_ACTIVE() throws RecognitionException {
try {
int _type = LOCK_ON_ACTIVE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1798:2: ( 'lock-on-active' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1798:4: 'lock-on-active'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1817:2: ( 'lock-on-active' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1817:4: 'lock-on-active'
{
match("lock-on-active"); if (failed) return ;
@@ -1485,8 +1506,8 @@
public final void mFROM() throws RecognitionException {
try {
int _type = FROM;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1800:6: ( 'from' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1800:8: 'from'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1819:6: ( 'from' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1819:8: 'from'
{
match("from"); if (failed) return ;
@@ -1504,8 +1525,8 @@
public final void mACCUMULATE() throws RecognitionException {
try {
int _type = ACCUMULATE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1803:2: ( 'accumulate' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1803:4: 'accumulate'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1822:2: ( 'accumulate' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1822:4: 'accumulate'
{
match("accumulate"); if (failed) return ;
@@ -1523,8 +1544,8 @@
public final void mINIT() throws RecognitionException {
try {
int _type = INIT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:6: ( 'init' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1805:8: 'init'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1824:6: ( 'init' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1824:8: 'init'
{
match("init"); if (failed) return ;
@@ -1542,8 +1563,8 @@
public final void mACTION() throws RecognitionException {
try {
int _type = ACTION;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1807:8: ( 'action' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1807:10: 'action'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1826:8: ( 'action' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1826:10: 'action'
{
match("action"); if (failed) return ;
@@ -1561,8 +1582,8 @@
public final void mREVERSE() throws RecognitionException {
try {
int _type = REVERSE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1809:9: ( 'reverse' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1809:11: 'reverse'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1828:9: ( 'reverse' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1828:11: 'reverse'
{
match("reverse"); if (failed) return ;
@@ -1580,8 +1601,8 @@
public final void mRESULT() throws RecognitionException {
try {
int _type = RESULT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1811:8: ( 'result' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1811:10: 'result'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1830:8: ( 'result' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1830:10: 'result'
{
match("result"); if (failed) return ;
@@ -1599,8 +1620,8 @@
public final void mCOLLECT() throws RecognitionException {
try {
int _type = COLLECT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1813:9: ( 'collect' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1813:11: 'collect'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1832:9: ( 'collect' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1832:11: 'collect'
{
match("collect"); if (failed) return ;
@@ -1618,8 +1639,8 @@
public final void mOR() throws RecognitionException {
try {
int _type = OR;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1815:4: ( 'or' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1815:6: 'or'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1834:4: ( 'or' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1834:6: 'or'
{
match("or"); if (failed) return ;
@@ -1637,8 +1658,8 @@
public final void mAND() throws RecognitionException {
try {
int _type = AND;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1817:5: ( 'and' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1817:7: 'and'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1836:5: ( 'and' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1836:7: 'and'
{
match("and"); if (failed) return ;
@@ -1656,8 +1677,8 @@
public final void mCONTAINS() throws RecognitionException {
try {
int _type = CONTAINS;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1820:2: ( 'contains' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1820:4: 'contains'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1839:8: ( 'contains' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1839:16: 'contains'
{
match("contains"); if (failed) return ;
@@ -1675,8 +1696,8 @@
public final void mEXCLUDES() throws RecognitionException {
try {
int _type = EXCLUDES;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1823:2: ( 'excludes' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1823:4: 'excludes'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1842:8: ( 'excludes' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1842:16: 'excludes'
{
match("excludes"); if (failed) return ;
@@ -1694,8 +1715,8 @@
public final void mMEMBEROF() throws RecognitionException {
try {
int _type = MEMBEROF;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1826:2: ( 'memberOf' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1826:4: 'memberOf'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1845:8: ( 'memberOf' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1845:16: 'memberOf'
{
match("memberOf"); if (failed) return ;
@@ -1713,8 +1734,8 @@
public final void mMATCHES() throws RecognitionException {
try {
int _type = MATCHES;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1828:9: ( 'matches' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1828:11: 'matches'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1847:9: ( 'matches' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1847:16: 'matches'
{
match("matches"); if (failed) return ;
@@ -1732,8 +1753,8 @@
public final void mSOUNDSLIKE() throws RecognitionException {
try {
int _type = SOUNDSLIKE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1830:12: ( 'soundslike' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1830:14: 'soundslike'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1849:12: ( 'soundslike' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1849:16: 'soundslike'
{
match("soundslike"); if (failed) return ;
@@ -1751,8 +1772,8 @@
public final void mIN() throws RecognitionException {
try {
int _type = IN;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1832:4: ( 'in' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1832:6: 'in'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1851:4: ( 'in' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1851:6: 'in'
{
match("in"); if (failed) return ;
@@ -1770,8 +1791,8 @@
public final void mNULL() throws RecognitionException {
try {
int _type = NULL;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1834:6: ( 'null' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1834:8: 'null'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1853:6: ( 'null' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1853:8: 'null'
{
match("null"); if (failed) return ;
@@ -1789,8 +1810,8 @@
public final void mEXISTS() throws RecognitionException {
try {
int _type = EXISTS;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1836:8: ( 'exists' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1836:10: 'exists'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1855:8: ( 'exists' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1855:10: 'exists'
{
match("exists"); if (failed) return ;
@@ -1808,8 +1829,8 @@
public final void mNOT() throws RecognitionException {
try {
int _type = NOT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1838:5: ( 'not' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1838:7: 'not'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1857:5: ( 'not' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1857:7: 'not'
{
match("not"); if (failed) return ;
@@ -1827,8 +1848,8 @@
public final void mEVAL() throws RecognitionException {
try {
int _type = EVAL;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1840:6: ( 'eval' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1840:8: 'eval'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1859:6: ( 'eval' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1859:8: 'eval'
{
match("eval"); if (failed) return ;
@@ -1846,8 +1867,8 @@
public final void mFORALL() throws RecognitionException {
try {
int _type = FORALL;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1842:8: ( 'forall' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1842:10: 'forall'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1861:8: ( 'forall' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1861:10: 'forall'
{
match("forall"); if (failed) return ;
@@ -1865,8 +1886,8 @@
public final void mWHEN() throws RecognitionException {
try {
int _type = WHEN;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1844:9: ( 'when' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1844:11: 'when'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1863:9: ( 'when' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1863:11: 'when'
{
match("when"); if (failed) return ;
@@ -1884,8 +1905,8 @@
public final void mTHEN() throws RecognitionException {
try {
int _type = THEN;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1846:6: ( 'then' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1846:12: 'then'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1865:6: ( 'then' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1865:12: 'then'
{
match("then"); if (failed) return ;
@@ -1903,8 +1924,8 @@
public final void mEND() throws RecognitionException {
try {
int _type = END;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1848:9: ( 'end' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1848:11: 'end'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1867:9: ( 'end' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1867:11: 'end'
{
match("end"); if (failed) return ;
@@ -1922,8 +1943,8 @@
public final void mID() throws RecognitionException {
try {
int _type = ID;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1851:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1851:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1870:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1870:4: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '$' | '\\u00c0' .. '\\u00ff' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
{
if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00FF') ) {
input.consume();
@@ -1936,7 +1957,7 @@
recover(mse); throw mse;
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1851:50: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1870:50: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' | '\\u00c0' .. '\\u00ff' )*
loop14:
do {
int alt14=2;
@@ -1985,8 +2006,8 @@
public final void mLEFT_PAREN() throws RecognitionException {
try {
int _type = LEFT_PAREN;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1855:9: ( '(' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1855:11: '('
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1874:9: ( '(' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1874:11: '('
{
match('('); if (failed) return ;
@@ -2003,8 +2024,8 @@
public final void mRIGHT_PAREN() throws RecognitionException {
try {
int _type = RIGHT_PAREN;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1859:9: ( ')' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1859:11: ')'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1878:9: ( ')' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1878:11: ')'
{
match(')'); if (failed) return ;
@@ -2021,8 +2042,8 @@
public final void mLEFT_SQUARE() throws RecognitionException {
try {
int _type = LEFT_SQUARE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1863:9: ( '[' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1863:11: '['
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1882:9: ( '[' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1882:11: '['
{
match('['); if (failed) return ;
@@ -2039,8 +2060,8 @@
public final void mRIGHT_SQUARE() throws RecognitionException {
try {
int _type = RIGHT_SQUARE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1867:9: ( ']' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1867:11: ']'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1886:9: ( ']' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1886:11: ']'
{
match(']'); if (failed) return ;
@@ -2057,8 +2078,8 @@
public final void mLEFT_CURLY() throws RecognitionException {
try {
int _type = LEFT_CURLY;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1871:9: ( '{' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1871:11: '{'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1890:9: ( '{' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1890:11: '{'
{
match('{'); if (failed) return ;
@@ -2075,8 +2096,8 @@
public final void mRIGHT_CURLY() throws RecognitionException {
try {
int _type = RIGHT_CURLY;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1875:9: ( '}' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1875:11: '}'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1894:9: ( '}' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1894:11: '}'
{
match('}'); if (failed) return ;
@@ -2093,8 +2114,8 @@
public final void mCOMMA() throws RecognitionException {
try {
int _type = COMMA;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1878:7: ( ',' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1878:9: ','
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1897:7: ( ',' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1897:9: ','
{
match(','); if (failed) return ;
@@ -2111,8 +2132,8 @@
public final void mDOT() throws RecognitionException {
try {
int _type = DOT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1881:5: ( '.' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1881:7: '.'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1900:5: ( '.' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1900:7: '.'
{
match('.'); if (failed) return ;
@@ -2129,8 +2150,8 @@
public final void mDOUBLE_AMPER() throws RecognitionException {
try {
int _type = DOUBLE_AMPER;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1885:2: ( '&&' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1885:4: '&&'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1904:2: ( '&&' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1904:4: '&&'
{
match("&&"); if (failed) return ;
@@ -2148,8 +2169,8 @@
public final void mDOUBLE_PIPE() throws RecognitionException {
try {
int _type = DOUBLE_PIPE;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1889:2: ( '||' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1889:4: '||'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1908:2: ( '||' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1908:4: '||'
{
match("||"); if (failed) return ;
@@ -2163,15 +2184,33 @@
}
// $ANTLR end DOUBLE_PIPE
+ // $ANTLR start TILDE
+ public final void mTILDE() throws RecognitionException {
+ try {
+ int _type = TILDE;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1911:7: ( '~' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1911:9: '~'
+ {
+ match('~'); if (failed) return ;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end TILDE
+
// $ANTLR start SH_STYLE_SINGLE_LINE_COMMENT
public final void mSH_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
try {
int _type = SH_STYLE_SINGLE_LINE_COMMENT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1893:2: ( '#' ( options {greedy=false; } : . )* EOL )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1893:4: '#' ( options {greedy=false; } : . )* EOL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1914:2: ( '#' ( options {greedy=false; } : . )* EOL )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1914:4: '#' ( options {greedy=false; } : . )* EOL
{
match('#'); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1893:8: ( options {greedy=false; } : . )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1914:8: ( options {greedy=false; } : . )*
loop15:
do {
int alt15=2;
@@ -2190,7 +2229,7 @@
switch (alt15) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1893:35: .
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1914:35: .
{
matchAny(); if (failed) return ;
@@ -2220,12 +2259,12 @@
public final void mC_STYLE_SINGLE_LINE_COMMENT() throws RecognitionException {
try {
int _type = C_STYLE_SINGLE_LINE_COMMENT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1899:2: ( '//' ( options {greedy=false; } : . )* EOL )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1899:4: '//' ( options {greedy=false; } : . )* EOL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1920:2: ( '//' ( options {greedy=false; } : . )* EOL )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1920:4: '//' ( options {greedy=false; } : . )* EOL
{
match("//"); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1899:9: ( options {greedy=false; } : . )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1920:9: ( options {greedy=false; } : . )*
loop16:
do {
int alt16=2;
@@ -2244,7 +2283,7 @@
switch (alt16) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1899:36: .
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1920:36: .
{
matchAny(); if (failed) return ;
@@ -2274,12 +2313,12 @@
public final void mMULTI_LINE_COMMENT() throws RecognitionException {
try {
int _type = MULTI_LINE_COMMENT;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1904:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1904:4: '/*' ( options {greedy=false; } : . )* '*/'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1925:2: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1925:4: '/*' ( options {greedy=false; } : . )* '*/'
{
match("/*"); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1904:9: ( options {greedy=false; } : . )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1925:9: ( options {greedy=false; } : . )*
loop17:
do {
int alt17=2;
@@ -2304,7 +2343,7 @@
switch (alt17) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1904:35: .
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1925:35: .
{
matchAny(); if (failed) return ;
@@ -2335,7 +2374,7 @@
public final void mMISC() throws RecognitionException {
try {
int _type = MISC;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1908:7: ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '=' | '/' | '\\'' | '\\\\' | '|' | '&' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1929:7: ( '!' | '@' | '$' | '%' | '^' | '*' | '_' | '-' | '+' | '?' | '=' | '/' | '\\'' | '\\\\' | '|' | '&' )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:
{
if ( input.LA(1)=='!'||(input.LA(1)>='$' && input.LA(1)<='\'')||(input.LA(1)>='*' && input.LA(1)<='+')||input.LA(1)=='-'||input.LA(1)=='/'||input.LA(1)=='='||(input.LA(1)>='?' && input.LA(1)<='@')||input.LA(1)=='\\'||(input.LA(1)>='^' && input.LA(1)<='_')||input.LA(1)=='|' ) {
@@ -2360,77 +2399,77 @@
// $ANTLR end MISC
public void mTokens() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:8: ( T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | GLOBAL | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | DIALECT | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | REVERSE | RESULT | COLLECT | OR | AND | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | IN | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC )
- int alt18=73;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:8: ( T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | EVENT | GLOBAL | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | DIALECT | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | REVERSE | RESULT | COLLECT | OR | AND | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | IN | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | TILDE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC )
+ int alt18=75;
alt18 = dfa18.predict(input);
switch (alt18) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:10: T72
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:10: T74
{
- mT72(); if (failed) return ;
+ mT74(); if (failed) return ;
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:14: T73
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:14: T75
{
- mT73(); if (failed) return ;
+ mT75(); if (failed) return ;
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:18: T74
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:18: T76
{
- mT74(); if (failed) return ;
+ mT76(); if (failed) return ;
}
break;
case 4 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:22: T75
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:22: T77
{
- mT75(); if (failed) return ;
+ mT77(); if (failed) return ;
}
break;
case 5 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:26: T76
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:26: T78
{
- mT76(); if (failed) return ;
+ mT78(); if (failed) return ;
}
break;
case 6 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:30: T77
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:30: T79
{
- mT77(); if (failed) return ;
+ mT79(); if (failed) return ;
}
break;
case 7 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:34: T78
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:34: T80
{
- mT78(); if (failed) return ;
+ mT80(); if (failed) return ;
}
break;
case 8 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:38: T79
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:38: T81
{
- mT79(); if (failed) return ;
+ mT81(); if (failed) return ;
}
break;
case 9 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:42: T80
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:42: T82
{
- mT80(); if (failed) return ;
+ mT82(); if (failed) return ;
}
break;
case 10 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:46: T81
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:46: T83
{
- mT81(); if (failed) return ;
+ mT83(); if (failed) return ;
}
break;
@@ -2491,386 +2530,400 @@
}
break;
case 19 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:99: GLOBAL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:99: EVENT
{
- mGLOBAL(); if (failed) return ;
+ mEVENT(); if (failed) return ;
}
break;
case 20 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:106: RULE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:105: GLOBAL
{
- mRULE(); if (failed) return ;
+ mGLOBAL(); if (failed) return ;
}
break;
case 21 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:111: QUERY
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:112: RULE
{
- mQUERY(); if (failed) return ;
+ mRULE(); if (failed) return ;
}
break;
case 22 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:117: TEMPLATE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:117: QUERY
{
- mTEMPLATE(); if (failed) return ;
+ mQUERY(); if (failed) return ;
}
break;
case 23 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:126: ATTRIBUTES
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:123: TEMPLATE
{
- mATTRIBUTES(); if (failed) return ;
+ mTEMPLATE(); if (failed) return ;
}
break;
case 24 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:137: DATE_EFFECTIVE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:132: ATTRIBUTES
{
- mDATE_EFFECTIVE(); if (failed) return ;
+ mATTRIBUTES(); if (failed) return ;
}
break;
case 25 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:152: DATE_EXPIRES
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:143: DATE_EFFECTIVE
{
- mDATE_EXPIRES(); if (failed) return ;
+ mDATE_EFFECTIVE(); if (failed) return ;
}
break;
case 26 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:165: ENABLED
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:158: DATE_EXPIRES
{
- mENABLED(); if (failed) return ;
+ mDATE_EXPIRES(); if (failed) return ;
}
break;
case 27 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:173: SALIENCE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:171: ENABLED
{
- mSALIENCE(); if (failed) return ;
+ mENABLED(); if (failed) return ;
}
break;
case 28 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:182: NO_LOOP
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:179: SALIENCE
{
- mNO_LOOP(); if (failed) return ;
+ mSALIENCE(); if (failed) return ;
}
break;
case 29 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:190: AUTO_FOCUS
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:188: NO_LOOP
{
- mAUTO_FOCUS(); if (failed) return ;
+ mNO_LOOP(); if (failed) return ;
}
break;
case 30 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:201: ACTIVATION_GROUP
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:196: AUTO_FOCUS
{
- mACTIVATION_GROUP(); if (failed) return ;
+ mAUTO_FOCUS(); if (failed) return ;
}
break;
case 31 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:218: AGENDA_GROUP
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:207: ACTIVATION_GROUP
{
- mAGENDA_GROUP(); if (failed) return ;
+ mACTIVATION_GROUP(); if (failed) return ;
}
break;
case 32 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:231: DIALECT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:224: AGENDA_GROUP
{
- mDIALECT(); if (failed) return ;
+ mAGENDA_GROUP(); if (failed) return ;
}
break;
case 33 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:239: RULEFLOW_GROUP
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:237: DIALECT
{
- mRULEFLOW_GROUP(); if (failed) return ;
+ mDIALECT(); if (failed) return ;
}
break;
case 34 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:254: DURATION
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:245: RULEFLOW_GROUP
{
- mDURATION(); if (failed) return ;
+ mRULEFLOW_GROUP(); if (failed) return ;
}
break;
case 35 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:263: LOCK_ON_ACTIVE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:260: DURATION
{
- mLOCK_ON_ACTIVE(); if (failed) return ;
+ mDURATION(); if (failed) return ;
}
break;
case 36 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:278: FROM
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:269: LOCK_ON_ACTIVE
{
- mFROM(); if (failed) return ;
+ mLOCK_ON_ACTIVE(); if (failed) return ;
}
break;
case 37 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:283: ACCUMULATE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:284: FROM
{
- mACCUMULATE(); if (failed) return ;
+ mFROM(); if (failed) return ;
}
break;
case 38 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:294: INIT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:289: ACCUMULATE
{
- mINIT(); if (failed) return ;
+ mACCUMULATE(); if (failed) return ;
}
break;
case 39 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:299: ACTION
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:300: INIT
{
- mACTION(); if (failed) return ;
+ mINIT(); if (failed) return ;
}
break;
case 40 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:306: REVERSE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:305: ACTION
{
- mREVERSE(); if (failed) return ;
+ mACTION(); if (failed) return ;
}
break;
case 41 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:314: RESULT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:312: REVERSE
{
- mRESULT(); if (failed) return ;
+ mREVERSE(); if (failed) return ;
}
break;
case 42 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:321: COLLECT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:320: RESULT
{
- mCOLLECT(); if (failed) return ;
+ mRESULT(); if (failed) return ;
}
break;
case 43 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:329: OR
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:327: COLLECT
{
- mOR(); if (failed) return ;
+ mCOLLECT(); if (failed) return ;
}
break;
case 44 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:332: AND
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:335: OR
{
- mAND(); if (failed) return ;
+ mOR(); if (failed) return ;
}
break;
case 45 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:336: CONTAINS
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:338: AND
{
- mCONTAINS(); if (failed) return ;
+ mAND(); if (failed) return ;
}
break;
case 46 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:345: EXCLUDES
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:342: CONTAINS
{
- mEXCLUDES(); if (failed) return ;
+ mCONTAINS(); if (failed) return ;
}
break;
case 47 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:354: MEMBEROF
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:351: EXCLUDES
{
- mMEMBEROF(); if (failed) return ;
+ mEXCLUDES(); if (failed) return ;
}
break;
case 48 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:363: MATCHES
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:360: MEMBEROF
{
- mMATCHES(); if (failed) return ;
+ mMEMBEROF(); if (failed) return ;
}
break;
case 49 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:371: SOUNDSLIKE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:369: MATCHES
{
- mSOUNDSLIKE(); if (failed) return ;
+ mMATCHES(); if (failed) return ;
}
break;
case 50 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:382: IN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:377: SOUNDSLIKE
{
- mIN(); if (failed) return ;
+ mSOUNDSLIKE(); if (failed) return ;
}
break;
case 51 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:385: NULL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:388: IN
{
- mNULL(); if (failed) return ;
+ mIN(); if (failed) return ;
}
break;
case 52 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:390: EXISTS
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:391: NULL
{
- mEXISTS(); if (failed) return ;
+ mNULL(); if (failed) return ;
}
break;
case 53 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:397: NOT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:396: EXISTS
{
- mNOT(); if (failed) return ;
+ mEXISTS(); if (failed) return ;
}
break;
case 54 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:401: EVAL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:403: NOT
{
- mEVAL(); if (failed) return ;
+ mNOT(); if (failed) return ;
}
break;
case 55 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:406: FORALL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:407: EVAL
{
- mFORALL(); if (failed) return ;
+ mEVAL(); if (failed) return ;
}
break;
case 56 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:413: WHEN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:412: FORALL
{
- mWHEN(); if (failed) return ;
+ mFORALL(); if (failed) return ;
}
break;
case 57 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:418: THEN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:419: WHEN
{
- mTHEN(); if (failed) return ;
+ mWHEN(); if (failed) return ;
}
break;
case 58 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:423: END
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:424: THEN
{
- mEND(); if (failed) return ;
+ mTHEN(); if (failed) return ;
}
break;
case 59 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:427: ID
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:429: END
{
- mID(); if (failed) return ;
+ mEND(); if (failed) return ;
}
break;
case 60 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:430: LEFT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:433: ID
{
- mLEFT_PAREN(); if (failed) return ;
+ mID(); if (failed) return ;
}
break;
case 61 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:441: RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:436: LEFT_PAREN
{
- mRIGHT_PAREN(); if (failed) return ;
+ mLEFT_PAREN(); if (failed) return ;
}
break;
case 62 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:453: LEFT_SQUARE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:447: RIGHT_PAREN
{
- mLEFT_SQUARE(); if (failed) return ;
+ mRIGHT_PAREN(); if (failed) return ;
}
break;
case 63 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:465: RIGHT_SQUARE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:459: LEFT_SQUARE
{
- mRIGHT_SQUARE(); if (failed) return ;
+ mLEFT_SQUARE(); if (failed) return ;
}
break;
case 64 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:478: LEFT_CURLY
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:471: RIGHT_SQUARE
{
- mLEFT_CURLY(); if (failed) return ;
+ mRIGHT_SQUARE(); if (failed) return ;
}
break;
case 65 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:489: RIGHT_CURLY
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:484: LEFT_CURLY
{
- mRIGHT_CURLY(); if (failed) return ;
+ mLEFT_CURLY(); if (failed) return ;
}
break;
case 66 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:501: COMMA
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:495: RIGHT_CURLY
{
- mCOMMA(); if (failed) return ;
+ mRIGHT_CURLY(); if (failed) return ;
}
break;
case 67 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:507: DOT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:507: COMMA
{
- mDOT(); if (failed) return ;
+ mCOMMA(); if (failed) return ;
}
break;
case 68 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:511: DOUBLE_AMPER
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:513: DOT
{
- mDOUBLE_AMPER(); if (failed) return ;
+ mDOT(); if (failed) return ;
}
break;
case 69 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:524: DOUBLE_PIPE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:517: DOUBLE_AMPER
{
- mDOUBLE_PIPE(); if (failed) return ;
+ mDOUBLE_AMPER(); if (failed) return ;
}
break;
case 70 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:536: SH_STYLE_SINGLE_LINE_COMMENT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:530: DOUBLE_PIPE
{
- mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+ mDOUBLE_PIPE(); if (failed) return ;
}
break;
case 71 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:565: C_STYLE_SINGLE_LINE_COMMENT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:542: TILDE
{
- mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+ mTILDE(); if (failed) return ;
}
break;
case 72 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:593: MULTI_LINE_COMMENT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:548: SH_STYLE_SINGLE_LINE_COMMENT
{
- mMULTI_LINE_COMMENT(); if (failed) return ;
+ mSH_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
}
break;
case 73 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:612: MISC
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:577: C_STYLE_SINGLE_LINE_COMMENT
{
+ mC_STYLE_SINGLE_LINE_COMMENT(); if (failed) return ;
+
+ }
+ break;
+ case 74 :
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:605: MULTI_LINE_COMMENT
+ {
+ mMULTI_LINE_COMMENT(); if (failed) return ;
+
+ }
+ break;
+ case 75 :
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1:624: MISC
+ {
mMISC(); if (failed) return ;
}
@@ -2882,8 +2935,8 @@
// $ANTLR start synpred1
public final void synpred1_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:14: ( '\\r\\n' )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1702:16: '\\r\\n'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1719:14: ( '\\r\\n' )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1719:16: '\\r\\n'
{
match("\r\n"); if (failed) return ;
@@ -2910,124 +2963,127 @@
protected DFA18 dfa18 = new DFA18(this);
static final String DFA18_eotS =
- "\2\uffff\1\55\1\uffff\2\53\1\61\1\63\1\53\1\uffff\1\66\1\uffff\1"+
- "\53\21\52\10\uffff\2\53\1\uffff\1\53\15\uffff\10\52\1\147\26\52"+
- "\1\u0084\3\52\4\uffff\11\52\1\uffff\10\52\1\u0099\12\52\1\u00a4"+
- "\3\52\1\uffff\1\u00a8\3\52\1\uffff\3\52\1\u00af\1\u00b0\2\52\1\u00b3"+
- "\3\52\1\u00b7\4\52\1\u00bd\3\52\1\uffff\10\52\1\u00ca\1\52\1\uffff"+
- "\2\52\1\u00ce\1\uffff\5\52\1\u00d4\2\uffff\2\52\1\uffff\1\52\1\u00af"+
- "\1\52\1\uffff\5\52\1\uffff\1\u00de\4\52\1\uffff\2\52\1\uffff\3\52"+
- "\1\uffff\3\52\2\uffff\4\52\1\uffff\1\52\1\u00f1\2\52\1\u00f4\1\u00f5"+
- "\1\52\1\u00f7\1\52\1\uffff\2\52\1\u00fb\3\52\1\uffff\2\52\1\u0103"+
- "\10\52\1\uffff\1\52\1\u010d\2\uffff\1\u010e\1\uffff\3\52\2\uffff"+
- "\1\52\1\u0113\2\uffff\2\52\1\uffff\1\u0116\3\52\1\u011a\1\u011b"+
- "\1\52\1\u011d\1\u011e\2\uffff\4\52\1\uffff\1\u0123\1\u0124\1\uffff"+
- "\1\52\1\u0126\1\u0127\2\uffff\1\u0128\3\uffff\3\52\2\uffff\1\52"+
- "\3\uffff\1\u012d\1\52\1\u012f\1\u0130\4\uffff";
+ "\2\uffff\1\56\1\uffff\2\54\1\62\1\64\1\54\1\uffff\1\67\1\uffff\1"+
+ "\54\21\53\10\uffff\2\54\2\uffff\1\54\15\uffff\10\53\1\150\26\53"+
+ "\1\u0086\3\53\4\uffff\11\53\1\uffff\5\53\1\u0098\11\53\1\u00a2\10"+
+ "\53\1\uffff\1\u00ab\3\53\1\uffff\3\53\1\u00b2\1\u00b3\1\53\1\u00b5"+
+ "\4\53\1\u00ba\3\53\1\u00be\1\53\1\uffff\4\53\1\u00c5\4\53\1\uffff"+
+ "\7\53\1\u00d2\1\uffff\5\53\1\u00d8\2\uffff\1\53\1\uffff\1\53\1\u00b2"+
+ "\2\53\1\uffff\3\53\1\uffff\1\u00e0\5\53\1\uffff\1\u00e6\4\53\1\uffff"+
+ "\2\53\1\uffff\3\53\2\uffff\4\53\1\uffff\1\53\1\u00f6\2\53\1\u00f9"+
+ "\1\53\1\u00fb\1\uffff\1\53\1\u00fd\1\53\1\u00ff\1\53\1\uffff\1\u0101"+
+ "\5\53\1\uffff\10\53\1\uffff\1\53\1\u0112\1\uffff\1\53\1\uffff\1"+
+ "\u0114\1\uffff\1\u0115\1\uffff\1\53\1\uffff\3\53\1\uffff\1\53\2"+
+ "\uffff\1\u011b\3\53\1\u011f\1\u0120\1\53\1\u0122\1\u0123\1\uffff"+
+ "\1\u0124\2\uffff\4\53\1\u0129\1\uffff\1\u012a\1\53\1\u012c\2\uffff"+
+ "\1\u012d\4\uffff\3\53\2\uffff\1\53\2\uffff\1\53\1\u0133\1\u0134"+
+ "\1\u0135\4\uffff";
static final String DFA18_eofS =
- "\u0131\uffff";
+ "\u0136\uffff";
static final String DFA18_minS =
"\1\11\1\uffff\1\52\1\uffff\1\60\4\75\1\uffff\1\56\1\uffff\1\0\1"+
- "\145\2\141\1\155\1\154\1\145\1\165\1\143\1\141\1\156\1\141\3\157"+
- "\1\162\1\141\1\150\10\uffff\1\46\1\174\1\uffff\1\52\15\uffff\1\165"+
- "\1\145\1\155\1\162\1\157\1\156\1\154\1\143\1\60\1\160\1\157\1\163"+
- "\1\154\1\145\1\143\1\144\1\145\2\164\1\141\1\164\1\162\1\143\2\141"+
- "\1\165\2\154\1\55\1\143\1\154\1\60\1\164\1\155\1\145\4\uffff\1\145"+
- "\1\156\1\160\1\141\1\155\1\143\1\163\1\153\1\164\1\uffff\1\157\1"+
- "\142\1\145\1\165\1\145\1\162\1\165\1\151\1\60\1\156\1\157\1\162"+
- "\1\154\1\145\1\141\1\154\1\163\1\154\1\142\1\60\1\156\1\151\1\154"+
- "\1\uffff\1\60\1\153\1\164\1\154\1\uffff\1\143\1\142\1\156\2\60\2"+
- "\154\1\60\1\164\1\145\1\141\1\60\1\162\1\141\1\162\1\154\1\60\1"+
- "\171\1\155\1\157\1\uffff\1\144\1\55\1\151\1\145\1\55\1\164\1\165"+
- "\1\164\1\60\1\154\1\uffff\1\144\1\145\1\60\1\uffff\1\55\1\141\1"+
- "\145\1\150\1\145\1\60\2\uffff\1\141\1\154\1\uffff\1\151\1\60\1\147"+
- "\1\uffff\1\164\1\154\1\163\1\164\1\154\1\uffff\1\60\1\165\1\141"+
- "\1\156\1\141\1\uffff\1\142\1\143\1\145\1\151\1\144\1\163\1\uffff"+
- "\1\145\1\163\1\156\2\uffff\1\151\1\143\1\145\1\162\1\uffff\1\164"+
- "\1\60\1\157\1\145\2\60\1\145\1\60\1\157\1\uffff\1\154\1\164\1\60"+
- "\1\55\1\165\1\164\1\146\1\157\1\145\1\60\1\144\1\154\1\143\1\156"+
- "\1\164\1\163\1\117\1\145\1\uffff\1\156\1\60\2\uffff\1\60\1\uffff"+
- "\1\167\1\141\1\151\2\uffff\1\164\1\60\2\uffff\1\156\1\163\1\uffff"+
- "\1\60\1\151\1\145\1\163\2\60\1\146\2\60\2\uffff\1\55\1\164\1\157"+
- "\1\145\1\uffff\2\60\1\uffff\1\153\2\60\2\uffff\1\60\3\uffff\1\145"+
- "\1\156\1\163\2\uffff\1\145\3\uffff\1\60\1\55\2\60\4\uffff";
+ "\145\2\141\1\155\1\156\1\154\1\145\1\165\1\143\2\141\3\157\1\162"+
+ "\1\141\1\150\10\uffff\1\46\1\174\2\uffff\1\52\15\uffff\1\165\1\145"+
+ "\1\155\1\157\1\162\1\154\1\156\1\143\1\60\1\160\1\143\2\141\1\157"+
+ "\1\163\1\154\1\145\1\143\1\164\1\144\1\164\1\145\1\162\1\164\1\141"+
+ "\1\154\1\165\1\154\1\55\1\143\1\154\1\60\1\164\1\155\1\145\4\uffff"+
+ "\1\145\1\156\1\160\1\155\1\141\1\163\1\143\1\153\1\164\1\uffff\1"+
+ "\157\1\154\1\163\1\154\1\156\1\60\2\142\1\145\1\165\1\145\1\162"+
+ "\1\151\1\165\1\162\1\60\1\157\1\156\1\141\1\145\1\154\1\151\1\156"+
+ "\1\154\1\uffff\1\60\1\153\1\164\1\154\1\uffff\1\143\1\142\1\156"+
+ "\2\60\1\154\1\60\1\154\1\145\1\164\1\141\1\60\1\162\1\165\1\164"+
+ "\1\60\1\164\1\uffff\1\154\1\141\1\162\1\154\1\60\1\171\1\157\1\155"+
+ "\1\151\1\uffff\1\55\1\144\1\164\1\55\2\145\1\144\1\60\1\uffff\1"+
+ "\55\1\141\1\145\1\150\1\145\1\60\2\uffff\1\141\1\uffff\1\154\1\60"+
+ "\1\151\1\147\1\uffff\1\164\1\144\1\163\1\uffff\1\60\1\145\1\154"+
+ "\1\163\1\164\1\154\1\uffff\1\60\1\156\1\141\1\165\1\142\1\uffff"+
+ "\1\141\1\151\1\145\1\143\1\156\1\163\2\uffff\1\151\1\143\1\145\1"+
+ "\162\1\uffff\1\164\1\60\1\157\1\145\1\60\1\145\1\60\1\uffff\1\144"+
+ "\1\60\1\145\1\60\1\157\1\uffff\1\60\1\164\1\154\1\165\1\55\1\157"+
+ "\1\146\1\164\1\143\1\154\1\156\1\164\1\163\1\117\1\145\1\uffff\1"+
+ "\156\1\60\1\uffff\1\163\1\uffff\1\60\1\uffff\1\60\1\uffff\1\167"+
+ "\1\uffff\1\151\1\141\1\164\1\uffff\1\156\2\uffff\1\60\1\145\1\151"+
+ "\1\163\2\60\1\146\2\60\1\uffff\1\60\2\uffff\1\55\1\157\1\164\1\145"+
+ "\1\60\1\uffff\1\60\1\153\1\60\2\uffff\1\60\4\uffff\1\156\1\145\1"+
+ "\163\2\uffff\1\145\2\uffff\1\55\3\60\4\uffff";
static final String DFA18_maxS =
"\1\u00ff\1\uffff\1\52\1\uffff\1\76\4\75\1\uffff\1\71\1\uffff\1\ufffe"+
- "\1\162\1\165\1\141\1\156\1\154\4\165\1\170\1\157\1\165\2\157\1\162"+
- "\1\145\1\150\10\uffff\1\46\1\174\1\uffff\1\57\15\uffff\1\165\1\145"+
- "\1\155\1\162\1\157\1\156\1\154\1\143\1\u00ff\1\160\1\157\1\166\1"+
- "\154\1\145\1\164\1\144\1\145\2\164\1\141\1\164\1\162\1\151\1\141"+
- "\1\144\1\165\2\154\1\164\1\143\1\156\1\u00ff\1\164\1\155\1\145\4"+
- "\uffff\1\145\1\156\1\160\1\141\1\155\1\143\1\163\1\153\1\164\1\uffff"+
- "\1\157\1\142\1\145\1\165\1\145\1\162\1\165\1\151\1\u00ff\1\156\1"+
- "\157\1\162\1\154\1\145\1\141\1\154\1\163\1\154\1\142\1\u00ff\1\156"+
- "\1\151\1\154\1\uffff\1\u00ff\1\153\1\164\1\154\1\uffff\1\143\1\142"+
- "\1\156\2\u00ff\2\154\1\u00ff\1\164\1\145\1\141\1\u00ff\1\162\1\141"+
- "\1\162\1\154\1\u00ff\1\171\1\155\1\166\1\uffff\1\144\1\55\1\151"+
- "\1\145\1\55\1\164\1\165\1\164\1\u00ff\1\154\1\uffff\1\144\1\145"+
- "\1\u00ff\1\uffff\1\55\1\141\1\145\1\150\1\145\1\u00ff\2\uffff\1"+
- "\141\1\154\1\uffff\1\151\1\u00ff\1\147\1\uffff\1\164\1\154\1\163"+
- "\1\164\1\154\1\uffff\1\u00ff\1\165\1\141\1\156\1\141\1\uffff\1\142"+
- "\1\143\1\145\1\151\1\144\1\163\1\uffff\1\145\1\163\1\156\2\uffff"+
- "\1\151\1\143\1\145\1\162\1\uffff\1\164\1\u00ff\1\157\1\145\2\u00ff"+
- "\1\145\1\u00ff\1\157\1\uffff\1\154\1\164\1\u00ff\1\55\1\165\1\164"+
- "\1\170\1\157\1\145\1\u00ff\1\144\1\154\1\143\1\156\1\164\1\163\1"+
- "\117\1\145\1\uffff\1\156\1\u00ff\2\uffff\1\u00ff\1\uffff\1\167\1"+
- "\141\1\151\2\uffff\1\164\1\u00ff\2\uffff\1\156\1\163\1\uffff\1\u00ff"+
- "\1\151\1\145\1\163\2\u00ff\1\146\2\u00ff\2\uffff\1\55\1\164\1\157"+
- "\1\145\1\uffff\2\u00ff\1\uffff\1\153\2\u00ff\2\uffff\1\u00ff\3\uffff"+
- "\1\145\1\156\1\163\2\uffff\1\145\3\uffff\1\u00ff\1\55\2\u00ff\4"+
- "\uffff";
+ "\1\162\1\165\1\141\1\156\1\170\1\154\4\165\1\157\1\165\2\157\1\162"+
+ "\1\145\1\150\10\uffff\1\46\1\174\2\uffff\1\57\15\uffff\1\165\1\145"+
+ "\1\155\1\157\1\162\1\154\1\156\1\143\1\u00ff\1\160\1\151\1\145\1"+
+ "\144\1\157\1\166\1\154\1\145\2\164\1\144\1\164\1\145\1\162\1\164"+
+ "\1\141\1\154\1\165\1\154\1\164\1\143\1\156\1\u00ff\1\164\1\155\1"+
+ "\145\4\uffff\1\145\1\156\1\160\1\155\1\141\1\163\1\143\1\153\1\164"+
+ "\1\uffff\1\157\1\154\1\163\1\154\1\156\1\u00ff\2\142\1\145\1\165"+
+ "\1\145\1\162\1\151\1\165\1\162\1\u00ff\1\157\1\156\1\141\1\145\1"+
+ "\154\1\151\1\156\1\154\1\uffff\1\u00ff\1\153\1\164\1\154\1\uffff"+
+ "\1\143\1\142\1\156\2\u00ff\1\154\1\u00ff\1\154\1\145\1\164\1\141"+
+ "\1\u00ff\1\162\1\165\1\164\1\u00ff\1\164\1\uffff\1\154\1\141\1\162"+
+ "\1\154\1\u00ff\1\171\1\166\1\155\1\151\1\uffff\1\55\1\144\1\164"+
+ "\1\55\2\145\1\144\1\u00ff\1\uffff\1\55\1\141\1\145\1\150\1\145\1"+
+ "\u00ff\2\uffff\1\141\1\uffff\1\154\1\u00ff\1\151\1\147\1\uffff\1"+
+ "\164\1\144\1\163\1\uffff\1\u00ff\1\145\1\154\1\163\1\164\1\154\1"+
+ "\uffff\1\u00ff\1\156\1\141\1\165\1\142\1\uffff\1\141\1\151\1\145"+
+ "\1\143\1\156\1\163\2\uffff\1\151\1\143\1\145\1\162\1\uffff\1\164"+
+ "\1\u00ff\1\157\1\145\1\u00ff\1\145\1\u00ff\1\uffff\1\144\1\u00ff"+
+ "\1\145\1\u00ff\1\157\1\uffff\1\u00ff\1\164\1\154\1\165\1\55\1\157"+
+ "\1\170\1\164\1\143\1\154\1\156\1\164\1\163\1\117\1\145\1\uffff\1"+
+ "\156\1\u00ff\1\uffff\1\163\1\uffff\1\u00ff\1\uffff\1\u00ff\1\uffff"+
+ "\1\167\1\uffff\1\151\1\141\1\164\1\uffff\1\156\2\uffff\1\u00ff\1"+
+ "\145\1\151\1\163\2\u00ff\1\146\2\u00ff\1\uffff\1\u00ff\2\uffff\1"+
+ "\55\1\157\1\164\1\145\1\u00ff\1\uffff\1\u00ff\1\153\1\u00ff\2\uffff"+
+ "\1\u00ff\4\uffff\1\156\1\145\1\163\2\uffff\1\145\2\uffff\1\55\3"+
+ "\u00ff\4\uffff";
static final String DFA18_acceptS =
- "\1\uffff\1\1\1\uffff\1\3\5\uffff\1\13\1\uffff\1\16\22\uffff\1\73"+
- "\1\74\1\75\1\76\1\77\1\100\1\101\1\102\2\uffff\1\106\1\uffff\1\73"+
- "\1\111\1\2\1\103\1\4\1\5\1\7\1\6\1\11\1\10\1\12\1\15\1\14\43\uffff"+
- "\1\104\1\105\1\110\1\107\11\uffff\1\62\27\uffff\1\34\4\uffff\1\53"+
- "\24\uffff\1\54\12\uffff\1\72\3\uffff\1\65\6\uffff\1\17\1\71\2\uffff"+
- "\1\44\3\uffff\1\46\5\uffff\1\24\5\uffff\1\35\6\uffff\1\66\3\uffff"+
- "\1\63\1\43\4\uffff\1\70\11\uffff\1\25\22\uffff\1\67\2\uffff\1\21"+
- "\1\23\1\uffff\1\51\3\uffff\1\47\1\37\2\uffff\1\30\1\31\2\uffff\1"+
- "\64\11\uffff\1\20\1\50\4\uffff\1\40\2\uffff\1\32\3\uffff\1\52\1"+
- "\60\1\uffff\1\26\1\22\1\41\3\uffff\1\42\1\56\1\uffff\1\33\1\55\1"+
- "\57\4\uffff\1\45\1\36\1\27\1\61";
+ "\1\uffff\1\1\1\uffff\1\3\5\uffff\1\13\1\uffff\1\16\22\uffff\1\74"+
+ "\1\75\1\76\1\77\1\100\1\101\1\102\1\103\2\uffff\1\107\1\110\1\uffff"+
+ "\1\74\1\113\1\2\1\104\1\4\1\5\1\7\1\6\1\11\1\10\1\12\1\15\1\14\43"+
+ "\uffff\1\105\1\106\1\111\1\112\11\uffff\1\63\30\uffff\1\35\4\uffff"+
+ "\1\54\21\uffff\1\73\11\uffff\1\55\10\uffff\1\66\6\uffff\1\17\1\72"+
+ "\1\uffff\1\45\4\uffff\1\47\3\uffff\1\67\6\uffff\1\25\5\uffff\1\36"+
+ "\6\uffff\1\64\1\44\4\uffff\1\71\7\uffff\1\23\5\uffff\1\26\17\uffff"+
+ "\1\70\2\uffff\1\21\1\uffff\1\65\1\uffff\1\24\1\uffff\1\52\1\uffff"+
+ "\1\50\3\uffff\1\40\1\uffff\1\31\1\32\11\uffff\1\20\1\uffff\1\33"+
+ "\1\51\5\uffff\1\41\3\uffff\1\53\1\61\1\uffff\1\27\1\22\1\57\1\42"+
+ "\3\uffff\1\43\1\34\1\uffff\1\56\1\60\4\uffff\1\37\1\46\1\30\1\62";
static final String DFA18_specialS =
- "\u0131\uffff}>";
+ "\u0136\uffff}>";
static final String[] DFA18_transitionS = {
- "\2\11\1\uffff\2\11\22\uffff\1\11\1\10\1\13\1\50\1\36\1\53\1"+
- "\46\1\14\1\37\1\40\2\53\1\45\1\4\1\2\1\51\12\12\1\3\1\1\1\7"+
- "\1\5\1\6\2\53\32\52\1\41\1\53\1\42\1\53\1\36\1\uffff\1\24\1"+
- "\52\1\32\1\25\1\26\1\16\1\21\1\52\1\20\2\52\1\31\1\34\1\30\1"+
- "\33\1\17\1\23\1\22\1\27\1\15\2\52\1\35\3\52\1\43\1\47\1\44\102"+
- "\uffff\100\52",
+ "\2\11\1\uffff\2\11\22\uffff\1\11\1\10\1\13\1\51\1\36\1\54\1"+
+ "\46\1\14\1\37\1\40\2\54\1\45\1\4\1\2\1\52\12\12\1\3\1\1\1\7"+
+ "\1\5\1\6\2\54\32\53\1\41\1\54\1\42\1\54\1\36\1\uffff\1\25\1"+
+ "\53\1\32\1\26\1\21\1\16\1\22\1\53\1\20\2\53\1\31\1\34\1\30\1"+
+ "\33\1\17\1\24\1\23\1\27\1\15\2\53\1\35\3\53\1\43\1\47\1\44\1"+
+ "\50\101\uffff\100\53",
"",
- "\1\54",
+ "\1\55",
"",
- "\12\12\4\uffff\1\56",
- "\1\57",
+ "\12\12\4\uffff\1\57",
"\1\60",
- "\1\62",
- "\1\64",
+ "\1\61",
+ "\1\63",
+ "\1\65",
"",
- "\1\65\1\uffff\12\12",
+ "\1\66\1\uffff\12\12",
"",
"\uffff\13",
- "\1\71\2\uffff\1\70\11\uffff\1\67",
- "\1\75\15\uffff\1\72\2\uffff\1\73\2\uffff\1\74",
- "\1\76",
- "\1\100\1\77",
- "\1\101",
- "\1\102\17\uffff\1\103",
- "\1\104",
- "\1\105\3\uffff\1\107\6\uffff\1\106\5\uffff\1\111\1\110",
- "\1\113\7\uffff\1\112\13\uffff\1\114",
- "\1\117\7\uffff\1\116\1\uffff\1\115",
- "\1\121\15\uffff\1\120",
- "\1\123\5\uffff\1\122",
- "\1\124",
+ "\1\72\2\uffff\1\71\11\uffff\1\70",
+ "\1\75\15\uffff\1\74\2\uffff\1\73\2\uffff\1\76",
+ "\1\77",
+ "\1\101\1\100",
+ "\1\104\7\uffff\1\103\1\uffff\1\102",
+ "\1\105",
+ "\1\106\17\uffff\1\107",
+ "\1\110",
+ "\1\111\3\uffff\1\115\6\uffff\1\113\5\uffff\1\112\1\114",
+ "\1\117\7\uffff\1\120\13\uffff\1\116",
+ "\1\121\15\uffff\1\122",
+ "\1\124\5\uffff\1\123",
"\1\125",
"\1\126",
- "\1\127\3\uffff\1\130",
- "\1\131",
+ "\1\127",
+ "\1\130\3\uffff\1\131",
+ "\1\132",
"",
"",
"",
@@ -3036,11 +3092,11 @@
"",
"",
"",
- "\1\132",
"\1\133",
+ "\1\134",
"",
- "\1\134\4\uffff\1\135",
"",
+ "\1\136\4\uffff\1\135",
"",
"",
"",
@@ -3053,7 +3109,7 @@
"",
"",
"",
- "\1\136",
+ "",
"\1\137",
"\1\140",
"\1\141",
@@ -3061,41 +3117,40 @@
"\1\143",
"\1\144",
"\1\145",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\10\52\1\146\21\52"+
- "\105\uffff\100\52",
- "\1\150",
+ "\1\146",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\10\53\1\147\21\53"+
+ "\105\uffff\100\53",
"\1\151",
- "\1\153\2\uffff\1\152",
- "\1\154",
- "\1\155",
- "\1\156\20\uffff\1\157",
+ "\1\152\5\uffff\1\153",
+ "\1\154\3\uffff\1\155",
+ "\1\157\2\uffff\1\156",
"\1\160",
- "\1\161",
- "\1\162",
+ "\1\162\2\uffff\1\161",
"\1\163",
"\1\164",
- "\1\165",
- "\1\166",
- "\1\167\5\uffff\1\170",
+ "\1\166\20\uffff\1\165",
+ "\1\167",
+ "\1\170",
"\1\171",
- "\1\172\2\uffff\1\173",
+ "\1\172",
+ "\1\173",
"\1\174",
"\1\175",
"\1\176",
- "\1\177\106\uffff\1\u0080",
- "\1\u0081",
- "\1\u0083\1\uffff\1\u0082",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\1\u0085",
- "\1\u0086",
+ "\1\177",
+ "\1\u0080",
+ "\1\u0081\106\uffff\1\u0082",
+ "\1\u0083",
+ "\1\u0085\1\uffff\1\u0084",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u0087",
+ "\1\u0088",
+ "\1\u0089",
"",
"",
"",
"",
- "\1\u0088",
- "\1\u0089",
"\1\u008a",
"\1\u008b",
"\1\u008c",
@@ -3103,17 +3158,17 @@
"\1\u008e",
"\1\u008f",
"\1\u0090",
- "",
"\1\u0091",
"\1\u0092",
+ "",
"\1\u0093",
"\1\u0094",
"\1\u0095",
"\1\u0096",
"\1\u0097",
- "\1\u0098",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\1\u0099",
"\1\u009a",
"\1\u009b",
"\1\u009c",
@@ -3122,223 +3177,230 @@
"\1\u009f",
"\1\u00a0",
"\1\u00a1",
- "\1\u00a2",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00a3",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\1\u00a4",
"\1\u00a5",
"\1\u00a6",
"\1\u00a7",
- "",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\1\u00a8",
"\1\u00a9",
"\1\u00aa",
- "\1\u00ab",
"",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00ac",
"\1\u00ad",
"\1\u00ae",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "",
+ "\1\u00af",
+ "\1\u00b0",
"\1\u00b1",
- "\1\u00b2",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00b4",
- "\1\u00b5",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00b6",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\1\u00b7",
"\1\u00b8",
"\1\u00b9",
- "\1\u00ba",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00bb",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\5\52\1\u00bc\24\52"+
- "\105\uffff\100\52",
- "\1\u00be",
+ "\1\u00bc",
+ "\1\u00bd",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00bf",
- "\1\u00c1\6\uffff\1\u00c0",
"",
+ "\1\u00c0",
+ "\1\u00c1",
"\1\u00c2",
"\1\u00c3",
- "\1\u00c4",
- "\1\u00c5",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\5\53\1\u00c4\24\53"+
+ "\105\uffff\100\53",
"\1\u00c6",
- "\1\u00c7",
- "\1\u00c8",
+ "\1\u00c7\6\uffff\1\u00c8",
"\1\u00c9",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\1\u00ca",
+ "",
"\1\u00cb",
- "",
"\1\u00cc",
"\1\u00cd",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "",
+ "\1\u00ce",
"\1\u00cf",
"\1\u00d0",
"\1\u00d1",
- "\1\u00d2",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "",
"\1\u00d3",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "",
- "",
+ "\1\u00d4",
"\1\u00d5",
"\1\u00d6",
- "",
"\1\u00d7",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\1\u00d8",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
+ "",
"\1\u00d9",
+ "",
"\1\u00da",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00db",
"\1\u00dc",
+ "",
"\1\u00dd",
+ "\1\u00de",
+ "\1\u00df",
"",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\1\u00df",
- "\1\u00e0",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00e1",
"\1\u00e2",
- "",
"\1\u00e3",
"\1\u00e4",
"\1\u00e5",
- "\1\u00e6",
+ "",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00e7",
"\1\u00e8",
- "",
"\1\u00e9",
"\1\u00ea",
+ "",
"\1\u00eb",
- "",
- "",
"\1\u00ec",
"\1\u00ed",
"\1\u00ee",
"\1\u00ef",
+ "\1\u00f0",
"",
- "\1\u00f0",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "",
+ "\1\u00f1",
"\1\u00f2",
"\1\u00f3",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\1\u00f6",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\1\u00f4",
+ "",
+ "\1\u00f5",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\1\u00f7",
"\1\u00f8",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\1\u00fa",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
- "\1\u00f9",
- "\1\u00fa",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
"\1\u00fc",
- "\1\u00fd",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u00fe",
- "\1\u00ff\21\uffff\1\u0100",
- "\1\u0101",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\1\u0100",
+ "",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u0102",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\1\u0103",
"\1\u0104",
"\1\u0105",
"\1\u0106",
- "\1\u0107",
- "\1\u0108",
+ "\1\u0107\21\uffff\1\u0108",
"\1\u0109",
"\1\u010a",
"\1\u010b",
- "",
"\1\u010c",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "",
- "",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "",
+ "\1\u010d",
+ "\1\u010e",
"\1\u010f",
"\1\u0110",
+ "",
"\1\u0111",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
+ "\1\u0113",
"",
- "\1\u0112",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
- "\1\u0114",
- "\1\u0115",
+ "\1\u0116",
"",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
"\1\u0117",
"\1\u0118",
"\1\u0119",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\1\u011c",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
"",
+ "\1\u011a",
"",
- "\1\u011f",
- "\1\u0120",
+ "",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\1\u011c",
+ "\1\u011d",
+ "\1\u011e",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"\1\u0121",
- "\1\u0122",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
+ "",
"\1\u0125",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
+ "\1\u0126",
+ "\1\u0127",
+ "\1\u0128",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\1\u012b",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
"",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
"",
- "\1\u0129",
- "\1\u012a",
- "\1\u012b",
"",
"",
- "\1\u012c",
+ "\1\u012e",
+ "\1\u012f",
+ "\1\u0130",
"",
"",
+ "\1\u0131",
"",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\1\u012e",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
- "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52\105\uffff\100"+
- "\52",
"",
+ "\1\u0132",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
+ "\12\53\7\uffff\32\53\4\uffff\1\53\1\uffff\32\53\105\uffff\100"+
+ "\53",
"",
"",
+ "",
""
};
@@ -3372,7 +3434,7 @@
this.transition = DFA18_transition;
}
public String getDescription() {
- return "1:1: Tokens : ( T72 | T73 | T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | GLOBAL | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | DIALECT | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | REVERSE | RESULT | COLLECT | OR | AND | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | IN | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC );";
+ return "1:1: Tokens : ( T74 | T75 | T76 | T77 | T78 | T79 | T80 | T81 | T82 | T83 | WS | INT | FLOAT | STRING | BOOL | PACKAGE | IMPORT | FUNCTION | EVENT | GLOBAL | RULE | QUERY | TEMPLATE | ATTRIBUTES | DATE_EFFECTIVE | DATE_EXPIRES | ENABLED | SALIENCE | NO_LOOP | AUTO_FOCUS | ACTIVATION_GROUP | AGENDA_GROUP | DIALECT | RULEFLOW_GROUP | DURATION | LOCK_ON_ACTIVE | FROM | ACCUMULATE | INIT | ACTION | REVERSE | RESULT | COLLECT | OR | AND | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | IN | NULL | EXISTS | NOT | EVAL | FORALL | WHEN | THEN | END | ID | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | DOUBLE_AMPER | DOUBLE_PIPE | TILDE | SH_STYLE_SINGLE_LINE_COMMENT | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | MISC );";
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DRLParser.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,4 +1,4 @@
-// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-11-12 18:04:44
+// $ANTLR 3.0.1 /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-12-10 14:18:28
package org.drools.lang;
import java.util.List;
@@ -17,81 +17,83 @@
import java.util.HashMap;
public class DRLParser extends Parser {
public static final String[] tokenNames = new String[] {
- "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PACKAGE", "IMPORT", "FUNCTION", "ID", "DOT", "GLOBAL", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "QUERY", "END", "TEMPLATE", "RULE", "WHEN", "ATTRIBUTES", "DATE_EFFECTIVE", "STRING", "DATE_EXPIRES", "ENABLED", "BOOL", "SALIENCE", "INT", "NO_LOOP", "AUTO_FOCUS", "ACTIVATION_GROUP", "RULEFLOW_GROUP", "AGENDA_GROUP", "DURATION", "DIALECT", "LOCK_ON_ACTIVE", "OR", "DOUBLE_PIPE", "AND", "DOUBLE_AMPER", "FROM", "EXISTS", "NOT", "EVAL", "FORALL", "ACCUMULATE", "INIT", "ACTION", "REVERSE", "RESULT", "COLLECT", "CONTAINS", "EXCLUDES", "MATCHES", "SOUNDSLIKE", "MEMBEROF", "IN", "FLOAT", "NULL", "LEFT_CURLY", "RIGHT_CURLY", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", "MISC", "';'", "'.*'", "':'", "'->'", "'=='", "'>'", "'>='", "'<'", "'<='", "'!='"
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PACKAGE", "IMPORT", "FUNCTION", "EVENT", "ID", "DOT", "GLOBAL", "LEFT_PAREN", "COMMA", "RIGHT_PAREN", "QUERY", "END", "TEMPLATE", "RULE", "WHEN", "ATTRIBUTES", "DATE_EFFECTIVE", "STRING", "DATE_EXPIRES", "ENABLED", "BOOL", "SALIENCE", "INT", "NO_LOOP", "AUTO_FOCUS", "ACTIVATION_GROUP", "RULEFLOW_GROUP", "AGENDA_GROUP", "DURATION", "DIALECT", "LOCK_ON_ACTIVE", "OR", "DOUBLE_PIPE", "AND", "DOUBLE_AMPER", "FROM", "EXISTS", "NOT", "EVAL", "FORALL", "ACCUMULATE", "INIT", "ACTION", "REVERSE", "RESULT", "COLLECT", "CONTAINS", "EXCLUDES", "MATCHES", "SOUNDSLIKE", "MEMBEROF", "TILDE", "IN", "FLOAT", "NULL", "LEFT_CURLY", "RIGHT_CURLY", "LEFT_SQUARE", "RIGHT_SQUARE", "THEN", "EOL", "WS", "EscapeSequence", "HexDigit", "UnicodeEscape", "OctalEscape", "SH_STYLE_SINGLE_LINE_COMMENT", "C_STYLE_SINGLE_LINE_COMMENT", "MULTI_LINE_COMMENT", "MISC", "';'", "'.*'", "':'", "'->'", "'=='", "'>'", "'>='", "'<'", "'<='", "'!='"
};
- public static final int COMMA=11;
- public static final int EXISTS=39;
- public static final int AUTO_FOCUS=27;
- public static final int END=14;
- public static final int HexDigit=65;
- public static final int FORALL=42;
- public static final int TEMPLATE=15;
- public static final int MISC=71;
- public static final int FLOAT=55;
- public static final int QUERY=13;
- public static final int THEN=61;
- public static final int RULE=16;
- public static final int INIT=44;
+ public static final int COMMA=12;
+ public static final int EXISTS=40;
+ public static final int AUTO_FOCUS=28;
+ public static final int END=15;
+ public static final int HexDigit=67;
+ public static final int FORALL=43;
+ public static final int TEMPLATE=16;
+ public static final int MISC=73;
+ public static final int FLOAT=57;
+ public static final int QUERY=14;
+ public static final int THEN=63;
+ public static final int RULE=17;
+ public static final int INIT=45;
+ public static final int TILDE=55;
public static final int IMPORT=5;
- public static final int DATE_EFFECTIVE=19;
public static final int PACKAGE=4;
- public static final int OR=34;
- public static final int DOT=8;
- public static final int DOUBLE_PIPE=35;
- public static final int AND=36;
+ public static final int DATE_EFFECTIVE=20;
+ public static final int OR=35;
+ public static final int DOT=9;
+ public static final int DOUBLE_PIPE=36;
+ public static final int AND=37;
public static final int FUNCTION=6;
- public static final int GLOBAL=9;
- public static final int EscapeSequence=64;
- public static final int DIALECT=32;
- public static final int INT=25;
- public static final int LOCK_ON_ACTIVE=33;
- public static final int DATE_EXPIRES=21;
- public static final int LEFT_SQUARE=59;
- public static final int CONTAINS=49;
- public static final int SH_STYLE_SINGLE_LINE_COMMENT=68;
- public static final int ATTRIBUTES=18;
- public static final int LEFT_CURLY=57;
- public static final int RESULT=47;
- public static final int ID=7;
- public static final int FROM=38;
- public static final int LEFT_PAREN=10;
- public static final int ACTIVATION_GROUP=28;
- public static final int DOUBLE_AMPER=37;
- public static final int RIGHT_CURLY=58;
- public static final int SOUNDSLIKE=52;
- public static final int EXCLUDES=50;
- public static final int BOOL=23;
- public static final int MEMBEROF=53;
- public static final int WHEN=17;
- public static final int RULEFLOW_GROUP=29;
- public static final int WS=63;
- public static final int STRING=20;
- public static final int ACTION=45;
- public static final int COLLECT=48;
- public static final int IN=54;
- public static final int REVERSE=46;
- public static final int NO_LOOP=26;
- public static final int ACCUMULATE=43;
- public static final int UnicodeEscape=66;
- public static final int DURATION=31;
- public static final int EVAL=41;
- public static final int MATCHES=51;
+ public static final int GLOBAL=10;
+ public static final int EscapeSequence=66;
+ public static final int DIALECT=33;
+ public static final int INT=26;
+ public static final int LOCK_ON_ACTIVE=34;
+ public static final int DATE_EXPIRES=22;
+ public static final int LEFT_SQUARE=61;
+ public static final int CONTAINS=50;
+ public static final int SH_STYLE_SINGLE_LINE_COMMENT=70;
+ public static final int ATTRIBUTES=19;
+ public static final int EVENT=7;
+ public static final int LEFT_CURLY=59;
+ public static final int RESULT=48;
+ public static final int ID=8;
+ public static final int FROM=39;
+ public static final int LEFT_PAREN=11;
+ public static final int ACTIVATION_GROUP=29;
+ public static final int DOUBLE_AMPER=38;
+ public static final int RIGHT_CURLY=60;
+ public static final int SOUNDSLIKE=53;
+ public static final int EXCLUDES=51;
+ public static final int BOOL=24;
+ public static final int MEMBEROF=54;
+ public static final int WHEN=18;
+ public static final int RULEFLOW_GROUP=30;
+ public static final int WS=65;
+ public static final int STRING=21;
+ public static final int ACTION=46;
+ public static final int COLLECT=49;
+ public static final int IN=56;
+ public static final int REVERSE=47;
+ public static final int ACCUMULATE=44;
+ public static final int NO_LOOP=27;
+ public static final int UnicodeEscape=68;
+ public static final int DURATION=32;
+ public static final int EVAL=42;
+ public static final int MATCHES=52;
public static final int EOF=-1;
- public static final int EOL=62;
- public static final int NULL=56;
- public static final int AGENDA_GROUP=30;
- public static final int OctalEscape=67;
- public static final int SALIENCE=24;
- public static final int MULTI_LINE_COMMENT=70;
- public static final int RIGHT_PAREN=12;
- public static final int NOT=40;
- public static final int ENABLED=22;
- public static final int RIGHT_SQUARE=60;
- public static final int C_STYLE_SINGLE_LINE_COMMENT=69;
+ public static final int EOL=64;
+ public static final int NULL=58;
+ public static final int AGENDA_GROUP=31;
+ public static final int OctalEscape=69;
+ public static final int SALIENCE=25;
+ public static final int MULTI_LINE_COMMENT=72;
+ public static final int RIGHT_PAREN=13;
+ public static final int NOT=41;
+ public static final int ENABLED=23;
+ public static final int RIGHT_SQUARE=62;
+ public static final int C_STYLE_SINGLE_LINE_COMMENT=71;
public DRLParser(TokenStream input) {
super(input);
- ruleMemo = new HashMap[80+1];
+ ruleMemo = new HashMap[81+1];
}
@@ -288,14 +290,14 @@
int alt1=2;
int LA1_0 = input.LA(1);
- if ( (LA1_0==72) ) {
+ if ( (LA1_0==74) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:196:4: ';'
{
- match(input,72,FOLLOW_72_in_opt_semicolon39); if (failed) return ;
+ match(input,74,FOLLOW_74_in_opt_semicolon39); if (failed) return ;
}
break;
@@ -435,7 +437,7 @@
// $ANTLR start statement
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:223:1: statement : (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query );
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:223:1: statement : (a= rule_attribute | function_import_statement | event_import_statement | import_statement | global | function | t= template | r= rule | q= query );
public final void statement() throws RecognitionException {
AttributeDescr a = null;
@@ -447,8 +449,8 @@
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:224:2: (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query )
- int alt4=8;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:224:2: (a= rule_attribute | function_import_statement | event_import_statement | import_statement | global | function | t= template | r= rule | q= query )
+ int alt4=9;
switch ( input.LA(1) ) {
case DATE_EFFECTIVE:
case DATE_EXPIRES:
@@ -468,52 +470,61 @@
break;
case IMPORT:
{
- int LA4_2 = input.LA(2);
-
- if ( (LA4_2==FUNCTION) ) {
+ switch ( input.LA(2) ) {
+ case EVENT:
+ {
+ alt4=3;
+ }
+ break;
+ case FUNCTION:
+ {
alt4=2;
- }
- else if ( (LA4_2==ID) ) {
- alt4=3;
- }
- else {
+ }
+ break;
+ case ID:
+ {
+ alt4=4;
+ }
+ break;
+ default:
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("223:1: statement : (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query );", 4, 2, input);
+ new NoViableAltException("223:1: statement : (a= rule_attribute | function_import_statement | event_import_statement | import_statement | global | function | t= template | r= rule | q= query );", 4, 2, input);
throw nvae;
}
+
}
break;
case GLOBAL:
{
- alt4=4;
+ alt4=5;
}
break;
case FUNCTION:
{
- alt4=5;
+ alt4=6;
}
break;
case TEMPLATE:
{
- alt4=6;
+ alt4=7;
}
break;
case RULE:
{
- alt4=7;
+ alt4=8;
}
break;
case QUERY:
{
- alt4=8;
+ alt4=9;
}
break;
default:
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("223:1: statement : (a= rule_attribute | function_import_statement | import_statement | global | function | t= template | r= rule | q= query );", 4, 0, input);
+ new NoViableAltException("223:1: statement : (a= rule_attribute | function_import_statement | event_import_statement | import_statement | global | function | t= template | r= rule | q= query );", 4, 0, input);
throw nvae;
}
@@ -543,39 +554,49 @@
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:226:4: import_statement
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:226:4: event_import_statement
{
- pushFollow(FOLLOW_import_statement_in_statement134);
- import_statement();
+ pushFollow(FOLLOW_event_import_statement_in_statement134);
+ event_import_statement();
_fsp--;
if (failed) return ;
}
break;
case 4 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:227:4: global
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:227:4: import_statement
{
- pushFollow(FOLLOW_global_in_statement140);
- global();
+ pushFollow(FOLLOW_import_statement_in_statement139);
+ import_statement();
_fsp--;
if (failed) return ;
}
break;
case 5 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:228:4: function
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:228:4: global
{
- pushFollow(FOLLOW_function_in_statement146);
- function();
+ pushFollow(FOLLOW_global_in_statement145);
+ global();
_fsp--;
if (failed) return ;
}
break;
case 6 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:229:10: t= template
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:229:4: function
{
- pushFollow(FOLLOW_template_in_statement160);
+ pushFollow(FOLLOW_function_in_statement151);
+ function();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ break;
+ case 7 :
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:230:10: t= template
+ {
+ pushFollow(FOLLOW_template_in_statement165);
t=template();
_fsp--;
if (failed) return ;
@@ -585,10 +606,10 @@
}
break;
- case 7 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:230:4: r= rule
+ case 8 :
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:231:4: r= rule
{
- pushFollow(FOLLOW_rule_in_statement169);
+ pushFollow(FOLLOW_rule_in_statement174);
r=rule();
_fsp--;
if (failed) return ;
@@ -598,10 +619,10 @@
}
break;
- case 8 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:231:4: q= query
+ case 9 :
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:232:4: q= query
{
- pushFollow(FOLLOW_query_in_statement181);
+ pushFollow(FOLLOW_query_in_statement186);
q=query();
_fsp--;
if (failed) return ;
@@ -626,7 +647,7 @@
// $ANTLR start package_statement
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:233:1: package_statement returns [String packageName] : PACKAGE n= dotted_name opt_semicolon ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:235:1: package_statement returns [String packageName] : PACKAGE n= dotted_name opt_semicolon ;
public final String package_statement() throws RecognitionException {
String packageName = null;
@@ -637,15 +658,15 @@
packageName = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:237:2: ( PACKAGE n= dotted_name opt_semicolon )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:238:3: PACKAGE n= dotted_name opt_semicolon
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:239:2: ( PACKAGE n= dotted_name opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:240:3: PACKAGE n= dotted_name opt_semicolon
{
- match(input,PACKAGE,FOLLOW_PACKAGE_in_package_statement205); if (failed) return packageName;
- pushFollow(FOLLOW_dotted_name_in_package_statement209);
+ match(input,PACKAGE,FOLLOW_PACKAGE_in_package_statement212); if (failed) return packageName;
+ pushFollow(FOLLOW_dotted_name_in_package_statement216);
n=dotted_name();
_fsp--;
if (failed) return packageName;
- pushFollow(FOLLOW_opt_semicolon_in_package_statement211);
+ pushFollow(FOLLOW_opt_semicolon_in_package_statement218);
opt_semicolon();
_fsp--;
if (failed) return packageName;
@@ -670,7 +691,7 @@
// $ANTLR start import_statement
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:246:1: import_statement : IMPORT import_name[importDecl] opt_semicolon ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:248:1: import_statement : IMPORT import_name[importDecl] opt_semicolon ;
public final void import_statement() throws RecognitionException {
Token IMPORT1=null;
@@ -678,11 +699,11 @@
ImportDescr importDecl = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:250:2: ( IMPORT import_name[importDecl] opt_semicolon )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:250:4: IMPORT import_name[importDecl] opt_semicolon
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:252:2: ( IMPORT import_name[importDecl] opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:252:4: IMPORT import_name[importDecl] opt_semicolon
{
IMPORT1=(Token)input.LT(1);
- match(input,IMPORT,FOLLOW_IMPORT_in_import_statement242); if (failed) return ;
+ match(input,IMPORT,FOLLOW_IMPORT_in_import_statement249); if (failed) return ;
if ( backtracking==0 ) {
importDecl = factory.createImport( );
@@ -692,11 +713,11 @@
}
}
- pushFollow(FOLLOW_import_name_in_import_statement265);
+ pushFollow(FOLLOW_import_name_in_import_statement272);
import_name(importDecl);
_fsp--;
if (failed) return ;
- pushFollow(FOLLOW_opt_semicolon_in_import_statement268);
+ pushFollow(FOLLOW_opt_semicolon_in_import_statement275);
opt_semicolon();
_fsp--;
if (failed) return ;
@@ -716,7 +737,7 @@
// $ANTLR start function_import_statement
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:261:1: function_import_statement : IMPORT FUNCTION import_name[importDecl] opt_semicolon ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:263:1: function_import_statement : IMPORT FUNCTION import_name[importDecl] opt_semicolon ;
public final void function_import_statement() throws RecognitionException {
Token IMPORT2=null;
@@ -724,12 +745,12 @@
FunctionImportDescr importDecl = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:265:2: ( IMPORT FUNCTION import_name[importDecl] opt_semicolon )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:265:4: IMPORT FUNCTION import_name[importDecl] opt_semicolon
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:267:2: ( IMPORT FUNCTION import_name[importDecl] opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:267:4: IMPORT FUNCTION import_name[importDecl] opt_semicolon
{
IMPORT2=(Token)input.LT(1);
- match(input,IMPORT,FOLLOW_IMPORT_in_function_import_statement292); if (failed) return ;
- match(input,FUNCTION,FOLLOW_FUNCTION_in_function_import_statement294); if (failed) return ;
+ match(input,IMPORT,FOLLOW_IMPORT_in_function_import_statement299); if (failed) return ;
+ match(input,FUNCTION,FOLLOW_FUNCTION_in_function_import_statement301); if (failed) return ;
if ( backtracking==0 ) {
importDecl = factory.createFunctionImport();
@@ -739,11 +760,11 @@
}
}
- pushFollow(FOLLOW_import_name_in_function_import_statement317);
+ pushFollow(FOLLOW_import_name_in_function_import_statement324);
import_name(importDecl);
_fsp--;
if (failed) return ;
- pushFollow(FOLLOW_opt_semicolon_in_function_import_statement320);
+ pushFollow(FOLLOW_opt_semicolon_in_function_import_statement327);
opt_semicolon();
_fsp--;
if (failed) return ;
@@ -762,14 +783,61 @@
// $ANTLR end function_import_statement
+ // $ANTLR start event_import_statement
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:278:1: event_import_statement : IMPORT EVENT import_name[importDecl] opt_semicolon ;
+ public final void event_import_statement() throws RecognitionException {
+ Token IMPORT3=null;
+
+
+ ImportDescr importDecl = null;
+
+ try {
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:282:2: ( IMPORT EVENT import_name[importDecl] opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:282:4: IMPORT EVENT import_name[importDecl] opt_semicolon
+ {
+ IMPORT3=(Token)input.LT(1);
+ match(input,IMPORT,FOLLOW_IMPORT_in_event_import_statement351); if (failed) return ;
+ match(input,EVENT,FOLLOW_EVENT_in_event_import_statement353); if (failed) return ;
+ if ( backtracking==0 ) {
+
+ importDecl = factory.createEventImport( );
+ importDecl.setStartCharacter( ((CommonToken)IMPORT3).getStartIndex() );
+ if (packageDescr != null) {
+ packageDescr.addImport( importDecl );
+ }
+
+ }
+ pushFollow(FOLLOW_import_name_in_event_import_statement376);
+ import_name(importDecl);
+ _fsp--;
+ if (failed) return ;
+ pushFollow(FOLLOW_opt_semicolon_in_event_import_statement379);
+ opt_semicolon();
+ _fsp--;
+ if (failed) return ;
+
+ }
+
+ }
+ catch (RecognitionException re) {
+ reportError(re);
+ recover(input,re);
+ }
+ finally {
+ }
+ return ;
+ }
+ // $ANTLR end event_import_statement
+
+
// $ANTLR start import_name
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:277:1: import_name[ImportDescr importDecl] returns [String name] : ID ( DOT id= identifier )* (star= '.*' )? ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:294:1: import_name[ImportDescr importDecl] returns [String name] : ID ( DOT id= identifier )* (star= '.*' )? ;
public final String import_name(ImportDescr importDecl) throws RecognitionException {
String name = null;
Token star=null;
- Token ID3=null;
- Token DOT4=null;
+ Token ID4=null;
+ Token DOT5=null;
identifier_return id = null;
@@ -777,19 +845,19 @@
name = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:281:2: ( ID ( DOT id= identifier )* (star= '.*' )? )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:282:3: ID ( DOT id= identifier )* (star= '.*' )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:298:2: ( ID ( DOT id= identifier )* (star= '.*' )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:299:3: ID ( DOT id= identifier )* (star= '.*' )?
{
- ID3=(Token)input.LT(1);
- match(input,ID,FOLLOW_ID_in_import_name346); if (failed) return name;
+ ID4=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_import_name405); if (failed) return name;
if ( backtracking==0 ) {
- name =ID3.getText();
+ name =ID4.getText();
importDecl.setTarget( name );
- importDecl.setEndCharacter( ((CommonToken)ID3).getStopIndex() );
+ importDecl.setEndCharacter( ((CommonToken)ID4).getStopIndex() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:288:3: ( DOT id= identifier )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:305:3: ( DOT id= identifier )*
loop5:
do {
int alt5=2;
@@ -802,17 +870,17 @@
switch (alt5) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:288:5: DOT id= identifier
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:305:5: DOT id= identifier
{
- DOT4=(Token)input.LT(1);
- match(input,DOT,FOLLOW_DOT_in_import_name358); if (failed) return name;
- pushFollow(FOLLOW_identifier_in_import_name362);
+ DOT5=(Token)input.LT(1);
+ match(input,DOT,FOLLOW_DOT_in_import_name417); if (failed) return name;
+ pushFollow(FOLLOW_identifier_in_import_name421);
id=identifier();
_fsp--;
if (failed) return name;
if ( backtracking==0 ) {
- name = name + DOT4.getText() + input.toString(id.start,id.stop);
+ name = name + DOT5.getText() + input.toString(id.start,id.stop);
importDecl.setTarget( name );
importDecl.setEndCharacter( ((CommonToken)((Token)id.start)).getStopIndex() );
@@ -826,19 +894,19 @@
}
} while (true);
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:295:3: (star= '.*' )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:312:3: (star= '.*' )?
int alt6=2;
int LA6_0 = input.LA(1);
- if ( (LA6_0==73) ) {
+ if ( (LA6_0==75) ) {
alt6=1;
}
switch (alt6) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:295:5: star= '.*'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:312:5: star= '.*'
{
star=(Token)input.LT(1);
- match(input,73,FOLLOW_73_in_import_name386); if (failed) return name;
+ match(input,75,FOLLOW_75_in_import_name445); if (failed) return name;
if ( backtracking==0 ) {
name = name + star.getText();
@@ -868,9 +936,9 @@
// $ANTLR start global
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:305:1: global : GLOBAL type= dotted_name id= identifier opt_semicolon ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:322:1: global : GLOBAL type= dotted_name id= identifier opt_semicolon ;
public final void global() throws RecognitionException {
- Token GLOBAL5=null;
+ Token GLOBAL6=null;
String type = null;
identifier_return id = null;
@@ -880,19 +948,19 @@
GlobalDescr global = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:309:2: ( GLOBAL type= dotted_name id= identifier opt_semicolon )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:310:3: GLOBAL type= dotted_name id= identifier opt_semicolon
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:326:2: ( GLOBAL type= dotted_name id= identifier opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:327:3: GLOBAL type= dotted_name id= identifier opt_semicolon
{
- GLOBAL5=(Token)input.LT(1);
- match(input,GLOBAL,FOLLOW_GLOBAL_in_global420); if (failed) return ;
+ GLOBAL6=(Token)input.LT(1);
+ match(input,GLOBAL,FOLLOW_GLOBAL_in_global479); if (failed) return ;
if ( backtracking==0 ) {
global = factory.createGlobal();
- global.setStartCharacter( ((CommonToken)GLOBAL5).getStartIndex() );
+ global.setStartCharacter( ((CommonToken)GLOBAL6).getStartIndex() );
packageDescr.addGlobal( global );
}
- pushFollow(FOLLOW_dotted_name_in_global431);
+ pushFollow(FOLLOW_dotted_name_in_global490);
type=dotted_name();
_fsp--;
if (failed) return ;
@@ -901,11 +969,11 @@
global.setType( type );
}
- pushFollow(FOLLOW_identifier_in_global442);
+ pushFollow(FOLLOW_identifier_in_global501);
id=identifier();
_fsp--;
if (failed) return ;
- pushFollow(FOLLOW_opt_semicolon_in_global444);
+ pushFollow(FOLLOW_opt_semicolon_in_global503);
opt_semicolon();
_fsp--;
if (failed) return ;
@@ -931,9 +999,9 @@
// $ANTLR start function
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:328:1: function : FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:345:1: function : FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk ;
public final void function() throws RecognitionException {
- Token FUNCTION6=null;
+ Token FUNCTION7=null;
String retType = null;
identifier_return id = null;
@@ -950,27 +1018,27 @@
String type = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:333:2: ( FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:334:3: FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:350:2: ( FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:351:3: FUNCTION (retType= dotted_name )? id= identifier LEFT_PAREN ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )? RIGHT_PAREN body= curly_chunk
{
- FUNCTION6=(Token)input.LT(1);
- match(input,FUNCTION,FOLLOW_FUNCTION_in_function469); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:334:19: (retType= dotted_name )?
+ FUNCTION7=(Token)input.LT(1);
+ match(input,FUNCTION,FOLLOW_FUNCTION_in_function528); if (failed) return ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:351:19: (retType= dotted_name )?
int alt7=2;
int LA7_0 = input.LA(1);
- if ( ((LA7_0>=PACKAGE && LA7_0<=ID)||LA7_0==GLOBAL||(LA7_0>=QUERY && LA7_0<=ATTRIBUTES)||LA7_0==ENABLED||LA7_0==SALIENCE||(LA7_0>=DURATION && LA7_0<=DIALECT)||LA7_0==FROM||(LA7_0>=INIT && LA7_0<=RESULT)||(LA7_0>=CONTAINS && LA7_0<=IN)||LA7_0==THEN) ) {
+ if ( ((LA7_0>=PACKAGE && LA7_0<=ID)||LA7_0==GLOBAL||(LA7_0>=QUERY && LA7_0<=ATTRIBUTES)||LA7_0==ENABLED||LA7_0==SALIENCE||(LA7_0>=DURATION && LA7_0<=DIALECT)||LA7_0==FROM||(LA7_0>=INIT && LA7_0<=RESULT)||(LA7_0>=CONTAINS && LA7_0<=MEMBEROF)||LA7_0==IN||LA7_0==THEN) ) {
int LA7_1 = input.LA(2);
- if ( ((LA7_1>=PACKAGE && LA7_1<=GLOBAL)||(LA7_1>=QUERY && LA7_1<=ATTRIBUTES)||LA7_1==ENABLED||LA7_1==SALIENCE||(LA7_1>=DURATION && LA7_1<=DIALECT)||LA7_1==FROM||(LA7_1>=INIT && LA7_1<=RESULT)||(LA7_1>=CONTAINS && LA7_1<=IN)||LA7_1==LEFT_SQUARE||LA7_1==THEN) ) {
+ if ( ((LA7_1>=PACKAGE && LA7_1<=GLOBAL)||(LA7_1>=QUERY && LA7_1<=ATTRIBUTES)||LA7_1==ENABLED||LA7_1==SALIENCE||(LA7_1>=DURATION && LA7_1<=DIALECT)||LA7_1==FROM||(LA7_1>=INIT && LA7_1<=RESULT)||(LA7_1>=CONTAINS && LA7_1<=MEMBEROF)||LA7_1==IN||LA7_1==LEFT_SQUARE||LA7_1==THEN) ) {
alt7=1;
}
}
switch (alt7) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:334:19: retType= dotted_name
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:351:19: retType= dotted_name
{
- pushFollow(FOLLOW_dotted_name_in_function473);
+ pushFollow(FOLLOW_dotted_name_in_function532);
retType=dotted_name();
_fsp--;
if (failed) return ;
@@ -980,7 +1048,7 @@
}
- pushFollow(FOLLOW_identifier_in_function478);
+ pushFollow(FOLLOW_identifier_in_function537);
id=identifier();
_fsp--;
if (failed) return ;
@@ -989,31 +1057,31 @@
//System.err.println( "function :: " + n.getText() );
type = retType != null ? retType : null;
f = factory.createFunction( input.toString(id.start,id.stop), type );
- f.setLocation(offset(FUNCTION6.getLine()), FUNCTION6.getCharPositionInLine());
- f.setStartCharacter( ((CommonToken)FUNCTION6).getStartIndex() );
+ f.setLocation(offset(FUNCTION7.getLine()), FUNCTION7.getCharPositionInLine());
+ f.setStartCharacter( ((CommonToken)FUNCTION7).getStartIndex() );
packageDescr.addFunction( f );
}
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function487); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:344:4: ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )?
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_function546); if (failed) return ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:361:4: ( (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )* )?
int alt11=2;
int LA11_0 = input.LA(1);
- if ( ((LA11_0>=PACKAGE && LA11_0<=ID)||LA11_0==GLOBAL||(LA11_0>=QUERY && LA11_0<=ATTRIBUTES)||LA11_0==ENABLED||LA11_0==SALIENCE||(LA11_0>=DURATION && LA11_0<=DIALECT)||LA11_0==FROM||(LA11_0>=INIT && LA11_0<=RESULT)||(LA11_0>=CONTAINS && LA11_0<=IN)||LA11_0==THEN) ) {
+ if ( ((LA11_0>=PACKAGE && LA11_0<=ID)||LA11_0==GLOBAL||(LA11_0>=QUERY && LA11_0<=ATTRIBUTES)||LA11_0==ENABLED||LA11_0==SALIENCE||(LA11_0>=DURATION && LA11_0<=DIALECT)||LA11_0==FROM||(LA11_0>=INIT && LA11_0<=RESULT)||(LA11_0>=CONTAINS && LA11_0<=MEMBEROF)||LA11_0==IN||LA11_0==THEN) ) {
alt11=1;
}
switch (alt11) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:344:6: (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:361:6: (paramType= dotted_name )? paramName= argument ( COMMA (paramType= dotted_name )? paramName= argument )*
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:344:15: (paramType= dotted_name )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:361:15: (paramType= dotted_name )?
int alt8=2;
alt8 = dfa8.predict(input);
switch (alt8) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:344:15: paramType= dotted_name
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:361:15: paramType= dotted_name
{
- pushFollow(FOLLOW_dotted_name_in_function496);
+ pushFollow(FOLLOW_dotted_name_in_function555);
paramType=dotted_name();
_fsp--;
if (failed) return ;
@@ -1023,7 +1091,7 @@
}
- pushFollow(FOLLOW_argument_in_function501);
+ pushFollow(FOLLOW_argument_in_function560);
paramName=argument();
_fsp--;
if (failed) return ;
@@ -1033,7 +1101,7 @@
f.addParameter( type, paramName );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:349:5: ( COMMA (paramType= dotted_name )? paramName= argument )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:366:5: ( COMMA (paramType= dotted_name )? paramName= argument )*
loop10:
do {
int alt10=2;
@@ -1046,17 +1114,17 @@
switch (alt10) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:349:7: COMMA (paramType= dotted_name )? paramName= argument
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:366:7: COMMA (paramType= dotted_name )? paramName= argument
{
- match(input,COMMA,FOLLOW_COMMA_in_function515); if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:349:22: (paramType= dotted_name )?
+ match(input,COMMA,FOLLOW_COMMA_in_function574); if (failed) return ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:366:22: (paramType= dotted_name )?
int alt9=2;
alt9 = dfa9.predict(input);
switch (alt9) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:349:22: paramType= dotted_name
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:366:22: paramType= dotted_name
{
- pushFollow(FOLLOW_dotted_name_in_function519);
+ pushFollow(FOLLOW_dotted_name_in_function578);
paramType=dotted_name();
_fsp--;
if (failed) return ;
@@ -1066,7 +1134,7 @@
}
- pushFollow(FOLLOW_argument_in_function524);
+ pushFollow(FOLLOW_argument_in_function583);
paramName=argument();
_fsp--;
if (failed) return ;
@@ -1091,8 +1159,8 @@
}
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function548); if (failed) return ;
- pushFollow(FOLLOW_curly_chunk_in_function554);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_function607); if (failed) return ;
+ pushFollow(FOLLOW_curly_chunk_in_function613);
body=curly_chunk();
_fsp--;
if (failed) return ;
@@ -1120,7 +1188,7 @@
// $ANTLR start argument
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:366:1: argument returns [String name] : id= identifier ( '[' ']' )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:383:1: argument returns [String name] : id= identifier ( '[' ']' )* ;
public final String argument() throws RecognitionException {
String name = null;
@@ -1131,17 +1199,17 @@
name = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:370:2: (id= identifier ( '[' ']' )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:370:4: id= identifier ( '[' ']' )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:387:2: (id= identifier ( '[' ']' )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:387:4: id= identifier ( '[' ']' )*
{
- pushFollow(FOLLOW_identifier_in_argument581);
+ pushFollow(FOLLOW_identifier_in_argument640);
id=identifier();
_fsp--;
if (failed) return name;
if ( backtracking==0 ) {
name =input.toString(id.start,id.stop);
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:370:38: ( '[' ']' )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:387:38: ( '[' ']' )*
loop12:
do {
int alt12=2;
@@ -1154,10 +1222,10 @@
switch (alt12) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:370:40: '[' ']'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:387:40: '[' ']'
{
- match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_argument587); if (failed) return name;
- match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_argument589); if (failed) return name;
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_argument646); if (failed) return name;
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_argument648); if (failed) return name;
if ( backtracking==0 ) {
name += "[]";
}
@@ -1186,13 +1254,13 @@
// $ANTLR start query
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:375:1: query returns [QueryDescr query] : QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:392:1: query returns [QueryDescr query] : QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon ;
public final QueryDescr query() throws RecognitionException {
QueryDescr query = null;
Token paramName=null;
- Token QUERY7=null;
- Token END8=null;
+ Token QUERY8=null;
+ Token END9=null;
String queryName = null;
qualified_id_return paramType = null;
@@ -1206,34 +1274,34 @@
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:383:2: ( QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:384:3: QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:400:2: ( QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:401:3: QUERY queryName= name ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )? normal_lhs_block[lhs] END opt_semicolon
{
- QUERY7=(Token)input.LT(1);
- match(input,QUERY,FOLLOW_QUERY_in_query619); if (failed) return query;
- pushFollow(FOLLOW_name_in_query623);
+ QUERY8=(Token)input.LT(1);
+ match(input,QUERY,FOLLOW_QUERY_in_query678); if (failed) return query;
+ pushFollow(FOLLOW_name_in_query682);
queryName=name();
_fsp--;
if (failed) return query;
if ( backtracking==0 ) {
query = factory.createQuery( queryName );
- query.setLocation( offset(QUERY7.getLine()), QUERY7.getCharPositionInLine() );
- query.setStartCharacter( ((CommonToken)QUERY7).getStartIndex() );
+ query.setLocation( offset(QUERY8.getLine()), QUERY8.getCharPositionInLine() );
+ query.setStartCharacter( ((CommonToken)QUERY8).getStartIndex() );
lhs = new AndDescr(); query.setLhs( lhs );
- lhs.setLocation( offset(QUERY7.getLine()), QUERY7.getCharPositionInLine() );
+ lhs.setLocation( offset(QUERY8.getLine()), QUERY8.getCharPositionInLine() );
location.setType( Location.LOCATION_RULE_HEADER );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:393:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:410:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?
int alt17=2;
alt17 = dfa17.predict(input);
switch (alt17) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:393:5: LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:410:5: LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_query633); if (failed) return query;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:394:11: ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )?
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_query692); if (failed) return query;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:411:11: ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )?
int alt16=2;
int LA16_0 = input.LA(1);
@@ -1242,15 +1310,15 @@
}
switch (alt16) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:394:13: ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:411:13: ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )*
{
if ( backtracking==0 ) {
params = new ArrayList(); types = new ArrayList();
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:396:15: ( (paramType= qualified_id )? paramName= ID )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:396:16: (paramType= qualified_id )? paramName= ID
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:413:15: ( (paramType= qualified_id )? paramName= ID )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:413:16: (paramType= qualified_id )? paramName= ID
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:396:25: (paramType= qualified_id )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:413:25: (paramType= qualified_id )?
int alt13=2;
int LA13_0 = input.LA(1);
@@ -1263,9 +1331,9 @@
}
switch (alt13) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:396:25: paramType= qualified_id
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:413:25: paramType= qualified_id
{
- pushFollow(FOLLOW_qualified_id_in_query668);
+ pushFollow(FOLLOW_qualified_id_in_query727);
paramType=qualified_id();
_fsp--;
if (failed) return query;
@@ -1276,14 +1344,14 @@
}
paramName=(Token)input.LT(1);
- match(input,ID,FOLLOW_ID_in_query673); if (failed) return query;
+ match(input,ID,FOLLOW_ID_in_query732); if (failed) return query;
if ( backtracking==0 ) {
params.add( paramName.getText() ); String type = (paramType != null) ? paramType.text : "Object"; types.add( type );
}
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:397:15: ( COMMA (paramType= qualified_id )? paramName= ID )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:414:15: ( COMMA (paramType= qualified_id )? paramName= ID )*
loop15:
do {
int alt15=2;
@@ -1296,10 +1364,10 @@
switch (alt15) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:397:16: COMMA (paramType= qualified_id )? paramName= ID
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:414:16: COMMA (paramType= qualified_id )? paramName= ID
{
- match(input,COMMA,FOLLOW_COMMA_in_query694); if (failed) return query;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:397:31: (paramType= qualified_id )?
+ match(input,COMMA,FOLLOW_COMMA_in_query753); if (failed) return query;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:414:31: (paramType= qualified_id )?
int alt14=2;
int LA14_0 = input.LA(1);
@@ -1312,9 +1380,9 @@
}
switch (alt14) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:397:31: paramType= qualified_id
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:414:31: paramType= qualified_id
{
- pushFollow(FOLLOW_qualified_id_in_query698);
+ pushFollow(FOLLOW_qualified_id_in_query757);
paramType=qualified_id();
_fsp--;
if (failed) return query;
@@ -1325,7 +1393,7 @@
}
paramName=(Token)input.LT(1);
- match(input,ID,FOLLOW_ID_in_query703); if (failed) return query;
+ match(input,ID,FOLLOW_ID_in_query762); if (failed) return query;
if ( backtracking==0 ) {
params.add( paramName.getText() ); String type = (paramType != null) ? paramType.text : "Object"; types.add( type );
}
@@ -1349,7 +1417,7 @@
}
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_query753); if (failed) return query;
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_query812); if (failed) return query;
}
break;
@@ -1361,19 +1429,19 @@
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
}
- pushFollow(FOLLOW_normal_lhs_block_in_query782);
+ pushFollow(FOLLOW_normal_lhs_block_in_query841);
normal_lhs_block(lhs);
_fsp--;
if (failed) return query;
- END8=(Token)input.LT(1);
- match(input,END,FOLLOW_END_in_query787); if (failed) return query;
- pushFollow(FOLLOW_opt_semicolon_in_query789);
+ END9=(Token)input.LT(1);
+ match(input,END,FOLLOW_END_in_query846); if (failed) return query;
+ pushFollow(FOLLOW_opt_semicolon_in_query848);
opt_semicolon();
_fsp--;
if (failed) return query;
if ( backtracking==0 ) {
- query.setEndCharacter( ((CommonToken)END8).getStopIndex() );
+ query.setEndCharacter( ((CommonToken)END9).getStopIndex() );
}
@@ -1392,12 +1460,12 @@
// $ANTLR start template
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:415:1: template returns [FactTemplateDescr template] : TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:432:1: template returns [FactTemplateDescr template] : TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon ;
public final FactTemplateDescr template() throws RecognitionException {
FactTemplateDescr template = null;
- Token TEMPLATE9=null;
- Token END10=null;
+ Token TEMPLATE10=null;
+ Token END11=null;
String templateName = null;
FieldTemplateDescr slot = null;
@@ -1407,27 +1475,27 @@
template = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:419:2: ( TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:420:3: TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:436:2: ( TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:437:3: TEMPLATE templateName= name opt_semicolon (slot= template_slot )+ END opt_semicolon
{
- TEMPLATE9=(Token)input.LT(1);
- match(input,TEMPLATE,FOLLOW_TEMPLATE_in_template817); if (failed) return template;
- pushFollow(FOLLOW_name_in_template821);
+ TEMPLATE10=(Token)input.LT(1);
+ match(input,TEMPLATE,FOLLOW_TEMPLATE_in_template876); if (failed) return template;
+ pushFollow(FOLLOW_name_in_template880);
templateName=name();
_fsp--;
if (failed) return template;
- pushFollow(FOLLOW_opt_semicolon_in_template823);
+ pushFollow(FOLLOW_opt_semicolon_in_template882);
opt_semicolon();
_fsp--;
if (failed) return template;
if ( backtracking==0 ) {
template = new FactTemplateDescr(templateName);
- template.setLocation( offset(TEMPLATE9.getLine()), TEMPLATE9.getCharPositionInLine() );
- template.setStartCharacter( ((CommonToken)TEMPLATE9).getStartIndex() );
+ template.setLocation( offset(TEMPLATE10.getLine()), TEMPLATE10.getCharPositionInLine() );
+ template.setStartCharacter( ((CommonToken)TEMPLATE10).getStartIndex() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:426:3: (slot= template_slot )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:443:3: (slot= template_slot )+
int cnt18=0;
loop18:
do {
@@ -1441,9 +1509,9 @@
switch (alt18) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:427:4: slot= template_slot
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:444:4: slot= template_slot
{
- pushFollow(FOLLOW_template_slot_in_template838);
+ pushFollow(FOLLOW_template_slot_in_template897);
slot=template_slot();
_fsp--;
if (failed) return template;
@@ -1466,15 +1534,15 @@
cnt18++;
} while (true);
- END10=(Token)input.LT(1);
- match(input,END,FOLLOW_END_in_template853); if (failed) return template;
- pushFollow(FOLLOW_opt_semicolon_in_template855);
+ END11=(Token)input.LT(1);
+ match(input,END,FOLLOW_END_in_template912); if (failed) return template;
+ pushFollow(FOLLOW_opt_semicolon_in_template914);
opt_semicolon();
_fsp--;
if (failed) return template;
if ( backtracking==0 ) {
- template.setEndCharacter( ((CommonToken)END10).getStopIndex() );
+ template.setEndCharacter( ((CommonToken)END11).getStopIndex() );
}
@@ -1493,7 +1561,7 @@
// $ANTLR start template_slot
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:438:1: template_slot returns [FieldTemplateDescr field] : fieldType= qualified_id id= identifier opt_semicolon ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:455:1: template_slot returns [FieldTemplateDescr field] : fieldType= qualified_id id= identifier opt_semicolon ;
public final FieldTemplateDescr template_slot() throws RecognitionException {
FieldTemplateDescr field = null;
@@ -1506,15 +1574,15 @@
field = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:442:2: (fieldType= qualified_id id= identifier opt_semicolon )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:443:11: fieldType= qualified_id id= identifier opt_semicolon
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:459:2: (fieldType= qualified_id id= identifier opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:460:11: fieldType= qualified_id id= identifier opt_semicolon
{
if ( backtracking==0 ) {
field = factory.createFieldTemplate();
}
- pushFollow(FOLLOW_qualified_id_in_template_slot901);
+ pushFollow(FOLLOW_qualified_id_in_template_slot960);
fieldType=qualified_id();
_fsp--;
if (failed) return field;
@@ -1525,11 +1593,11 @@
field.setEndCharacter( ((CommonToken)((Token)fieldType.stop)).getStopIndex() );
}
- pushFollow(FOLLOW_identifier_in_template_slot917);
+ pushFollow(FOLLOW_identifier_in_template_slot976);
id=identifier();
_fsp--;
if (failed) return field;
- pushFollow(FOLLOW_opt_semicolon_in_template_slot919);
+ pushFollow(FOLLOW_opt_semicolon_in_template_slot978);
opt_semicolon();
_fsp--;
if (failed) return field;
@@ -1556,12 +1624,12 @@
// $ANTLR start rule
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:461:1: rule returns [RuleDescr rule] : RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:478:1: rule returns [RuleDescr rule] : RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] ;
public final RuleDescr rule() throws RecognitionException {
RuleDescr rule = null;
- Token RULE11=null;
- Token WHEN12=null;
+ Token RULE12=null;
+ Token WHEN13=null;
String ruleName = null;
@@ -1570,12 +1638,12 @@
AndDescr lhs = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:466:2: ( RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:467:3: RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:483:2: ( RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:484:3: RULE ruleName= name ( rule_attributes[$rule] )? ( WHEN ( ':' )? normal_lhs_block[lhs] )? rhs_chunk[$rule]
{
- RULE11=(Token)input.LT(1);
- match(input,RULE,FOLLOW_RULE_in_rule950); if (failed) return rule;
- pushFollow(FOLLOW_name_in_rule954);
+ RULE12=(Token)input.LT(1);
+ match(input,RULE,FOLLOW_RULE_in_rule1009); if (failed) return rule;
+ pushFollow(FOLLOW_name_in_rule1013);
ruleName=name();
_fsp--;
if (failed) return rule;
@@ -1584,13 +1652,13 @@
location.setType( Location.LOCATION_RULE_HEADER );
debug( "start rule: " + ruleName );
rule = new RuleDescr( ruleName, null );
- rule.setLocation( offset(RULE11.getLine()), RULE11.getCharPositionInLine() );
- rule.setStartCharacter( ((CommonToken)RULE11).getStartIndex() );
+ rule.setLocation( offset(RULE12.getLine()), RULE12.getCharPositionInLine() );
+ rule.setStartCharacter( ((CommonToken)RULE12).getStartIndex() );
lhs = new AndDescr();
rule.setLhs( lhs );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:477:3: ( rule_attributes[$rule] )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:494:3: ( rule_attributes[$rule] )?
int alt19=2;
int LA19_0 = input.LA(1);
@@ -1599,9 +1667,9 @@
}
switch (alt19) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:477:3: rule_attributes[$rule]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:494:3: rule_attributes[$rule]
{
- pushFollow(FOLLOW_rule_attributes_in_rule963);
+ pushFollow(FOLLOW_rule_attributes_in_rule1022);
rule_attributes(rule);
_fsp--;
if (failed) return rule;
@@ -1611,7 +1679,7 @@
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:478:3: ( WHEN ( ':' )? normal_lhs_block[lhs] )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:495:3: ( WHEN ( ':' )? normal_lhs_block[lhs] )?
int alt21=2;
int LA21_0 = input.LA(1);
@@ -1620,22 +1688,22 @@
}
switch (alt21) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:479:4: WHEN ( ':' )? normal_lhs_block[lhs]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:496:4: WHEN ( ':' )? normal_lhs_block[lhs]
{
- WHEN12=(Token)input.LT(1);
- match(input,WHEN,FOLLOW_WHEN_in_rule975); if (failed) return rule;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:479:9: ( ':' )?
+ WHEN13=(Token)input.LT(1);
+ match(input,WHEN,FOLLOW_WHEN_in_rule1034); if (failed) return rule;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:496:9: ( ':' )?
int alt20=2;
int LA20_0 = input.LA(1);
- if ( (LA20_0==74) ) {
+ if ( (LA20_0==76) ) {
alt20=1;
}
switch (alt20) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:479:9: ':'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:496:9: ':'
{
- match(input,74,FOLLOW_74_in_rule977); if (failed) return rule;
+ match(input,76,FOLLOW_76_in_rule1036); if (failed) return rule;
}
break;
@@ -1645,11 +1713,11 @@
if ( backtracking==0 ) {
this.location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
- lhs.setLocation( offset(WHEN12.getLine()), WHEN12.getCharPositionInLine() );
- lhs.setStartCharacter( ((CommonToken)WHEN12).getStartIndex() );
+ lhs.setLocation( offset(WHEN13.getLine()), WHEN13.getCharPositionInLine() );
+ lhs.setStartCharacter( ((CommonToken)WHEN13).getStartIndex() );
}
- pushFollow(FOLLOW_normal_lhs_block_in_rule988);
+ pushFollow(FOLLOW_normal_lhs_block_in_rule1047);
normal_lhs_block(lhs);
_fsp--;
if (failed) return rule;
@@ -1659,7 +1727,7 @@
}
- pushFollow(FOLLOW_rhs_chunk_in_rule998);
+ pushFollow(FOLLOW_rhs_chunk_in_rule1057);
rhs_chunk(rule);
_fsp--;
if (failed) return rule;
@@ -1679,16 +1747,16 @@
// $ANTLR start rule_attributes
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:492:1: rule_attributes[RuleDescr rule] : ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:509:1: rule_attributes[RuleDescr rule] : ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* ;
public final void rule_attributes(RuleDescr rule) throws RecognitionException {
AttributeDescr attr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:493:2: ( ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:494:2: ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:510:2: ( ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:511:2: ( ATTRIBUTES ':' )? attr= rule_attribute ( ( ',' )? attr= rule_attribute )*
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:494:2: ( ATTRIBUTES ':' )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:511:2: ( ATTRIBUTES ':' )?
int alt22=2;
int LA22_0 = input.LA(1);
@@ -1697,24 +1765,24 @@
}
switch (alt22) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:494:4: ATTRIBUTES ':'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:511:4: ATTRIBUTES ':'
{
- match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_rule_attributes1018); if (failed) return ;
- match(input,74,FOLLOW_74_in_rule_attributes1020); if (failed) return ;
+ match(input,ATTRIBUTES,FOLLOW_ATTRIBUTES_in_rule_attributes1077); if (failed) return ;
+ match(input,76,FOLLOW_76_in_rule_attributes1079); if (failed) return ;
}
break;
}
- pushFollow(FOLLOW_rule_attribute_in_rule_attributes1028);
+ pushFollow(FOLLOW_rule_attribute_in_rule_attributes1087);
attr=rule_attribute();
_fsp--;
if (failed) return ;
if ( backtracking==0 ) {
rule.addAttribute( attr );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:496:2: ( ( ',' )? attr= rule_attribute )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:513:2: ( ( ',' )? attr= rule_attribute )*
loop24:
do {
int alt24=2;
@@ -1727,9 +1795,9 @@
switch (alt24) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:496:4: ( ',' )? attr= rule_attribute
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:513:4: ( ',' )? attr= rule_attribute
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:496:4: ( ',' )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:513:4: ( ',' )?
int alt23=2;
int LA23_0 = input.LA(1);
@@ -1738,16 +1806,16 @@
}
switch (alt23) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:496:4: ','
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:513:4: ','
{
- match(input,COMMA,FOLLOW_COMMA_in_rule_attributes1035); if (failed) return ;
+ match(input,COMMA,FOLLOW_COMMA_in_rule_attributes1094); if (failed) return ;
}
break;
}
- pushFollow(FOLLOW_rule_attribute_in_rule_attributes1040);
+ pushFollow(FOLLOW_rule_attribute_in_rule_attributes1099);
attr=rule_attribute();
_fsp--;
if (failed) return ;
@@ -1779,7 +1847,7 @@
// $ANTLR start rule_attribute
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:501:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:518:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );
public final AttributeDescr rule_attribute() throws RecognitionException {
AttributeDescr attr = null;
@@ -1790,7 +1858,7 @@
attr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:508:2: (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:525:2: (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect )
int alt25=12;
switch ( input.LA(1) ) {
case SALIENCE:
@@ -1856,16 +1924,16 @@
default:
if (backtracking>0) {failed=true; return attr;}
NoViableAltException nvae =
- new NoViableAltException("501:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );", 25, 0, input);
+ new NoViableAltException("518:1: rule_attribute returns [AttributeDescr attr] : (a= salience | a= no_loop | a= agenda_group | a= duration | a= activation_group | a= auto_focus | a= date_effective | a= date_expires | a= enabled | a= ruleflow_group | a= lock_on_active | a= dialect );", 25, 0, input);
throw nvae;
}
switch (alt25) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:508:4: a= salience
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:525:4: a= salience
{
- pushFollow(FOLLOW_salience_in_rule_attribute1077);
+ pushFollow(FOLLOW_salience_in_rule_attribute1136);
a=salience();
_fsp--;
if (failed) return attr;
@@ -1873,9 +1941,9 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:509:4: a= no_loop
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:526:4: a= no_loop
{
- pushFollow(FOLLOW_no_loop_in_rule_attribute1085);
+ pushFollow(FOLLOW_no_loop_in_rule_attribute1144);
a=no_loop();
_fsp--;
if (failed) return attr;
@@ -1883,9 +1951,9 @@
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:510:4: a= agenda_group
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:527:4: a= agenda_group
{
- pushFollow(FOLLOW_agenda_group_in_rule_attribute1094);
+ pushFollow(FOLLOW_agenda_group_in_rule_attribute1153);
a=agenda_group();
_fsp--;
if (failed) return attr;
@@ -1893,9 +1961,9 @@
}
break;
case 4 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:511:4: a= duration
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:528:4: a= duration
{
- pushFollow(FOLLOW_duration_in_rule_attribute1103);
+ pushFollow(FOLLOW_duration_in_rule_attribute1162);
a=duration();
_fsp--;
if (failed) return attr;
@@ -1903,9 +1971,9 @@
}
break;
case 5 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:512:4: a= activation_group
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:529:4: a= activation_group
{
- pushFollow(FOLLOW_activation_group_in_rule_attribute1112);
+ pushFollow(FOLLOW_activation_group_in_rule_attribute1171);
a=activation_group();
_fsp--;
if (failed) return attr;
@@ -1913,9 +1981,9 @@
}
break;
case 6 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:513:4: a= auto_focus
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:530:4: a= auto_focus
{
- pushFollow(FOLLOW_auto_focus_in_rule_attribute1120);
+ pushFollow(FOLLOW_auto_focus_in_rule_attribute1179);
a=auto_focus();
_fsp--;
if (failed) return attr;
@@ -1923,9 +1991,9 @@
}
break;
case 7 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:514:4: a= date_effective
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:531:4: a= date_effective
{
- pushFollow(FOLLOW_date_effective_in_rule_attribute1128);
+ pushFollow(FOLLOW_date_effective_in_rule_attribute1187);
a=date_effective();
_fsp--;
if (failed) return attr;
@@ -1933,9 +2001,9 @@
}
break;
case 8 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:515:4: a= date_expires
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:532:4: a= date_expires
{
- pushFollow(FOLLOW_date_expires_in_rule_attribute1136);
+ pushFollow(FOLLOW_date_expires_in_rule_attribute1195);
a=date_expires();
_fsp--;
if (failed) return attr;
@@ -1943,9 +2011,9 @@
}
break;
case 9 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:516:4: a= enabled
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:533:4: a= enabled
{
- pushFollow(FOLLOW_enabled_in_rule_attribute1144);
+ pushFollow(FOLLOW_enabled_in_rule_attribute1203);
a=enabled();
_fsp--;
if (failed) return attr;
@@ -1953,9 +2021,9 @@
}
break;
case 10 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:517:4: a= ruleflow_group
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:534:4: a= ruleflow_group
{
- pushFollow(FOLLOW_ruleflow_group_in_rule_attribute1152);
+ pushFollow(FOLLOW_ruleflow_group_in_rule_attribute1211);
a=ruleflow_group();
_fsp--;
if (failed) return attr;
@@ -1963,9 +2031,9 @@
}
break;
case 11 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:518:4: a= lock_on_active
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:535:4: a= lock_on_active
{
- pushFollow(FOLLOW_lock_on_active_in_rule_attribute1160);
+ pushFollow(FOLLOW_lock_on_active_in_rule_attribute1219);
a=lock_on_active();
_fsp--;
if (failed) return attr;
@@ -1973,9 +2041,9 @@
}
break;
case 12 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:519:4: a= dialect
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:536:4: a= dialect
{
- pushFollow(FOLLOW_dialect_in_rule_attribute1167);
+ pushFollow(FOLLOW_dialect_in_rule_attribute1226);
a=dialect();
_fsp--;
if (failed) return attr;
@@ -2002,30 +2070,30 @@
// $ANTLR start date_effective
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:522:1: date_effective returns [AttributeDescr descr] : DATE_EFFECTIVE STRING ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:539:1: date_effective returns [AttributeDescr descr] : DATE_EFFECTIVE STRING ;
public final AttributeDescr date_effective() throws RecognitionException {
AttributeDescr descr = null;
- Token STRING13=null;
- Token DATE_EFFECTIVE14=null;
+ Token STRING14=null;
+ Token DATE_EFFECTIVE15=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:526:2: ( DATE_EFFECTIVE STRING )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:527:3: DATE_EFFECTIVE STRING
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:543:2: ( DATE_EFFECTIVE STRING )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:544:3: DATE_EFFECTIVE STRING
{
- DATE_EFFECTIVE14=(Token)input.LT(1);
- match(input,DATE_EFFECTIVE,FOLLOW_DATE_EFFECTIVE_in_date_effective1193); if (failed) return descr;
- STRING13=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_date_effective1195); if (failed) return descr;
+ DATE_EFFECTIVE15=(Token)input.LT(1);
+ match(input,DATE_EFFECTIVE,FOLLOW_DATE_EFFECTIVE_in_date_effective1252); if (failed) return descr;
+ STRING14=(Token)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_date_effective1254); if (failed) return descr;
if ( backtracking==0 ) {
- descr = new AttributeDescr( "date-effective", getString( STRING13.getText() ) );
- descr.setLocation( offset( DATE_EFFECTIVE14.getLine() ), DATE_EFFECTIVE14.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)DATE_EFFECTIVE14).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)STRING13).getStopIndex() );
+ descr = new AttributeDescr( "date-effective", getString( STRING14.getText() ) );
+ descr.setLocation( offset( DATE_EFFECTIVE15.getLine() ), DATE_EFFECTIVE15.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)DATE_EFFECTIVE15).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)STRING14).getStopIndex() );
}
@@ -2044,30 +2112,30 @@
// $ANTLR start date_expires
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:537:1: date_expires returns [AttributeDescr descr] : DATE_EXPIRES STRING ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:1: date_expires returns [AttributeDescr descr] : DATE_EXPIRES STRING ;
public final AttributeDescr date_expires() throws RecognitionException {
AttributeDescr descr = null;
- Token STRING15=null;
- Token DATE_EXPIRES16=null;
+ Token STRING16=null;
+ Token DATE_EXPIRES17=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:541:2: ( DATE_EXPIRES STRING )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:541:4: DATE_EXPIRES STRING
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:558:2: ( DATE_EXPIRES STRING )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:558:4: DATE_EXPIRES STRING
{
- DATE_EXPIRES16=(Token)input.LT(1);
- match(input,DATE_EXPIRES,FOLLOW_DATE_EXPIRES_in_date_expires1224); if (failed) return descr;
- STRING15=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_date_expires1226); if (failed) return descr;
+ DATE_EXPIRES17=(Token)input.LT(1);
+ match(input,DATE_EXPIRES,FOLLOW_DATE_EXPIRES_in_date_expires1283); if (failed) return descr;
+ STRING16=(Token)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_date_expires1285); if (failed) return descr;
if ( backtracking==0 ) {
- descr = new AttributeDescr( "date-expires", getString( STRING15.getText() ) );
- descr.setLocation( offset(DATE_EXPIRES16.getLine()), DATE_EXPIRES16.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)DATE_EXPIRES16).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)STRING15).getStopIndex() );
+ descr = new AttributeDescr( "date-expires", getString( STRING16.getText() ) );
+ descr.setLocation( offset(DATE_EXPIRES17.getLine()), DATE_EXPIRES17.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)DATE_EXPIRES17).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)STRING16).getStopIndex() );
}
@@ -2086,30 +2154,30 @@
// $ANTLR start enabled
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:550:1: enabled returns [AttributeDescr descr] : ENABLED BOOL ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:567:1: enabled returns [AttributeDescr descr] : ENABLED BOOL ;
public final AttributeDescr enabled() throws RecognitionException {
AttributeDescr descr = null;
- Token BOOL17=null;
- Token ENABLED18=null;
+ Token BOOL18=null;
+ Token ENABLED19=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:2: ( ENABLED BOOL )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:554:5: ENABLED BOOL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:571:2: ( ENABLED BOOL )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:571:5: ENABLED BOOL
{
- ENABLED18=(Token)input.LT(1);
- match(input,ENABLED,FOLLOW_ENABLED_in_enabled1255); if (failed) return descr;
- BOOL17=(Token)input.LT(1);
- match(input,BOOL,FOLLOW_BOOL_in_enabled1257); if (failed) return descr;
+ ENABLED19=(Token)input.LT(1);
+ match(input,ENABLED,FOLLOW_ENABLED_in_enabled1314); if (failed) return descr;
+ BOOL18=(Token)input.LT(1);
+ match(input,BOOL,FOLLOW_BOOL_in_enabled1316); if (failed) return descr;
if ( backtracking==0 ) {
- descr = new AttributeDescr( "enabled", BOOL17.getText() );
- descr.setLocation( offset(ENABLED18.getLine()), ENABLED18.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)ENABLED18).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)BOOL17).getStopIndex() );
+ descr = new AttributeDescr( "enabled", BOOL18.getText() );
+ descr.setLocation( offset(ENABLED19.getLine()), ENABLED19.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)ENABLED19).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)BOOL18).getStopIndex() );
}
@@ -2128,12 +2196,12 @@
// $ANTLR start salience
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:563:1: salience returns [AttributeDescr descr] : SALIENCE ( INT | txt= paren_chunk ) ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:580:1: salience returns [AttributeDescr descr] : SALIENCE ( INT | txt= paren_chunk ) ;
public final AttributeDescr salience() throws RecognitionException {
AttributeDescr descr = null;
- Token SALIENCE19=null;
- Token INT20=null;
+ Token SALIENCE20=null;
+ Token INT21=null;
paren_chunk_return txt = null;
@@ -2141,19 +2209,19 @@
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:567:2: ( SALIENCE ( INT | txt= paren_chunk ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:568:3: SALIENCE ( INT | txt= paren_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:584:2: ( SALIENCE ( INT | txt= paren_chunk ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:585:3: SALIENCE ( INT | txt= paren_chunk )
{
- SALIENCE19=(Token)input.LT(1);
- match(input,SALIENCE,FOLLOW_SALIENCE_in_salience1290); if (failed) return descr;
+ SALIENCE20=(Token)input.LT(1);
+ match(input,SALIENCE,FOLLOW_SALIENCE_in_salience1349); if (failed) return descr;
if ( backtracking==0 ) {
descr = new AttributeDescr( "salience" );
- descr.setLocation( offset(SALIENCE19.getLine()), SALIENCE19.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)SALIENCE19).getStartIndex() );
+ descr.setLocation( offset(SALIENCE20.getLine()), SALIENCE20.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)SALIENCE20).getStartIndex() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:574:3: ( INT | txt= paren_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:591:3: ( INT | txt= paren_chunk )
int alt26=2;
int LA26_0 = input.LA(1);
@@ -2166,29 +2234,29 @@
else {
if (backtracking>0) {failed=true; return descr;}
NoViableAltException nvae =
- new NoViableAltException("574:3: ( INT | txt= paren_chunk )", 26, 0, input);
+ new NoViableAltException("591:3: ( INT | txt= paren_chunk )", 26, 0, input);
throw nvae;
}
switch (alt26) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:574:5: INT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:591:5: INT
{
- INT20=(Token)input.LT(1);
- match(input,INT,FOLLOW_INT_in_salience1301); if (failed) return descr;
+ INT21=(Token)input.LT(1);
+ match(input,INT,FOLLOW_INT_in_salience1360); if (failed) return descr;
if ( backtracking==0 ) {
- descr.setValue( INT20.getText() );
- descr.setEndCharacter( ((CommonToken)INT20).getStopIndex() );
+ descr.setValue( INT21.getText() );
+ descr.setEndCharacter( ((CommonToken)INT21).getStopIndex() );
}
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:579:5: txt= paren_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:596:5: txt= paren_chunk
{
- pushFollow(FOLLOW_paren_chunk_in_salience1316);
+ pushFollow(FOLLOW_paren_chunk_in_salience1375);
txt=paren_chunk();
_fsp--;
if (failed) return descr;
@@ -2220,31 +2288,31 @@
// $ANTLR start no_loop
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:587:1: no_loop returns [AttributeDescr descr] : NO_LOOP ( BOOL )? ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:604:1: no_loop returns [AttributeDescr descr] : NO_LOOP ( BOOL )? ;
public final AttributeDescr no_loop() throws RecognitionException {
AttributeDescr descr = null;
- Token NO_LOOP21=null;
- Token BOOL22=null;
+ Token NO_LOOP22=null;
+ Token BOOL23=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:591:2: ( NO_LOOP ( BOOL )? )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:591:4: NO_LOOP ( BOOL )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:608:2: ( NO_LOOP ( BOOL )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:608:4: NO_LOOP ( BOOL )?
{
- NO_LOOP21=(Token)input.LT(1);
- match(input,NO_LOOP,FOLLOW_NO_LOOP_in_no_loop1346); if (failed) return descr;
+ NO_LOOP22=(Token)input.LT(1);
+ match(input,NO_LOOP,FOLLOW_NO_LOOP_in_no_loop1405); if (failed) return descr;
if ( backtracking==0 ) {
descr = new AttributeDescr( "no-loop", "true" );
- descr.setLocation( offset(NO_LOOP21.getLine()), NO_LOOP21.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)NO_LOOP21).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)NO_LOOP21).getStopIndex() );
+ descr.setLocation( offset(NO_LOOP22.getLine()), NO_LOOP22.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)NO_LOOP22).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)NO_LOOP22).getStopIndex() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:598:3: ( BOOL )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:615:3: ( BOOL )?
int alt27=2;
int LA27_0 = input.LA(1);
@@ -2253,14 +2321,14 @@
}
switch (alt27) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:598:5: BOOL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:615:5: BOOL
{
- BOOL22=(Token)input.LT(1);
- match(input,BOOL,FOLLOW_BOOL_in_no_loop1359); if (failed) return descr;
+ BOOL23=(Token)input.LT(1);
+ match(input,BOOL,FOLLOW_BOOL_in_no_loop1418); if (failed) return descr;
if ( backtracking==0 ) {
- descr.setValue( BOOL22.getText() );
- descr.setEndCharacter( ((CommonToken)BOOL22).getStopIndex() );
+ descr.setValue( BOOL23.getText() );
+ descr.setEndCharacter( ((CommonToken)BOOL23).getStopIndex() );
}
@@ -2285,31 +2353,31 @@
// $ANTLR start auto_focus
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:606:1: auto_focus returns [AttributeDescr descr] : AUTO_FOCUS ( BOOL )? ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:623:1: auto_focus returns [AttributeDescr descr] : AUTO_FOCUS ( BOOL )? ;
public final AttributeDescr auto_focus() throws RecognitionException {
AttributeDescr descr = null;
- Token AUTO_FOCUS23=null;
- Token BOOL24=null;
+ Token AUTO_FOCUS24=null;
+ Token BOOL25=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:610:2: ( AUTO_FOCUS ( BOOL )? )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:610:4: AUTO_FOCUS ( BOOL )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:627:2: ( AUTO_FOCUS ( BOOL )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:627:4: AUTO_FOCUS ( BOOL )?
{
- AUTO_FOCUS23=(Token)input.LT(1);
- match(input,AUTO_FOCUS,FOLLOW_AUTO_FOCUS_in_auto_focus1394); if (failed) return descr;
+ AUTO_FOCUS24=(Token)input.LT(1);
+ match(input,AUTO_FOCUS,FOLLOW_AUTO_FOCUS_in_auto_focus1453); if (failed) return descr;
if ( backtracking==0 ) {
descr = new AttributeDescr( "auto-focus", "true" );
- descr.setLocation( offset(AUTO_FOCUS23.getLine()), AUTO_FOCUS23.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)AUTO_FOCUS23).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)AUTO_FOCUS23).getStopIndex() );
+ descr.setLocation( offset(AUTO_FOCUS24.getLine()), AUTO_FOCUS24.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)AUTO_FOCUS24).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)AUTO_FOCUS24).getStopIndex() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:617:3: ( BOOL )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:634:3: ( BOOL )?
int alt28=2;
int LA28_0 = input.LA(1);
@@ -2318,14 +2386,14 @@
}
switch (alt28) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:617:5: BOOL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:634:5: BOOL
{
- BOOL24=(Token)input.LT(1);
- match(input,BOOL,FOLLOW_BOOL_in_auto_focus1407); if (failed) return descr;
+ BOOL25=(Token)input.LT(1);
+ match(input,BOOL,FOLLOW_BOOL_in_auto_focus1466); if (failed) return descr;
if ( backtracking==0 ) {
- descr.setValue( BOOL24.getText() );
- descr.setEndCharacter( ((CommonToken)BOOL24).getStopIndex() );
+ descr.setValue( BOOL25.getText() );
+ descr.setEndCharacter( ((CommonToken)BOOL25).getStopIndex() );
}
@@ -2350,30 +2418,30 @@
// $ANTLR start activation_group
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:625:1: activation_group returns [AttributeDescr descr] : ACTIVATION_GROUP STRING ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:1: activation_group returns [AttributeDescr descr] : ACTIVATION_GROUP STRING ;
public final AttributeDescr activation_group() throws RecognitionException {
AttributeDescr descr = null;
- Token STRING25=null;
- Token ACTIVATION_GROUP26=null;
+ Token STRING26=null;
+ Token ACTIVATION_GROUP27=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:629:2: ( ACTIVATION_GROUP STRING )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:629:4: ACTIVATION_GROUP STRING
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:2: ( ACTIVATION_GROUP STRING )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:646:4: ACTIVATION_GROUP STRING
{
- ACTIVATION_GROUP26=(Token)input.LT(1);
- match(input,ACTIVATION_GROUP,FOLLOW_ACTIVATION_GROUP_in_activation_group1443); if (failed) return descr;
- STRING25=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_activation_group1445); if (failed) return descr;
+ ACTIVATION_GROUP27=(Token)input.LT(1);
+ match(input,ACTIVATION_GROUP,FOLLOW_ACTIVATION_GROUP_in_activation_group1502); if (failed) return descr;
+ STRING26=(Token)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_activation_group1504); if (failed) return descr;
if ( backtracking==0 ) {
- descr = new AttributeDescr( "activation-group", getString( STRING25.getText() ) );
- descr.setLocation( offset(ACTIVATION_GROUP26.getLine()), ACTIVATION_GROUP26.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)ACTIVATION_GROUP26).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)STRING25).getStopIndex() );
+ descr = new AttributeDescr( "activation-group", getString( STRING26.getText() ) );
+ descr.setLocation( offset(ACTIVATION_GROUP27.getLine()), ACTIVATION_GROUP27.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)ACTIVATION_GROUP27).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)STRING26).getStopIndex() );
}
@@ -2392,30 +2460,30 @@
// $ANTLR start ruleflow_group
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:638:1: ruleflow_group returns [AttributeDescr descr] : RULEFLOW_GROUP STRING ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:655:1: ruleflow_group returns [AttributeDescr descr] : RULEFLOW_GROUP STRING ;
public final AttributeDescr ruleflow_group() throws RecognitionException {
AttributeDescr descr = null;
- Token STRING27=null;
- Token RULEFLOW_GROUP28=null;
+ Token STRING28=null;
+ Token RULEFLOW_GROUP29=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:2: ( RULEFLOW_GROUP STRING )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:642:4: RULEFLOW_GROUP STRING
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:659:2: ( RULEFLOW_GROUP STRING )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:659:4: RULEFLOW_GROUP STRING
{
- RULEFLOW_GROUP28=(Token)input.LT(1);
- match(input,RULEFLOW_GROUP,FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1473); if (failed) return descr;
- STRING27=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_ruleflow_group1475); if (failed) return descr;
+ RULEFLOW_GROUP29=(Token)input.LT(1);
+ match(input,RULEFLOW_GROUP,FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1532); if (failed) return descr;
+ STRING28=(Token)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_ruleflow_group1534); if (failed) return descr;
if ( backtracking==0 ) {
- descr = new AttributeDescr( "ruleflow-group", getString( STRING27.getText() ) );
- descr.setLocation( offset(RULEFLOW_GROUP28.getLine()), RULEFLOW_GROUP28.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)RULEFLOW_GROUP28).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)STRING27).getStopIndex() );
+ descr = new AttributeDescr( "ruleflow-group", getString( STRING28.getText() ) );
+ descr.setLocation( offset(RULEFLOW_GROUP29.getLine()), RULEFLOW_GROUP29.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)RULEFLOW_GROUP29).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)STRING28).getStopIndex() );
}
@@ -2434,30 +2502,30 @@
// $ANTLR start agenda_group
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:651:1: agenda_group returns [AttributeDescr descr] : AGENDA_GROUP STRING ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:668:1: agenda_group returns [AttributeDescr descr] : AGENDA_GROUP STRING ;
public final AttributeDescr agenda_group() throws RecognitionException {
AttributeDescr descr = null;
- Token STRING29=null;
- Token AGENDA_GROUP30=null;
+ Token STRING30=null;
+ Token AGENDA_GROUP31=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:655:2: ( AGENDA_GROUP STRING )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:655:4: AGENDA_GROUP STRING
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:672:2: ( AGENDA_GROUP STRING )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:672:4: AGENDA_GROUP STRING
{
- AGENDA_GROUP30=(Token)input.LT(1);
- match(input,AGENDA_GROUP,FOLLOW_AGENDA_GROUP_in_agenda_group1503); if (failed) return descr;
- STRING29=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_agenda_group1505); if (failed) return descr;
+ AGENDA_GROUP31=(Token)input.LT(1);
+ match(input,AGENDA_GROUP,FOLLOW_AGENDA_GROUP_in_agenda_group1562); if (failed) return descr;
+ STRING30=(Token)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_agenda_group1564); if (failed) return descr;
if ( backtracking==0 ) {
- descr = new AttributeDescr( "agenda-group", getString( STRING29.getText() ) );
- descr.setLocation( offset(AGENDA_GROUP30.getLine()), AGENDA_GROUP30.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)AGENDA_GROUP30).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)STRING29).getStopIndex() );
+ descr = new AttributeDescr( "agenda-group", getString( STRING30.getText() ) );
+ descr.setLocation( offset(AGENDA_GROUP31.getLine()), AGENDA_GROUP31.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)AGENDA_GROUP31).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)STRING30).getStopIndex() );
}
@@ -2476,30 +2544,30 @@
// $ANTLR start duration
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:664:1: duration returns [AttributeDescr descr] : DURATION INT ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:681:1: duration returns [AttributeDescr descr] : DURATION INT ;
public final AttributeDescr duration() throws RecognitionException {
AttributeDescr descr = null;
- Token INT31=null;
- Token DURATION32=null;
+ Token INT32=null;
+ Token DURATION33=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:668:2: ( DURATION INT )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:668:4: DURATION INT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:685:2: ( DURATION INT )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:685:4: DURATION INT
{
- DURATION32=(Token)input.LT(1);
- match(input,DURATION,FOLLOW_DURATION_in_duration1533); if (failed) return descr;
- INT31=(Token)input.LT(1);
- match(input,INT,FOLLOW_INT_in_duration1535); if (failed) return descr;
+ DURATION33=(Token)input.LT(1);
+ match(input,DURATION,FOLLOW_DURATION_in_duration1592); if (failed) return descr;
+ INT32=(Token)input.LT(1);
+ match(input,INT,FOLLOW_INT_in_duration1594); if (failed) return descr;
if ( backtracking==0 ) {
- descr = new AttributeDescr( "duration", INT31.getText() );
- descr.setLocation( offset(DURATION32.getLine()), DURATION32.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)DURATION32).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)INT31).getStopIndex() );
+ descr = new AttributeDescr( "duration", INT32.getText() );
+ descr.setLocation( offset(DURATION33.getLine()), DURATION33.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)DURATION33).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)INT32).getStopIndex() );
}
@@ -2518,30 +2586,30 @@
// $ANTLR start dialect
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:677:1: dialect returns [AttributeDescr descr] : DIALECT STRING ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:694:1: dialect returns [AttributeDescr descr] : DIALECT STRING ;
public final AttributeDescr dialect() throws RecognitionException {
AttributeDescr descr = null;
- Token STRING33=null;
- Token DIALECT34=null;
+ Token STRING34=null;
+ Token DIALECT35=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:681:2: ( DIALECT STRING )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:681:4: DIALECT STRING
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:698:2: ( DIALECT STRING )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:698:4: DIALECT STRING
{
- DIALECT34=(Token)input.LT(1);
- match(input,DIALECT,FOLLOW_DIALECT_in_dialect1563); if (failed) return descr;
- STRING33=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_dialect1565); if (failed) return descr;
+ DIALECT35=(Token)input.LT(1);
+ match(input,DIALECT,FOLLOW_DIALECT_in_dialect1622); if (failed) return descr;
+ STRING34=(Token)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_dialect1624); if (failed) return descr;
if ( backtracking==0 ) {
- descr = new AttributeDescr( "dialect", getString( STRING33.getText() ) );
- descr.setLocation( offset(DIALECT34.getLine()), DIALECT34.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)DIALECT34).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)STRING33).getStopIndex() );
+ descr = new AttributeDescr( "dialect", getString( STRING34.getText() ) );
+ descr.setLocation( offset(DIALECT35.getLine()), DIALECT35.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)DIALECT35).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)STRING34).getStopIndex() );
}
@@ -2560,31 +2628,31 @@
// $ANTLR start lock_on_active
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:690:1: lock_on_active returns [AttributeDescr descr] : LOCK_ON_ACTIVE ( BOOL )? ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:707:1: lock_on_active returns [AttributeDescr descr] : LOCK_ON_ACTIVE ( BOOL )? ;
public final AttributeDescr lock_on_active() throws RecognitionException {
AttributeDescr descr = null;
- Token LOCK_ON_ACTIVE35=null;
- Token BOOL36=null;
+ Token LOCK_ON_ACTIVE36=null;
+ Token BOOL37=null;
descr = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:694:2: ( LOCK_ON_ACTIVE ( BOOL )? )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:694:4: LOCK_ON_ACTIVE ( BOOL )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:711:2: ( LOCK_ON_ACTIVE ( BOOL )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:711:4: LOCK_ON_ACTIVE ( BOOL )?
{
- LOCK_ON_ACTIVE35=(Token)input.LT(1);
- match(input,LOCK_ON_ACTIVE,FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1597); if (failed) return descr;
+ LOCK_ON_ACTIVE36=(Token)input.LT(1);
+ match(input,LOCK_ON_ACTIVE,FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1656); if (failed) return descr;
if ( backtracking==0 ) {
descr = new AttributeDescr( "lock-on-active", "true" );
- descr.setLocation( offset(LOCK_ON_ACTIVE35.getLine()), LOCK_ON_ACTIVE35.getCharPositionInLine() );
- descr.setStartCharacter( ((CommonToken)LOCK_ON_ACTIVE35).getStartIndex() );
- descr.setEndCharacter( ((CommonToken)LOCK_ON_ACTIVE35).getStopIndex() );
+ descr.setLocation( offset(LOCK_ON_ACTIVE36.getLine()), LOCK_ON_ACTIVE36.getCharPositionInLine() );
+ descr.setStartCharacter( ((CommonToken)LOCK_ON_ACTIVE36).getStartIndex() );
+ descr.setEndCharacter( ((CommonToken)LOCK_ON_ACTIVE36).getStopIndex() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:701:3: ( BOOL )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:718:3: ( BOOL )?
int alt29=2;
int LA29_0 = input.LA(1);
@@ -2593,14 +2661,14 @@
}
switch (alt29) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:701:5: BOOL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:718:5: BOOL
{
- BOOL36=(Token)input.LT(1);
- match(input,BOOL,FOLLOW_BOOL_in_lock_on_active1610); if (failed) return descr;
+ BOOL37=(Token)input.LT(1);
+ match(input,BOOL,FOLLOW_BOOL_in_lock_on_active1669); if (failed) return descr;
if ( backtracking==0 ) {
- descr.setValue( BOOL36.getText() );
- descr.setEndCharacter( ((CommonToken)BOOL36).getStopIndex() );
+ descr.setValue( BOOL37.getText() );
+ descr.setEndCharacter( ((CommonToken)BOOL37).getStopIndex() );
}
@@ -2625,7 +2693,7 @@
// $ANTLR start normal_lhs_block
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:709:1: normal_lhs_block[AndDescr descr] : (d= lhs[$descr] )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:726:1: normal_lhs_block[AndDescr descr] : (d= lhs[$descr] )* ;
public final void normal_lhs_block(AndDescr descr) throws RecognitionException {
BaseDescr d = null;
@@ -2634,10 +2702,10 @@
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:713:2: ( (d= lhs[$descr] )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:714:3: (d= lhs[$descr] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:730:2: ( (d= lhs[$descr] )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:731:3: (d= lhs[$descr] )*
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:714:3: (d= lhs[$descr] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:731:3: (d= lhs[$descr] )*
loop30:
do {
int alt30=2;
@@ -2650,9 +2718,9 @@
switch (alt30) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:714:5: d= lhs[$descr]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:731:5: d= lhs[$descr]
{
- pushFollow(FOLLOW_lhs_in_normal_lhs_block1649);
+ pushFollow(FOLLOW_lhs_in_normal_lhs_block1708);
d=lhs(descr);
_fsp--;
if (failed) return ;
@@ -2684,7 +2752,7 @@
// $ANTLR start lhs
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:720:1: lhs[ConditionalElementDescr ce] returns [BaseDescr d] : l= lhs_or ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:737:1: lhs[ConditionalElementDescr ce] returns [BaseDescr d] : l= lhs_or ;
public final BaseDescr lhs(ConditionalElementDescr ce) throws RecognitionException {
BaseDescr d = null;
@@ -2695,10 +2763,10 @@
d =null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:724:2: (l= lhs_or )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:724:4: l= lhs_or
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:741:2: (l= lhs_or )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:741:4: l= lhs_or
{
- pushFollow(FOLLOW_lhs_or_in_lhs1686);
+ pushFollow(FOLLOW_lhs_or_in_lhs1745);
l=lhs_or();
_fsp--;
if (failed) return d;
@@ -2721,7 +2789,7 @@
// $ANTLR start lhs_or
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:728:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:745:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );
public final BaseDescr lhs_or() throws RecognitionException {
BaseDescr d = null;
@@ -2737,23 +2805,23 @@
OrDescr or = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:733:2: ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:750:2: ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* )
int alt33=2;
int LA33_0 = input.LA(1);
if ( (LA33_0==LEFT_PAREN) ) {
int LA33_1 = input.LA(2);
- if ( (LA33_1==ID||LA33_1==LEFT_PAREN||LA33_1==AND||(LA33_1>=EXISTS && LA33_1<=FORALL)) ) {
+ if ( (LA33_1==OR) ) {
+ alt33=1;
+ }
+ else if ( (LA33_1==ID||LA33_1==LEFT_PAREN||LA33_1==AND||(LA33_1>=EXISTS && LA33_1<=FORALL)) ) {
alt33=2;
}
- else if ( (LA33_1==OR) ) {
- alt33=1;
- }
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("728:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );", 33, 1, input);
+ new NoViableAltException("745:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );", 33, 1, input);
throw nvae;
}
@@ -2764,16 +2832,16 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("728:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );", 33, 0, input);
+ new NoViableAltException("745:1: lhs_or returns [BaseDescr d] : ( LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN | left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )* );", 33, 0, input);
throw nvae;
}
switch (alt33) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:733:4: LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:750:4: LEFT_PAREN OR (lhsand= lhs_and )+ RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_or1711); if (failed) return d;
- match(input,OR,FOLLOW_OR_in_lhs_or1713); if (failed) return d;
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_or1770); if (failed) return d;
+ match(input,OR,FOLLOW_OR_in_lhs_or1772); if (failed) return d;
if ( backtracking==0 ) {
or = new OrDescr();
@@ -2781,7 +2849,7 @@
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:739:3: (lhsand= lhs_and )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:756:3: (lhsand= lhs_and )+
int cnt31=0;
loop31:
do {
@@ -2795,9 +2863,9 @@
switch (alt31) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:739:5: lhsand= lhs_and
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:756:5: lhsand= lhs_and
{
- pushFollow(FOLLOW_lhs_and_in_lhs_or1726);
+ pushFollow(FOLLOW_lhs_and_in_lhs_or1785);
lhsand=lhs_and();
_fsp--;
if (failed) return d;
@@ -2820,21 +2888,21 @@
cnt31++;
} while (true);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_or1737); if (failed) return d;
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_or1796); if (failed) return d;
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:745:10: left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:762:10: left= lhs_and ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
{
- pushFollow(FOLLOW_lhs_and_in_lhs_or1755);
+ pushFollow(FOLLOW_lhs_and_in_lhs_or1814);
left=lhs_and();
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
d = left;
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:746:3: ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:763:3: ( ( OR | DOUBLE_PIPE ) right= lhs_and )*
loop32:
do {
int alt32=2;
@@ -2847,7 +2915,7 @@
switch (alt32) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:746:5: ( OR | DOUBLE_PIPE ) right= lhs_and
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:763:5: ( OR | DOUBLE_PIPE ) right= lhs_and
{
if ( (input.LA(1)>=OR && input.LA(1)<=DOUBLE_PIPE) ) {
input.consume();
@@ -2857,7 +2925,7 @@
if (backtracking>0) {failed=true; return d;}
MismatchedSetException mse =
new MismatchedSetException(null,input);
- recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or1763); throw mse;
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_or1822); throw mse;
}
if ( backtracking==0 ) {
@@ -2865,7 +2933,7 @@
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
}
- pushFollow(FOLLOW_lhs_and_in_lhs_or1779);
+ pushFollow(FOLLOW_lhs_and_in_lhs_or1838);
right=lhs_and();
_fsp--;
if (failed) return d;
@@ -2907,7 +2975,7 @@
// $ANTLR start lhs_and
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:763:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:780:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );
public final BaseDescr lhs_and() throws RecognitionException {
BaseDescr d = null;
@@ -2923,7 +2991,7 @@
AndDescr and = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:768:2: ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:785:2: ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* )
int alt36=2;
int LA36_0 = input.LA(1);
@@ -2939,7 +3007,7 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("763:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );", 36, 1, input);
+ new NoViableAltException("780:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );", 36, 1, input);
throw nvae;
}
@@ -2950,16 +3018,16 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("763:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );", 36, 0, input);
+ new NoViableAltException("780:1: lhs_and returns [BaseDescr d] : ( LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN | left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )* );", 36, 0, input);
throw nvae;
}
switch (alt36) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:768:4: LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:785:4: LEFT_PAREN AND (lhsunary= lhs_unary )+ RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_and1810); if (failed) return d;
- match(input,AND,FOLLOW_AND_in_lhs_and1812); if (failed) return d;
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_and1869); if (failed) return d;
+ match(input,AND,FOLLOW_AND_in_lhs_and1871); if (failed) return d;
if ( backtracking==0 ) {
and = new AndDescr();
@@ -2967,7 +3035,7 @@
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:774:3: (lhsunary= lhs_unary )+
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:791:3: (lhsunary= lhs_unary )+
int cnt34=0;
loop34:
do {
@@ -2981,9 +3049,9 @@
switch (alt34) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:774:4: lhsunary= lhs_unary
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:791:4: lhsunary= lhs_unary
{
- pushFollow(FOLLOW_lhs_unary_in_lhs_and1824);
+ pushFollow(FOLLOW_lhs_unary_in_lhs_and1883);
lhsunary=lhs_unary();
_fsp--;
if (failed) return d;
@@ -3006,21 +3074,21 @@
cnt34++;
} while (true);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_and1834); if (failed) return d;
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_and1893); if (failed) return d;
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:780:10: left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:797:10: left= lhs_unary ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
{
- pushFollow(FOLLOW_lhs_unary_in_lhs_and1852);
+ pushFollow(FOLLOW_lhs_unary_in_lhs_and1911);
left=lhs_unary();
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
d = left;
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:781:3: ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:798:3: ( ( AND | DOUBLE_AMPER ) right= lhs_unary )*
loop35:
do {
int alt35=2;
@@ -3033,7 +3101,7 @@
switch (alt35) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:781:5: ( AND | DOUBLE_AMPER ) right= lhs_unary
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:798:5: ( AND | DOUBLE_AMPER ) right= lhs_unary
{
if ( (input.LA(1)>=AND && input.LA(1)<=DOUBLE_AMPER) ) {
input.consume();
@@ -3043,7 +3111,7 @@
if (backtracking>0) {failed=true; return d;}
MismatchedSetException mse =
new MismatchedSetException(null,input);
- recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and1860); throw mse;
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lhs_and1919); throw mse;
}
if ( backtracking==0 ) {
@@ -3051,7 +3119,7 @@
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_AND_OR );
}
- pushFollow(FOLLOW_lhs_unary_in_lhs_and1876);
+ pushFollow(FOLLOW_lhs_unary_in_lhs_and1935);
right=lhs_unary();
_fsp--;
if (failed) return d;
@@ -3093,7 +3161,7 @@
// $ANTLR start lhs_unary
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:798:1: lhs_unary returns [BaseDescr d] : ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:815:1: lhs_unary returns [BaseDescr d] : ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon ;
public final BaseDescr lhs_unary() throws RecognitionException {
BaseDescr d = null;
@@ -3106,10 +3174,10 @@
d = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:2: ( ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:2: ( ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source ) opt_semicolon
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )
int alt37=6;
int LA37_0 = input.LA(1);
@@ -3134,15 +3202,15 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("802:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )", 37, 0, input);
+ new NoViableAltException("819:4: ( ( EXISTS )=>u= lhs_exist | ( NOT )=>u= lhs_not | ( EVAL )=>u= lhs_eval | ( FORALL )=>u= lhs_forall | ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN | ps= pattern_source )", 37, 0, input);
throw nvae;
}
switch (alt37) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:6: ( EXISTS )=>u= lhs_exist
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:6: ( EXISTS )=>u= lhs_exist
{
- pushFollow(FOLLOW_lhs_exist_in_lhs_unary1921);
+ pushFollow(FOLLOW_lhs_exist_in_lhs_unary1980);
u=lhs_exist();
_fsp--;
if (failed) return d;
@@ -3153,9 +3221,9 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:803:5: ( NOT )=>u= lhs_not
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:820:5: ( NOT )=>u= lhs_not
{
- pushFollow(FOLLOW_lhs_not_in_lhs_unary1939);
+ pushFollow(FOLLOW_lhs_not_in_lhs_unary1998);
u=lhs_not();
_fsp--;
if (failed) return d;
@@ -3166,9 +3234,9 @@
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:804:5: ( EVAL )=>u= lhs_eval
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:821:5: ( EVAL )=>u= lhs_eval
{
- pushFollow(FOLLOW_lhs_eval_in_lhs_unary1958);
+ pushFollow(FOLLOW_lhs_eval_in_lhs_unary2017);
u=lhs_eval();
_fsp--;
if (failed) return d;
@@ -3179,9 +3247,9 @@
}
break;
case 4 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:805:5: ( FORALL )=>u= lhs_forall
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:822:5: ( FORALL )=>u= lhs_forall
{
- pushFollow(FOLLOW_lhs_forall_in_lhs_unary1977);
+ pushFollow(FOLLOW_lhs_forall_in_lhs_unary2036);
u=lhs_forall();
_fsp--;
if (failed) return d;
@@ -3192,14 +3260,14 @@
}
break;
case 5 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:806:5: ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:823:5: ( LEFT_PAREN )=> LEFT_PAREN u= lhs_or RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary1994); if (failed) return d;
- pushFollow(FOLLOW_lhs_or_in_lhs_unary1998);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_unary2053); if (failed) return d;
+ pushFollow(FOLLOW_lhs_or_in_lhs_unary2057);
u=lhs_or();
_fsp--;
if (failed) return d;
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary2000); if (failed) return d;
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_unary2059); if (failed) return d;
if ( backtracking==0 ) {
d = u;
}
@@ -3207,9 +3275,9 @@
}
break;
case 6 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:807:5: ps= pattern_source
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:824:5: ps= pattern_source
{
- pushFollow(FOLLOW_pattern_source_in_lhs_unary2011);
+ pushFollow(FOLLOW_pattern_source_in_lhs_unary2070);
ps=pattern_source();
_fsp--;
if (failed) return d;
@@ -3222,7 +3290,7 @@
}
- pushFollow(FOLLOW_opt_semicolon_in_lhs_unary2023);
+ pushFollow(FOLLOW_opt_semicolon_in_lhs_unary2082);
opt_semicolon();
_fsp--;
if (failed) return d;
@@ -3242,7 +3310,7 @@
// $ANTLR start pattern_source
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:812:1: pattern_source returns [BaseDescr d] : u= lhs_pattern ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:829:1: pattern_source returns [BaseDescr d] : u= lhs_pattern ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? ;
public final BaseDescr pattern_source() throws RecognitionException {
BaseDescr d = null;
@@ -3259,17 +3327,17 @@
d = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:816:2: (u= lhs_pattern ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:817:3: u= lhs_pattern ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:833:2: (u= lhs_pattern ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:834:3: u= lhs_pattern ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
{
- pushFollow(FOLLOW_lhs_pattern_in_pattern_source2050);
+ pushFollow(FOLLOW_lhs_pattern_in_pattern_source2109);
u=lhs_pattern();
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
d = u;
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:818:3: ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:835:3: ( FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) ) )?
int alt39=2;
int LA39_0 = input.LA(1);
@@ -3278,16 +3346,16 @@
}
switch (alt39) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:4: FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:836:4: FROM ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
{
- match(input,FROM,FOLLOW_FROM_in_pattern_source2062); if (failed) return d;
+ match(input,FROM,FOLLOW_FROM_in_pattern_source2121); if (failed) return d;
if ( backtracking==0 ) {
location.setType(Location.LOCATION_LHS_FROM);
location.setProperty(Location.LOCATION_FROM_CONTENT, "");
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:824:11: ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:841:11: ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )
int alt38=3;
switch ( input.LA(1) ) {
case ACCUMULATE:
@@ -3303,6 +3371,7 @@
case PACKAGE:
case IMPORT:
case FUNCTION:
+ case EVENT:
case ID:
case GLOBAL:
case QUERY:
@@ -3334,19 +3403,19 @@
default:
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("824:11: ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )", 38, 0, input);
+ new NoViableAltException("841:11: ( options {k=1; } : (ac= accumulate_statement ) | (cs= collect_statement ) | (fm= from_statement ) )", 38, 0, input);
throw nvae;
}
switch (alt38) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:825:15: (ac= accumulate_statement )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:842:15: (ac= accumulate_statement )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:825:15: (ac= accumulate_statement )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:825:17: ac= accumulate_statement
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:842:15: (ac= accumulate_statement )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:842:17: ac= accumulate_statement
{
- pushFollow(FOLLOW_accumulate_statement_in_pattern_source2118);
+ pushFollow(FOLLOW_accumulate_statement_in_pattern_source2177);
ac=accumulate_statement();
_fsp--;
if (failed) return d;
@@ -3360,12 +3429,12 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:826:15: (cs= collect_statement )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:15: (cs= collect_statement )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:826:15: (cs= collect_statement )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:826:17: cs= collect_statement
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:15: (cs= collect_statement )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:17: cs= collect_statement
{
- pushFollow(FOLLOW_collect_statement_in_pattern_source2141);
+ pushFollow(FOLLOW_collect_statement_in_pattern_source2200);
cs=collect_statement();
_fsp--;
if (failed) return d;
@@ -3379,12 +3448,12 @@
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:15: (fm= from_statement )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:15: (fm= from_statement )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:15: (fm= from_statement )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:827:17: fm= from_statement
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:15: (fm= from_statement )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:844:17: fm= from_statement
{
- pushFollow(FOLLOW_from_statement_in_pattern_source2165);
+ pushFollow(FOLLOW_from_statement_in_pattern_source2224);
fm=from_statement();
_fsp--;
if (failed) return d;
@@ -3422,12 +3491,12 @@
// $ANTLR start lhs_exist
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:832:1: lhs_exist returns [BaseDescr d] : EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:849:1: lhs_exist returns [BaseDescr d] : EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
public final BaseDescr lhs_exist() throws RecognitionException {
BaseDescr d = null;
- Token EXISTS37=null;
- Token RIGHT_PAREN38=null;
+ Token EXISTS38=null;
+ Token RIGHT_PAREN39=null;
BaseDescr or = null;
BaseDescr pattern = null;
@@ -3437,20 +3506,20 @@
d = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:836:2: ( EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:836:4: EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:853:2: ( EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:853:4: EXISTS ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
{
- EXISTS37=(Token)input.LT(1);
- match(input,EXISTS,FOLLOW_EXISTS_in_lhs_exist2208); if (failed) return d;
+ EXISTS38=(Token)input.LT(1);
+ match(input,EXISTS,FOLLOW_EXISTS_in_lhs_exist2267); if (failed) return d;
if ( backtracking==0 ) {
d = new ExistsDescr( );
- d.setLocation( offset(EXISTS37.getLine()), EXISTS37.getCharPositionInLine() );
- d.setStartCharacter( ((CommonToken)EXISTS37).getStartIndex() );
+ d.setLocation( offset(EXISTS38.getLine()), EXISTS38.getCharPositionInLine() );
+ d.setStartCharacter( ((CommonToken)EXISTS38).getStartIndex() );
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_EXISTS );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:860:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
int alt40=2;
int LA40_0 = input.LA(1);
@@ -3463,29 +3532,29 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("843:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )", 40, 0, input);
+ new NoViableAltException("860:10: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )", 40, 0, input);
throw nvae;
}
switch (alt40) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:860:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:843:14: LEFT_PAREN or= lhs_or RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:860:12: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:860:14: LEFT_PAREN or= lhs_or RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist2228); if (failed) return d;
- pushFollow(FOLLOW_lhs_or_in_lhs_exist2232);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_exist2287); if (failed) return d;
+ pushFollow(FOLLOW_lhs_or_in_lhs_exist2291);
or=lhs_or();
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
if ( or != null ) ((ExistsDescr)d).addDescr( or );
}
- RIGHT_PAREN38=(Token)input.LT(1);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist2262); if (failed) return d;
+ RIGHT_PAREN39=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_exist2321); if (failed) return d;
if ( backtracking==0 ) {
- d.setEndCharacter( ((CommonToken)RIGHT_PAREN38).getStopIndex() );
+ d.setEndCharacter( ((CommonToken)RIGHT_PAREN39).getStopIndex() );
}
}
@@ -3494,9 +3563,9 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:848:12: pattern= lhs_pattern
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:865:12: pattern= lhs_pattern
{
- pushFollow(FOLLOW_lhs_pattern_in_lhs_exist2312);
+ pushFollow(FOLLOW_lhs_pattern_in_lhs_exist2371);
pattern=lhs_pattern();
_fsp--;
if (failed) return d;
@@ -3530,12 +3599,12 @@
// $ANTLR start lhs_not
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:858:1: lhs_not returns [NotDescr d] : NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:875:1: lhs_not returns [NotDescr d] : NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) ;
public final NotDescr lhs_not() throws RecognitionException {
NotDescr d = null;
- Token NOT39=null;
- Token RIGHT_PAREN40=null;
+ Token NOT40=null;
+ Token RIGHT_PAREN41=null;
BaseDescr or = null;
BaseDescr pattern = null;
@@ -3545,20 +3614,20 @@
d = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:862:2: ( NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:862:4: NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:879:2: ( NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:879:4: NOT ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
{
- NOT39=(Token)input.LT(1);
- match(input,NOT,FOLLOW_NOT_in_lhs_not2364); if (failed) return d;
+ NOT40=(Token)input.LT(1);
+ match(input,NOT,FOLLOW_NOT_in_lhs_not2423); if (failed) return d;
if ( backtracking==0 ) {
d = new NotDescr( );
- d.setLocation( offset(NOT39.getLine()), NOT39.getCharPositionInLine() );
- d.setStartCharacter( ((CommonToken)NOT39).getStartIndex() );
+ d.setLocation( offset(NOT40.getLine()), NOT40.getCharPositionInLine() );
+ d.setStartCharacter( ((CommonToken)NOT40).getStartIndex() );
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION_NOT );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:869:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:886:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )
int alt41=2;
int LA41_0 = input.LA(1);
@@ -3571,29 +3640,29 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("869:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )", 41, 0, input);
+ new NoViableAltException("886:3: ( ( LEFT_PAREN or= lhs_or RIGHT_PAREN ) | pattern= lhs_pattern )", 41, 0, input);
throw nvae;
}
switch (alt41) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:869:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:886:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:869:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:869:7: LEFT_PAREN or= lhs_or RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:886:5: ( LEFT_PAREN or= lhs_or RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:886:7: LEFT_PAREN or= lhs_or RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not2377); if (failed) return d;
- pushFollow(FOLLOW_lhs_or_in_lhs_not2381);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_not2436); if (failed) return d;
+ pushFollow(FOLLOW_lhs_or_in_lhs_not2440);
or=lhs_or();
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
if ( or != null ) d.addDescr( or );
}
- RIGHT_PAREN40=(Token)input.LT(1);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not2412); if (failed) return d;
+ RIGHT_PAREN41=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_not2471); if (failed) return d;
if ( backtracking==0 ) {
- d.setEndCharacter( ((CommonToken)RIGHT_PAREN40).getStopIndex() );
+ d.setEndCharacter( ((CommonToken)RIGHT_PAREN41).getStopIndex() );
}
}
@@ -3602,9 +3671,9 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:875:3: pattern= lhs_pattern
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:892:3: pattern= lhs_pattern
{
- pushFollow(FOLLOW_lhs_pattern_in_lhs_not2449);
+ pushFollow(FOLLOW_lhs_pattern_in_lhs_not2508);
pattern=lhs_pattern();
_fsp--;
if (failed) return d;
@@ -3638,11 +3707,11 @@
// $ANTLR start lhs_eval
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:885:1: lhs_eval returns [BaseDescr d] : EVAL c= paren_chunk ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:902:1: lhs_eval returns [BaseDescr d] : EVAL c= paren_chunk ;
public final BaseDescr lhs_eval() throws RecognitionException {
BaseDescr d = null;
- Token EVAL41=null;
+ Token EVAL42=null;
paren_chunk_return c = null;
@@ -3650,27 +3719,27 @@
d = new EvalDescr( );
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:889:2: ( EVAL c= paren_chunk )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:890:3: EVAL c= paren_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:906:2: ( EVAL c= paren_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:907:3: EVAL c= paren_chunk
{
- EVAL41=(Token)input.LT(1);
- match(input,EVAL,FOLLOW_EVAL_in_lhs_eval2495); if (failed) return d;
+ EVAL42=(Token)input.LT(1);
+ match(input,EVAL,FOLLOW_EVAL_in_lhs_eval2554); if (failed) return d;
if ( backtracking==0 ) {
location.setType( Location.LOCATION_LHS_INSIDE_EVAL );
}
- pushFollow(FOLLOW_paren_chunk_in_lhs_eval2506);
+ pushFollow(FOLLOW_paren_chunk_in_lhs_eval2565);
c=paren_chunk();
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
- d.setStartCharacter( ((CommonToken)EVAL41).getStartIndex() );
+ d.setStartCharacter( ((CommonToken)EVAL42).getStartIndex() );
if( input.toString(c.start,c.stop) != null ) {
this.location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
String body = safeSubstring( input.toString(c.start,c.stop), 1, input.toString(c.start,c.stop).length()-1 );
- checkTrailingSemicolon( body, offset(EVAL41.getLine()) );
+ checkTrailingSemicolon( body, offset(EVAL42.getLine()) );
((EvalDescr) d).setContent( body );
location.setProperty(Location.LOCATION_EVAL_CONTENT, body);
}
@@ -3695,12 +3764,12 @@
// $ANTLR start lhs_forall
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:910:1: lhs_forall returns [ForallDescr d] : FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:927:1: lhs_forall returns [ForallDescr d] : FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN ;
public final ForallDescr lhs_forall() throws RecognitionException {
ForallDescr d = null;
- Token FORALL42=null;
- Token RIGHT_PAREN43=null;
+ Token FORALL43=null;
+ Token RIGHT_PAREN44=null;
BaseDescr base = null;
BaseDescr pattern = null;
@@ -3710,25 +3779,25 @@
d = factory.createForall();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:914:2: ( FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:914:4: FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:931:2: ( FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:931:4: FORALL LEFT_PAREN base= lhs_pattern (pattern= lhs_pattern )* RIGHT_PAREN
{
- FORALL42=(Token)input.LT(1);
- match(input,FORALL,FOLLOW_FORALL_in_lhs_forall2532); if (failed) return d;
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall2534); if (failed) return d;
- pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2538);
+ FORALL43=(Token)input.LT(1);
+ match(input,FORALL,FOLLOW_FORALL_in_lhs_forall2591); if (failed) return d;
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_lhs_forall2593); if (failed) return d;
+ pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2597);
base=lhs_pattern();
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
- d.setStartCharacter( ((CommonToken)FORALL42).getStartIndex() );
+ d.setStartCharacter( ((CommonToken)FORALL43).getStartIndex() );
// adding the base pattern
d.addDescr( base );
- d.setLocation( offset(FORALL42.getLine()), FORALL42.getCharPositionInLine() );
+ d.setLocation( offset(FORALL43.getLine()), FORALL43.getCharPositionInLine() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:921:3: (pattern= lhs_pattern )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:938:3: (pattern= lhs_pattern )*
loop42:
do {
int alt42=2;
@@ -3741,9 +3810,9 @@
switch (alt42) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:921:5: pattern= lhs_pattern
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:938:5: pattern= lhs_pattern
{
- pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2553);
+ pushFollow(FOLLOW_lhs_pattern_in_lhs_forall2612);
pattern=lhs_pattern();
_fsp--;
if (failed) return d;
@@ -3762,11 +3831,11 @@
}
} while (true);
- RIGHT_PAREN43=(Token)input.LT(1);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall2569); if (failed) return d;
+ RIGHT_PAREN44=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_lhs_forall2628); if (failed) return d;
if ( backtracking==0 ) {
- d.setEndCharacter( ((CommonToken)RIGHT_PAREN43).getStopIndex() );
+ d.setEndCharacter( ((CommonToken)RIGHT_PAREN44).getStopIndex() );
}
@@ -3785,7 +3854,7 @@
// $ANTLR start lhs_pattern
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:933:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:950:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );
public final BaseDescr lhs_pattern() throws RecognitionException {
BaseDescr d = null;
@@ -3796,14 +3865,14 @@
d =null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:940:2: (f= fact_binding | f= fact[null] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:957:2: (f= fact_binding | f= fact[null] )
int alt43=2;
int LA43_0 = input.LA(1);
if ( (LA43_0==ID) ) {
int LA43_1 = input.LA(2);
- if ( (LA43_1==74) ) {
+ if ( (LA43_1==76) ) {
alt43=1;
}
else if ( (LA43_1==DOT||LA43_1==LEFT_PAREN||LA43_1==LEFT_SQUARE) ) {
@@ -3812,7 +3881,7 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("933:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );", 43, 1, input);
+ new NoViableAltException("950:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );", 43, 1, input);
throw nvae;
}
@@ -3820,15 +3889,15 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("933:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );", 43, 0, input);
+ new NoViableAltException("950:1: lhs_pattern returns [BaseDescr d] : (f= fact_binding | f= fact[null] );", 43, 0, input);
throw nvae;
}
switch (alt43) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:940:4: f= fact_binding
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:957:4: f= fact_binding
{
- pushFollow(FOLLOW_fact_binding_in_lhs_pattern2602);
+ pushFollow(FOLLOW_fact_binding_in_lhs_pattern2661);
f=fact_binding();
_fsp--;
if (failed) return d;
@@ -3836,9 +3905,9 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:941:4: f= fact[null]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:958:4: f= fact[null]
{
- pushFollow(FOLLOW_fact_in_lhs_pattern2610);
+ pushFollow(FOLLOW_fact_in_lhs_pattern2669);
f=fact(null);
_fsp--;
if (failed) return d;
@@ -3865,7 +3934,7 @@
// $ANTLR start from_statement
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:944:1: from_statement returns [FromDescr d] : ds= from_source[$d] ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:1: from_statement returns [FromDescr d] : ds= from_source[$d] ;
public final FromDescr from_statement() throws RecognitionException {
FromDescr d = null;
@@ -3876,10 +3945,10 @@
d =factory.createFrom();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:948:2: (ds= from_source[$d] )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:949:2: ds= from_source[$d]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:965:2: (ds= from_source[$d] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:966:2: ds= from_source[$d]
{
- pushFollow(FOLLOW_from_source_in_from_statement2637);
+ pushFollow(FOLLOW_from_source_in_from_statement2696);
ds=from_source(d);
_fsp--;
if (failed) return d;
@@ -3904,13 +3973,13 @@
// $ANTLR start accumulate_statement
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:956:1: accumulate_statement returns [AccumulateDescr d] : ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:973:1: accumulate_statement returns [AccumulateDescr d] : ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN ;
public final AccumulateDescr accumulate_statement() throws RecognitionException {
AccumulateDescr d = null;
Token id=null;
- Token ACCUMULATE44=null;
- Token RIGHT_PAREN45=null;
+ Token ACCUMULATE45=null;
+ Token RIGHT_PAREN46=null;
BaseDescr inputCE = null;
paren_chunk_return text = null;
@@ -3920,24 +3989,24 @@
d = factory.createAccumulate();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:960:2: ( ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:961:10: ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:977:2: ( ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:978:10: ACCUMULATE LEFT_PAREN inputCE= lhs_or ( COMMA )? ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) ) RIGHT_PAREN
{
- ACCUMULATE44=(Token)input.LT(1);
- match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement2674); if (failed) return d;
+ ACCUMULATE45=(Token)input.LT(1);
+ match(input,ACCUMULATE,FOLLOW_ACCUMULATE_in_accumulate_statement2733); if (failed) return d;
if ( backtracking==0 ) {
- d.setLocation( offset(ACCUMULATE44.getLine()), ACCUMULATE44.getCharPositionInLine() );
- d.setStartCharacter( ((CommonToken)ACCUMULATE44).getStartIndex() );
+ d.setLocation( offset(ACCUMULATE45.getLine()), ACCUMULATE45.getCharPositionInLine() );
+ d.setStartCharacter( ((CommonToken)ACCUMULATE45).getStartIndex() );
location.setType( Location.LOCATION_LHS_FROM_ACCUMULATE );
}
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement2684); if (failed) return d;
- pushFollow(FOLLOW_lhs_or_in_accumulate_statement2688);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_accumulate_statement2743); if (failed) return d;
+ pushFollow(FOLLOW_lhs_or_in_accumulate_statement2747);
inputCE=lhs_or();
_fsp--;
if (failed) return d;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:967:29: ( COMMA )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:984:29: ( COMMA )?
int alt44=2;
int LA44_0 = input.LA(1);
@@ -3946,9 +4015,9 @@
}
switch (alt44) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:967:29: COMMA
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:984:29: COMMA
{
- match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2690); if (failed) return d;
+ match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2749); if (failed) return d;
}
break;
@@ -3960,7 +4029,7 @@
d.setInput( inputCE );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:988:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )
int alt49=2;
int LA49_0 = input.LA(1);
@@ -3973,28 +4042,28 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("971:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )", 49, 0, input);
+ new NoViableAltException("988:3: ( ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk ) | (id= ID text= paren_chunk ) )", 49, 0, input);
throw nvae;
}
switch (alt49) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:988:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:971:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:972:4: INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:988:5: ( INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:989:4: INIT text= paren_chunk ( COMMA )? ACTION text= paren_chunk ( COMMA )? ( REVERSE text= paren_chunk ( COMMA )? )? RESULT text= paren_chunk
{
- match(input,INIT,FOLLOW_INIT_in_accumulate_statement2708); if (failed) return d;
+ match(input,INIT,FOLLOW_INIT_in_accumulate_statement2767); if (failed) return d;
if ( backtracking==0 ) {
location.setType( Location.LOCATION_LHS_FROM_ACCUMULATE_INIT );
}
- pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2721);
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2780);
text=paren_chunk();
_fsp--;
if (failed) return d;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:21: ( COMMA )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:993:21: ( COMMA )?
int alt45=2;
int LA45_0 = input.LA(1);
@@ -4003,9 +4072,9 @@
}
switch (alt45) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:976:21: COMMA
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:993:21: COMMA
{
- match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2723); if (failed) return d;
+ match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2782); if (failed) return d;
}
break;
@@ -4021,12 +4090,12 @@
}
}
- match(input,ACTION,FOLLOW_ACTION_in_accumulate_statement2734); if (failed) return d;
- pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2738);
+ match(input,ACTION,FOLLOW_ACTION_in_accumulate_statement2793); if (failed) return d;
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2797);
text=paren_chunk();
_fsp--;
if (failed) return d;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:984:28: ( COMMA )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1001:28: ( COMMA )?
int alt46=2;
int LA46_0 = input.LA(1);
@@ -4035,9 +4104,9 @@
}
switch (alt46) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:984:28: COMMA
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1001:28: COMMA
{
- match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2740); if (failed) return d;
+ match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2799); if (failed) return d;
}
break;
@@ -4053,7 +4122,7 @@
}
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:4: ( REVERSE text= paren_chunk ( COMMA )? )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1009:4: ( REVERSE text= paren_chunk ( COMMA )? )?
int alt48=2;
int LA48_0 = input.LA(1);
@@ -4062,14 +4131,14 @@
}
switch (alt48) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:6: REVERSE text= paren_chunk ( COMMA )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1009:6: REVERSE text= paren_chunk ( COMMA )?
{
- match(input,REVERSE,FOLLOW_REVERSE_in_accumulate_statement2753); if (failed) return d;
- pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2757);
+ match(input,REVERSE,FOLLOW_REVERSE_in_accumulate_statement2812); if (failed) return d;
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2816);
text=paren_chunk();
_fsp--;
if (failed) return d;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:31: ( COMMA )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1009:31: ( COMMA )?
int alt47=2;
int LA47_0 = input.LA(1);
@@ -4078,9 +4147,9 @@
}
switch (alt47) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:992:31: COMMA
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1009:31: COMMA
{
- match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2759); if (failed) return d;
+ match(input,COMMA,FOLLOW_COMMA_in_accumulate_statement2818); if (failed) return d;
}
break;
@@ -4102,8 +4171,8 @@
}
- match(input,RESULT,FOLLOW_RESULT_in_accumulate_statement2776); if (failed) return d;
- pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2780);
+ match(input,RESULT,FOLLOW_RESULT_in_accumulate_statement2835); if (failed) return d;
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2839);
text=paren_chunk();
_fsp--;
if (failed) return d;
@@ -4122,14 +4191,14 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1010:3: (id= ID text= paren_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1027:3: (id= ID text= paren_chunk )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1010:3: (id= ID text= paren_chunk )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1011:4: id= ID text= paren_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1027:3: (id= ID text= paren_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1028:4: id= ID text= paren_chunk
{
id=(Token)input.LT(1);
- match(input,ID,FOLLOW_ID_in_accumulate_statement2806); if (failed) return d;
- pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2810);
+ match(input,ID,FOLLOW_ID_in_accumulate_statement2865); if (failed) return d;
+ pushFollow(FOLLOW_paren_chunk_in_accumulate_statement2869);
text=paren_chunk();
_fsp--;
if (failed) return d;
@@ -4154,12 +4223,12 @@
}
- RIGHT_PAREN45=(Token)input.LT(1);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement2827); if (failed) return d;
+ RIGHT_PAREN46=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_accumulate_statement2886); if (failed) return d;
if ( backtracking==0 ) {
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
- d.setEndCharacter( ((CommonToken)RIGHT_PAREN45).getStopIndex() );
+ d.setEndCharacter( ((CommonToken)RIGHT_PAREN46).getStopIndex() );
}
@@ -4178,7 +4247,7 @@
// $ANTLR start from_source
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1029:4: from_source[FromDescr from] returns [DeclarativeInvokerDescr ds] : ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1046:4: from_source[FromDescr from] returns [DeclarativeInvokerDescr ds] : ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? ;
public final DeclarativeInvokerDescr from_source(FromDescr from) throws RecognitionException {
DeclarativeInvokerDescr ds = null;
@@ -4193,10 +4262,10 @@
FunctionCallDescr fc = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1035:2: (ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1035:4: ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1052:2: (ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1052:4: ident= identifier ( options {k=1; } : args= paren_chunk )? ( expression_chain[$from, ad] )?
{
- pushFollow(FOLLOW_identifier_in_from_source2855);
+ pushFollow(FOLLOW_identifier_in_from_source2914);
ident=identifier();
_fsp--;
if (failed) return ds;
@@ -4210,7 +4279,7 @@
location.setProperty(Location.LOCATION_FROM_CONTENT, ident.start.getText());
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1044:3: ( options {k=1; } : args= paren_chunk )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1061:3: ( options {k=1; } : args= paren_chunk )?
int alt50=2;
int LA50_0 = input.LA(1);
@@ -4219,9 +4288,9 @@
}
switch (alt50) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1051:5: args= paren_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1068:5: args= paren_chunk
{
- pushFollow(FOLLOW_paren_chunk_in_from_source2883);
+ pushFollow(FOLLOW_paren_chunk_in_from_source2942);
args=paren_chunk();
_fsp--;
if (failed) return ds;
@@ -4245,7 +4314,7 @@
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1065:3: ( expression_chain[$from, ad] )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1082:3: ( expression_chain[$from, ad] )?
int alt51=2;
int LA51_0 = input.LA(1);
@@ -4254,9 +4323,9 @@
}
switch (alt51) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1065:3: expression_chain[$from, ad]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1082:3: expression_chain[$from, ad]
{
- pushFollow(FOLLOW_expression_chain_in_from_source2896);
+ pushFollow(FOLLOW_expression_chain_in_from_source2955);
expression_chain(from, ad);
_fsp--;
if (failed) return ds;
@@ -4290,7 +4359,7 @@
// $ANTLR start expression_chain
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1079:1: expression_chain[FromDescr from, AccessorDescr as] : ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1096:1: expression_chain[FromDescr from, AccessorDescr as] : ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) ;
public final void expression_chain(FromDescr from, AccessorDescr as) throws RecognitionException {
identifier_return field = null;
@@ -4304,14 +4373,14 @@
MethodAccessDescr ma = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1084:2: ( ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1085:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1101:2: ( ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1102:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1085:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1085:4: DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1102:2: ( DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1102:4: DOT field= identifier ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )? ( expression_chain[from, as] )?
{
- match(input,DOT,FOLLOW_DOT_in_expression_chain2931); if (failed) return ;
- pushFollow(FOLLOW_identifier_in_expression_chain2935);
+ match(input,DOT,FOLLOW_DOT_in_expression_chain2990); if (failed) return ;
+ pushFollow(FOLLOW_identifier_in_expression_chain2994);
field=identifier();
_fsp--;
if (failed) return ;
@@ -4323,14 +4392,14 @@
fa.setEndCharacter( ((CommonToken)((Token)field.start)).getStopIndex() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1092:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1109:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?
int alt52=3;
alt52 = dfa52.predict(input);
switch (alt52) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1093:6: ( LEFT_SQUARE )=>sqarg= square_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1110:6: ( LEFT_SQUARE )=>sqarg= square_chunk
{
- pushFollow(FOLLOW_square_chunk_in_expression_chain2966);
+ pushFollow(FOLLOW_square_chunk_in_expression_chain3025);
sqarg=square_chunk();
_fsp--;
if (failed) return ;
@@ -4344,9 +4413,9 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1099:6: ( LEFT_PAREN )=>paarg= paren_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1116:6: ( LEFT_PAREN )=>paarg= paren_chunk
{
- pushFollow(FOLLOW_paren_chunk_in_expression_chain2999);
+ pushFollow(FOLLOW_paren_chunk_in_expression_chain3058);
paarg=paren_chunk();
_fsp--;
if (failed) return ;
@@ -4364,7 +4433,7 @@
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1107:4: ( expression_chain[from, as] )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1124:4: ( expression_chain[from, as] )?
int alt53=2;
int LA53_0 = input.LA(1);
@@ -4373,9 +4442,9 @@
}
switch (alt53) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1107:4: expression_chain[from, as]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1124:4: expression_chain[from, as]
{
- pushFollow(FOLLOW_expression_chain_in_expression_chain3014);
+ pushFollow(FOLLOW_expression_chain_in_expression_chain3073);
expression_chain(from, as);
_fsp--;
if (failed) return ;
@@ -4412,12 +4481,12 @@
// $ANTLR start collect_statement
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1121:1: collect_statement returns [CollectDescr d] : COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1138:1: collect_statement returns [CollectDescr d] : COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN ;
public final CollectDescr collect_statement() throws RecognitionException {
CollectDescr d = null;
- Token COLLECT46=null;
- Token RIGHT_PAREN47=null;
+ Token COLLECT47=null;
+ Token RIGHT_PAREN48=null;
BaseDescr pattern = null;
@@ -4425,29 +4494,29 @@
d = factory.createCollect();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1125:2: ( COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1126:10: COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1142:2: ( COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1143:10: COLLECT LEFT_PAREN pattern= pattern_source RIGHT_PAREN
{
- COLLECT46=(Token)input.LT(1);
- match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement3065); if (failed) return d;
+ COLLECT47=(Token)input.LT(1);
+ match(input,COLLECT,FOLLOW_COLLECT_in_collect_statement3124); if (failed) return d;
if ( backtracking==0 ) {
- d.setLocation( offset(COLLECT46.getLine()), COLLECT46.getCharPositionInLine() );
- d.setStartCharacter( ((CommonToken)COLLECT46).getStartIndex() );
+ d.setLocation( offset(COLLECT47.getLine()), COLLECT47.getCharPositionInLine() );
+ d.setStartCharacter( ((CommonToken)COLLECT47).getStartIndex() );
location.setType( Location.LOCATION_LHS_FROM_COLLECT );
}
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement3075); if (failed) return d;
- pushFollow(FOLLOW_pattern_source_in_collect_statement3079);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_collect_statement3134); if (failed) return d;
+ pushFollow(FOLLOW_pattern_source_in_collect_statement3138);
pattern=pattern_source();
_fsp--;
if (failed) return d;
- RIGHT_PAREN47=(Token)input.LT(1);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement3081); if (failed) return d;
+ RIGHT_PAREN48=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_collect_statement3140); if (failed) return d;
if ( backtracking==0 ) {
d.setInputPattern( (PatternDescr) pattern );
- d.setEndCharacter( ((CommonToken)RIGHT_PAREN47).getStopIndex() );
+ d.setEndCharacter( ((CommonToken)RIGHT_PAREN48).getStopIndex() );
location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
}
@@ -4467,11 +4536,11 @@
// $ANTLR start fact_binding
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1140:1: fact_binding returns [BaseDescr d] : ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1157:1: fact_binding returns [BaseDescr d] : ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) ;
public final BaseDescr fact_binding() throws RecognitionException {
BaseDescr d = null;
- Token ID48=null;
+ Token ID49=null;
BaseDescr fe = null;
BaseDescr left = null;
@@ -4484,20 +4553,20 @@
OrDescr or = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1145:3: ( ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1146:4: ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1162:3: ( ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1163:4: ID ':' (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
{
- ID48=(Token)input.LT(1);
- match(input,ID,FOLLOW_ID_in_fact_binding3113); if (failed) return d;
- match(input,74,FOLLOW_74_in_fact_binding3115); if (failed) return d;
+ ID49=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_fact_binding3172); if (failed) return d;
+ match(input,76,FOLLOW_76_in_fact_binding3174); if (failed) return d;
if ( backtracking==0 ) {
// handling incomplete parsing
d = new PatternDescr( );
- ((PatternDescr) d).setIdentifier( ID48.getText() );
+ ((PatternDescr) d).setIdentifier( ID49.getText() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1152:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1169:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )
int alt55=2;
int LA55_0 = input.LA(1);
@@ -4510,16 +4579,16 @@
else {
if (backtracking>0) {failed=true; return d;}
NoViableAltException nvae =
- new NoViableAltException("1152:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )", 55, 0, input);
+ new NoViableAltException("1169:3: (fe= fact[$ID.text] | LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN )", 55, 0, input);
throw nvae;
}
switch (alt55) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1152:5: fe= fact[$ID.text]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1169:5: fe= fact[$ID.text]
{
- pushFollow(FOLLOW_fact_in_fact_binding3129);
- fe=fact(ID48.getText());
+ pushFollow(FOLLOW_fact_in_fact_binding3188);
+ fe=fact(ID49.getText());
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
@@ -4527,7 +4596,7 @@
// override previously instantiated pattern
d =fe;
if( d != null ) {
- d.setStartCharacter( ((CommonToken)ID48).getStartIndex() );
+ d.setStartCharacter( ((CommonToken)ID49).getStartIndex() );
}
}
@@ -4535,11 +4604,11 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1161:4: LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1178:4: LEFT_PAREN left= fact[$ID.text] ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )* RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_binding3145); if (failed) return d;
- pushFollow(FOLLOW_fact_in_fact_binding3149);
- left=fact(ID48.getText());
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact_binding3204); if (failed) return d;
+ pushFollow(FOLLOW_fact_in_fact_binding3208);
+ left=fact(ID49.getText());
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
@@ -4547,11 +4616,11 @@
// override previously instantiated pattern
d =left;
if( d != null ) {
- d.setStartCharacter( ((CommonToken)ID48).getStartIndex() );
+ d.setStartCharacter( ((CommonToken)ID49).getStartIndex() );
}
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1169:4: ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1186:4: ( ( OR | DOUBLE_PIPE ) right= fact[$ID.text] )*
loop54:
do {
int alt54=2;
@@ -4564,7 +4633,7 @@
switch (alt54) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1169:6: ( OR | DOUBLE_PIPE ) right= fact[$ID.text]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1186:6: ( OR | DOUBLE_PIPE ) right= fact[$ID.text]
{
if ( (input.LA(1)>=OR && input.LA(1)<=DOUBLE_PIPE) ) {
input.consume();
@@ -4574,11 +4643,11 @@
if (backtracking>0) {failed=true; return d;}
MismatchedSetException mse =
new MismatchedSetException(null,input);
- recoverFromMismatchedSet(input,mse,FOLLOW_set_in_fact_binding3162); throw mse;
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_fact_binding3221); throw mse;
}
- pushFollow(FOLLOW_fact_in_fact_binding3174);
- right=fact(ID48.getText());
+ pushFollow(FOLLOW_fact_in_fact_binding3233);
+ right=fact(ID49.getText());
_fsp--;
if (failed) return d;
if ( backtracking==0 ) {
@@ -4600,7 +4669,7 @@
}
} while (true);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_binding3192); if (failed) return d;
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact_binding3251); if (failed) return d;
}
break;
@@ -4623,12 +4692,12 @@
// $ANTLR start fact
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1184:1: fact[String ident] returns [BaseDescr d] : id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1201:1: fact[String ident] returns [BaseDescr d] : id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? ;
public final BaseDescr fact(String ident) throws RecognitionException {
BaseDescr d = null;
- Token LEFT_PAREN49=null;
- Token RIGHT_PAREN50=null;
+ Token LEFT_PAREN50=null;
+ Token RIGHT_PAREN51=null;
qualified_id_return id = null;
@@ -4637,8 +4706,8 @@
PatternDescr pattern = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1189:3: (id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1190:11: id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1206:3: (id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1207:11: id= qualified_id LEFT_PAREN ( constraints[pattern] )? RIGHT_PAREN ( EOF )?
{
if ( backtracking==0 ) {
@@ -4649,7 +4718,7 @@
d = pattern;
}
- pushFollow(FOLLOW_qualified_id_in_fact3247);
+ pushFollow(FOLLOW_qualified_id_in_fact3306);
id=qualified_id();
_fsp--;
if (failed) return d;
@@ -4662,29 +4731,29 @@
}
}
- LEFT_PAREN49=(Token)input.LT(1);
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact3257); if (failed) return d;
+ LEFT_PAREN50=(Token)input.LT(1);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_fact3316); if (failed) return d;
if ( backtracking==0 ) {
location.setType( Location.LOCATION_LHS_INSIDE_CONDITION_START );
location.setProperty( Location.LOCATION_PROPERTY_CLASS_NAME, id.text );
- pattern.setLocation( offset(LEFT_PAREN49.getLine()), LEFT_PAREN49.getCharPositionInLine() );
- pattern.setLeftParentCharacter( ((CommonToken)LEFT_PAREN49).getStartIndex() );
+ pattern.setLocation( offset(LEFT_PAREN50.getLine()), LEFT_PAREN50.getCharPositionInLine() );
+ pattern.setLeftParentCharacter( ((CommonToken)LEFT_PAREN50).getStartIndex() );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1213:4: ( constraints[pattern] )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1230:4: ( constraints[pattern] )?
int alt56=2;
int LA56_0 = input.LA(1);
- if ( ((LA56_0>=PACKAGE && LA56_0<=ID)||(LA56_0>=GLOBAL && LA56_0<=LEFT_PAREN)||(LA56_0>=QUERY && LA56_0<=ATTRIBUTES)||LA56_0==ENABLED||LA56_0==SALIENCE||(LA56_0>=DURATION && LA56_0<=DIALECT)||LA56_0==FROM||LA56_0==EVAL||(LA56_0>=INIT && LA56_0<=RESULT)||(LA56_0>=CONTAINS && LA56_0<=IN)||LA56_0==THEN) ) {
+ if ( ((LA56_0>=PACKAGE && LA56_0<=ID)||(LA56_0>=GLOBAL && LA56_0<=LEFT_PAREN)||(LA56_0>=QUERY && LA56_0<=ATTRIBUTES)||LA56_0==ENABLED||LA56_0==SALIENCE||(LA56_0>=DURATION && LA56_0<=DIALECT)||LA56_0==FROM||LA56_0==EVAL||(LA56_0>=INIT && LA56_0<=RESULT)||(LA56_0>=CONTAINS && LA56_0<=MEMBEROF)||LA56_0==IN||LA56_0==THEN) ) {
alt56=1;
}
switch (alt56) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1213:4: constraints[pattern]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1230:4: constraints[pattern]
{
- pushFollow(FOLLOW_constraints_in_fact3269);
+ pushFollow(FOLLOW_constraints_in_fact3328);
constraints(pattern);
_fsp--;
if (failed) return d;
@@ -4694,19 +4763,19 @@
}
- RIGHT_PAREN50=(Token)input.LT(1);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact3276); if (failed) return d;
+ RIGHT_PAREN51=(Token)input.LT(1);
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_fact3335); if (failed) return d;
if ( backtracking==0 ) {
- if( ")".equals( RIGHT_PAREN50.getText() ) ) {
+ if( ")".equals( RIGHT_PAREN51.getText() ) ) {
this.location.setType( Location.LOCATION_LHS_BEGIN_OF_CONDITION );
- pattern.setEndLocation( offset(RIGHT_PAREN50.getLine()), RIGHT_PAREN50.getCharPositionInLine() );
- pattern.setEndCharacter( ((CommonToken)RIGHT_PAREN50).getStopIndex() );
- pattern.setRightParentCharacter( ((CommonToken)RIGHT_PAREN50).getStartIndex() );
+ pattern.setEndLocation( offset(RIGHT_PAREN51.getLine()), RIGHT_PAREN51.getCharPositionInLine() );
+ pattern.setEndCharacter( ((CommonToken)RIGHT_PAREN51).getStopIndex() );
+ pattern.setRightParentCharacter( ((CommonToken)RIGHT_PAREN51).getStartIndex() );
}
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1223:4: ( EOF )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1240:4: ( EOF )?
int alt57=2;
int LA57_0 = input.LA(1);
@@ -4715,9 +4784,9 @@
}
switch (alt57) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1223:4: EOF
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1240:4: EOF
{
- match(input,EOF,FOLLOW_EOF_in_fact3285); if (failed) return d;
+ match(input,EOF,FOLLOW_EOF_in_fact3344); if (failed) return d;
}
break;
@@ -4740,17 +4809,17 @@
// $ANTLR start constraints
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1227:1: constraints[PatternDescr pattern] : constraint[$pattern] ( COMMA constraint[$pattern] )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1244:1: constraints[PatternDescr pattern] : constraint[$pattern] ( COMMA constraint[$pattern] )* ;
public final void constraints(PatternDescr pattern) throws RecognitionException {
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:2: ( constraint[$pattern] ( COMMA constraint[$pattern] )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1228:4: constraint[$pattern] ( COMMA constraint[$pattern] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1245:2: ( constraint[$pattern] ( COMMA constraint[$pattern] )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1245:4: constraint[$pattern] ( COMMA constraint[$pattern] )*
{
- pushFollow(FOLLOW_constraint_in_constraints3303);
+ pushFollow(FOLLOW_constraint_in_constraints3362);
constraint(pattern);
_fsp--;
if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:3: ( COMMA constraint[$pattern] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1246:3: ( COMMA constraint[$pattern] )*
loop58:
do {
int alt58=2;
@@ -4763,13 +4832,13 @@
switch (alt58) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1229:5: COMMA constraint[$pattern]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1246:5: COMMA constraint[$pattern]
{
- match(input,COMMA,FOLLOW_COMMA_in_constraints3310); if (failed) return ;
+ match(input,COMMA,FOLLOW_COMMA_in_constraints3369); if (failed) return ;
if ( backtracking==0 ) {
location.setType( Location.LOCATION_LHS_INSIDE_CONDITION_START );
}
- pushFollow(FOLLOW_constraint_in_constraints3319);
+ pushFollow(FOLLOW_constraint_in_constraints3378);
constraint(pattern);
_fsp--;
if (failed) return ;
@@ -4798,7 +4867,7 @@
// $ANTLR start constraint
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1234:1: constraint[PatternDescr pattern] : or_constr[top] ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1251:1: constraint[PatternDescr pattern] : or_constr[top] ;
public final void constraint(PatternDescr pattern) throws RecognitionException {
ConditionalElementDescr top = null;
@@ -4806,15 +4875,15 @@
location.setProperty(Location.LOCATION_PROPERTY_PROPERTY_NAME, input.LT(1).getText() );
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1240:2: ( or_constr[top] )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1241:3: or_constr[top]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1257:2: ( or_constr[top] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1258:3: or_constr[top]
{
if ( backtracking==0 ) {
top = pattern.getConstraint();
}
- pushFollow(FOLLOW_or_constr_in_constraint3352);
+ pushFollow(FOLLOW_or_constr_in_constraint3411);
or_constr(top);
_fsp--;
if (failed) return ;
@@ -4834,20 +4903,20 @@
// $ANTLR start or_constr
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1247:1: or_constr[ConditionalElementDescr base] : and_constr[or] ( DOUBLE_PIPE and_constr[or] )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1264:1: or_constr[ConditionalElementDescr base] : and_constr[or] ( DOUBLE_PIPE and_constr[or] )* ;
public final void or_constr(ConditionalElementDescr base) throws RecognitionException {
OrDescr or = new OrDescr();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1251:2: ( and_constr[or] ( DOUBLE_PIPE and_constr[or] )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1252:3: and_constr[or] ( DOUBLE_PIPE and_constr[or] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1268:2: ( and_constr[or] ( DOUBLE_PIPE and_constr[or] )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1269:3: and_constr[or] ( DOUBLE_PIPE and_constr[or] )*
{
- pushFollow(FOLLOW_and_constr_in_or_constr3375);
+ pushFollow(FOLLOW_and_constr_in_or_constr3434);
and_constr(or);
_fsp--;
if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1253:3: ( DOUBLE_PIPE and_constr[or] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1270:3: ( DOUBLE_PIPE and_constr[or] )*
loop59:
do {
int alt59=2;
@@ -4860,15 +4929,15 @@
switch (alt59) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1253:5: DOUBLE_PIPE and_constr[or]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1270:5: DOUBLE_PIPE and_constr[or]
{
- match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_constr3383); if (failed) return ;
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_constr3442); if (failed) return ;
if ( backtracking==0 ) {
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
}
- pushFollow(FOLLOW_and_constr_in_or_constr3392);
+ pushFollow(FOLLOW_and_constr_in_or_constr3451);
and_constr(or);
_fsp--;
if (failed) return ;
@@ -4906,20 +4975,20 @@
// $ANTLR start and_constr
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1268:1: and_constr[ConditionalElementDescr base] : unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1285:1: and_constr[ConditionalElementDescr base] : unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* ;
public final void and_constr(ConditionalElementDescr base) throws RecognitionException {
AndDescr and = new AndDescr();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1272:2: ( unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1273:3: unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1289:2: ( unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1290:3: unary_constr[and] ( DOUBLE_AMPER unary_constr[and] )*
{
- pushFollow(FOLLOW_unary_constr_in_and_constr3424);
+ pushFollow(FOLLOW_unary_constr_in_and_constr3483);
unary_constr(and);
_fsp--;
if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1274:3: ( DOUBLE_AMPER unary_constr[and] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1291:3: ( DOUBLE_AMPER unary_constr[and] )*
loop60:
do {
int alt60=2;
@@ -4932,15 +5001,15 @@
switch (alt60) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1274:5: DOUBLE_AMPER unary_constr[and]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1291:5: DOUBLE_AMPER unary_constr[and]
{
- match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_constr3432); if (failed) return ;
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_constr3491); if (failed) return ;
if ( backtracking==0 ) {
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_START);
}
- pushFollow(FOLLOW_unary_constr_in_and_constr3441);
+ pushFollow(FOLLOW_unary_constr_in_and_constr3500);
unary_constr(and);
_fsp--;
if (failed) return ;
@@ -4978,18 +5047,19 @@
// $ANTLR start unary_constr
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1289:1: unary_constr[ConditionalElementDescr base] : ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1306:1: unary_constr[ConditionalElementDescr base] : ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) ;
public final void unary_constr(ConditionalElementDescr base) throws RecognitionException {
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1290:2: ( ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1291:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1307:2: ( ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1308:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1291:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1308:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )
int alt61=3;
switch ( input.LA(1) ) {
case PACKAGE:
case IMPORT:
case FUNCTION:
+ case EVENT:
case ID:
case GLOBAL:
case QUERY:
@@ -5031,16 +5101,16 @@
default:
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1291:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )", 61, 0, input);
+ new NoViableAltException("1308:3: ( field_constraint[$base] | LEFT_PAREN or_constr[$base] RIGHT_PAREN | EVAL predicate[$base] )", 61, 0, input);
throw nvae;
}
switch (alt61) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1291:5: field_constraint[$base]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1308:5: field_constraint[$base]
{
- pushFollow(FOLLOW_field_constraint_in_unary_constr3469);
+ pushFollow(FOLLOW_field_constraint_in_unary_constr3528);
field_constraint(base);
_fsp--;
if (failed) return ;
@@ -5048,22 +5118,22 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1292:5: LEFT_PAREN or_constr[$base] RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1309:5: LEFT_PAREN or_constr[$base] RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr3477); if (failed) return ;
- pushFollow(FOLLOW_or_constr_in_unary_constr3479);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_unary_constr3536); if (failed) return ;
+ pushFollow(FOLLOW_or_constr_in_unary_constr3538);
or_constr(base);
_fsp--;
if (failed) return ;
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr3482); if (failed) return ;
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_unary_constr3541); if (failed) return ;
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1293:5: EVAL predicate[$base]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1310:5: EVAL predicate[$base]
{
- match(input,EVAL,FOLLOW_EVAL_in_unary_constr3488); if (failed) return ;
- pushFollow(FOLLOW_predicate_in_unary_constr3490);
+ match(input,EVAL,FOLLOW_EVAL_in_unary_constr3547); if (failed) return ;
+ pushFollow(FOLLOW_predicate_in_unary_constr3549);
predicate(base);
_fsp--;
if (failed) return ;
@@ -5089,9 +5159,9 @@
// $ANTLR start field_constraint
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1297:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? ) | (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) ) );
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1314:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) );
public final void field_constraint(ConditionalElementDescr base) throws RecognitionException {
- Token ID51=null;
+ Token ID52=null;
accessor_path_return f = null;
@@ -5101,58 +5171,58 @@
RestrictionConnectiveDescr top = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1303:2: ( ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? ) | (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1320:2: ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) )
int alt63=2;
int LA63_0 = input.LA(1);
if ( (LA63_0==ID) ) {
int LA63_1 = input.LA(2);
- if ( (LA63_1==74) ) {
+ if ( (LA63_1==76) ) {
alt63=1;
}
- else if ( (LA63_1==DOT||LA63_1==LEFT_PAREN||LA63_1==NOT||(LA63_1>=CONTAINS && LA63_1<=IN)||LA63_1==LEFT_SQUARE||(LA63_1>=76 && LA63_1<=81)) ) {
+ else if ( (LA63_1==DOT||LA63_1==LEFT_PAREN||LA63_1==NOT||(LA63_1>=CONTAINS && LA63_1<=IN)||LA63_1==LEFT_SQUARE||(LA63_1>=78 && LA63_1<=83)) ) {
alt63=2;
}
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1297:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? ) | (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) ) );", 63, 1, input);
+ new NoViableAltException("1314:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) );", 63, 1, input);
throw nvae;
}
}
- else if ( ((LA63_0>=PACKAGE && LA63_0<=FUNCTION)||LA63_0==GLOBAL||(LA63_0>=QUERY && LA63_0<=ATTRIBUTES)||LA63_0==ENABLED||LA63_0==SALIENCE||(LA63_0>=DURATION && LA63_0<=DIALECT)||LA63_0==FROM||(LA63_0>=INIT && LA63_0<=RESULT)||(LA63_0>=CONTAINS && LA63_0<=IN)||LA63_0==THEN) ) {
+ else if ( ((LA63_0>=PACKAGE && LA63_0<=EVENT)||LA63_0==GLOBAL||(LA63_0>=QUERY && LA63_0<=ATTRIBUTES)||LA63_0==ENABLED||LA63_0==SALIENCE||(LA63_0>=DURATION && LA63_0<=DIALECT)||LA63_0==FROM||(LA63_0>=INIT && LA63_0<=RESULT)||(LA63_0>=CONTAINS && LA63_0<=MEMBEROF)||LA63_0==IN||LA63_0==THEN) ) {
alt63=2;
}
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1297:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? ) | (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) ) );", 63, 0, input);
+ new NoViableAltException("1314:1: field_constraint[ConditionalElementDescr base] : ( ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? ) | (f= accessor_path or_restr_connective[top] ) );", 63, 0, input);
throw nvae;
}
switch (alt63) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1304:10: ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1321:10: ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1304:10: ( ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )? )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1305:3: ID ':' f= accessor_path ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1321:10: ( ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )? )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1322:3: ID ':' f= accessor_path ( or_restr_connective[top] | '->' predicate[$base] )?
{
- ID51=(Token)input.LT(1);
- match(input,ID,FOLLOW_ID_in_field_constraint3529); if (failed) return ;
- match(input,74,FOLLOW_74_in_field_constraint3531); if (failed) return ;
+ ID52=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_field_constraint3588); if (failed) return ;
+ match(input,76,FOLLOW_76_in_field_constraint3590); if (failed) return ;
if ( backtracking==0 ) {
fbd = new FieldBindingDescr();
- fbd.setIdentifier( ID51.getText() );
- fbd.setLocation( offset(ID51.getLine()), ID51.getCharPositionInLine() );
- fbd.setStartCharacter( ((CommonToken)ID51).getStartIndex() );
+ fbd.setIdentifier( ID52.getText() );
+ fbd.setLocation( offset(ID52.getLine()), ID52.getCharPositionInLine() );
+ fbd.setStartCharacter( ((CommonToken)ID52).getStartIndex() );
base.addDescr( fbd );
}
- pushFollow(FOLLOW_accessor_path_in_field_constraint3550);
+ pushFollow(FOLLOW_accessor_path_in_field_constraint3609);
f=accessor_path();
_fsp--;
if (failed) return ;
@@ -5167,7 +5237,7 @@
if ( fbd != null ) {
fbd.setFieldName( f.text );
// may have been overwritten
- fbd.setStartCharacter( ((CommonToken)ID51).getStartIndex() );
+ fbd.setStartCharacter( ((CommonToken)ID52).getStartIndex() );
}
fc = new FieldConstraintDescr(f.text);
fc.setLocation( offset(((Token)f.start).getLine()), ((Token)f.start).getCharPositionInLine() );
@@ -5175,52 +5245,46 @@
top = fc.getRestriction();
// it must be a field constraint, as it is not a binding
- if( ID51 == null ) {
+ if( ID52 == null ) {
base.addDescr( fc );
}
}
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1339:3: ( ( options {backtrack=true; } : or_restr_connective[top] ) | '->' predicate[$base] )?
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1356:3: ( or_restr_connective[top] | '->' predicate[$base] )?
int alt62=3;
int LA62_0 = input.LA(1);
- if ( (LA62_0==LEFT_PAREN||LA62_0==NOT||(LA62_0>=CONTAINS && LA62_0<=IN)||(LA62_0>=76 && LA62_0<=81)) ) {
+ if ( (LA62_0==LEFT_PAREN||LA62_0==NOT||(LA62_0>=CONTAINS && LA62_0<=IN)||(LA62_0>=78 && LA62_0<=83)) ) {
alt62=1;
}
- else if ( (LA62_0==75) ) {
+ else if ( (LA62_0==77) ) {
alt62=2;
}
switch (alt62) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1340:4: ( options {backtrack=true; } : or_restr_connective[top] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1357:4: or_restr_connective[top]
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1340:4: ( options {backtrack=true; } : or_restr_connective[top] )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1341:6: or_restr_connective[top]
- {
- pushFollow(FOLLOW_or_restr_connective_in_field_constraint3578);
+ pushFollow(FOLLOW_or_restr_connective_in_field_constraint3623);
or_restr_connective(top);
_fsp--;
if (failed) return ;
if ( backtracking==0 ) {
// we must add now as we didn't before
- if( ID51 != null) {
+ if( ID52 != null) {
base.addDescr( fc );
}
}
}
-
-
- }
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1350:4: '->' predicate[$base]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1365:4: '->' predicate[$base]
{
- match(input,75,FOLLOW_75_in_field_constraint3598); if (failed) return ;
- pushFollow(FOLLOW_predicate_in_field_constraint3600);
+ match(input,77,FOLLOW_77_in_field_constraint3638); if (failed) return ;
+ pushFollow(FOLLOW_predicate_in_field_constraint3640);
predicate(base);
_fsp--;
if (failed) return ;
@@ -5237,12 +5301,12 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1354:3: (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1369:3: (f= accessor_path or_restr_connective[top] )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1354:3: (f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1355:3: f= accessor_path ( options {backtrack=true; } : or_restr_connective[top] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1369:3: (f= accessor_path or_restr_connective[top] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1370:3: f= accessor_path or_restr_connective[top]
{
- pushFollow(FOLLOW_accessor_path_in_field_constraint3626);
+ pushFollow(FOLLOW_accessor_path_in_field_constraint3666);
f=accessor_path();
_fsp--;
if (failed) return ;
@@ -5263,10 +5327,7 @@
}
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1371:3: ( options {backtrack=true; } : or_restr_connective[top] )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1372:5: or_restr_connective[top]
- {
- pushFollow(FOLLOW_or_restr_connective_in_field_constraint3648);
+ pushFollow(FOLLOW_or_restr_connective_in_field_constraint3675);
or_restr_connective(top);
_fsp--;
if (failed) return ;
@@ -5275,9 +5336,6 @@
}
-
-
- }
break;
}
@@ -5303,35 +5361,35 @@
// $ANTLR start or_restr_connective
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1389:1: or_restr_connective[ RestrictionConnectiveDescr base ] options {backtrack=true; } : and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1402:1: or_restr_connective[ RestrictionConnectiveDescr base ] options {backtrack=true; } : and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* ;
public final void or_restr_connective(RestrictionConnectiveDescr base) throws RecognitionException {
RestrictionConnectiveDescr or = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR);
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1396:2: ( and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1397:3: and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1409:2: ( and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1410:3: and_restr_connective[or] ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
{
- pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective3699);
+ pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective3722);
and_restr_connective(or);
_fsp--;
if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1398:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1411:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*
loop64:
do {
int alt64=2;
alt64 = dfa64.predict(input);
switch (alt64) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1400:6: DOUBLE_PIPE and_restr_connective[or]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1413:6: DOUBLE_PIPE and_restr_connective[or]
{
- match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective3723); if (failed) return ;
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_or_restr_connective3745); if (failed) return ;
if ( backtracking==0 ) {
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
}
- pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective3734);
+ pushFollow(FOLLOW_and_restr_connective_in_or_restr_connective3756);
and_restr_connective(or);
_fsp--;
if (failed) return ;
@@ -5367,7 +5425,7 @@
// $ANTLR start and_restr_connective
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1415:1: and_restr_connective[ RestrictionConnectiveDescr base ] : constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1428:1: and_restr_connective[ RestrictionConnectiveDescr base ] : constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* ;
public final void and_restr_connective(RestrictionConnectiveDescr base) throws RecognitionException {
Token t=null;
@@ -5375,30 +5433,30 @@
RestrictionConnectiveDescr and = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND);
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1419:2: ( constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1420:3: constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1432:2: ( constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1433:3: constraint_expression[and] ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
{
- pushFollow(FOLLOW_constraint_expression_in_and_restr_connective3766);
+ pushFollow(FOLLOW_constraint_expression_in_and_restr_connective3788);
constraint_expression(and);
_fsp--;
if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1421:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1434:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*
loop65:
do {
int alt65=2;
alt65 = dfa65.predict(input);
switch (alt65) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1422:5: t= DOUBLE_AMPER constraint_expression[and]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1435:5: t= DOUBLE_AMPER constraint_expression[and]
{
t=(Token)input.LT(1);
- match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective3787); if (failed) return ;
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_and_restr_connective3808); if (failed) return ;
if ( backtracking==0 ) {
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
}
- pushFollow(FOLLOW_constraint_expression_in_and_restr_connective3798);
+ pushFollow(FOLLOW_constraint_expression_in_and_restr_connective3819);
constraint_expression(and);
_fsp--;
if (failed) return ;
@@ -5434,13 +5492,13 @@
// $ANTLR start constraint_expression
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1437:1: constraint_expression[RestrictionConnectiveDescr base] : ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1450:1: constraint_expression[RestrictionConnectiveDescr base] : ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) ;
public final void constraint_expression(RestrictionConnectiveDescr base) throws RecognitionException {
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1438:9: ( ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1439:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1451:9: ( ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1452:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1439:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1452:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )
int alt66=3;
switch ( input.LA(1) ) {
case IN:
@@ -5452,7 +5510,7 @@
{
int LA66_2 = input.LA(2);
- if ( (LA66_2==CONTAINS||LA66_2==MATCHES||LA66_2==MEMBEROF) ) {
+ if ( (LA66_2==CONTAINS||LA66_2==MATCHES||(LA66_2>=MEMBEROF && LA66_2<=TILDE)) ) {
alt66=2;
}
else if ( (LA66_2==IN) ) {
@@ -5461,7 +5519,7 @@
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1439:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )", 66, 2, input);
+ new NoViableAltException("1452:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )", 66, 2, input);
throw nvae;
}
@@ -5472,12 +5530,13 @@
case MATCHES:
case SOUNDSLIKE:
case MEMBEROF:
- case 76:
- case 77:
+ case TILDE:
case 78:
case 79:
case 80:
case 81:
+ case 82:
+ case 83:
{
alt66=2;
}
@@ -5490,16 +5549,16 @@
default:
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1439:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )", 66, 0, input);
+ new NoViableAltException("1452:3: ( compound_operator[$base] | simple_operator[$base] | LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN )", 66, 0, input);
throw nvae;
}
switch (alt66) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1439:5: compound_operator[$base]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1452:5: compound_operator[$base]
{
- pushFollow(FOLLOW_compound_operator_in_constraint_expression3835);
+ pushFollow(FOLLOW_compound_operator_in_constraint_expression3856);
compound_operator(base);
_fsp--;
if (failed) return ;
@@ -5507,9 +5566,9 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1440:5: simple_operator[$base]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1453:5: simple_operator[$base]
{
- pushFollow(FOLLOW_simple_operator_in_constraint_expression3842);
+ pushFollow(FOLLOW_simple_operator_in_constraint_expression3863);
simple_operator(base);
_fsp--;
if (failed) return ;
@@ -5517,19 +5576,19 @@
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1441:5: LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1454:5: LEFT_PAREN or_restr_connective[$base] RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression3849); if (failed) return ;
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_constraint_expression3871); if (failed) return ;
if ( backtracking==0 ) {
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
}
- pushFollow(FOLLOW_or_restr_connective_in_constraint_expression3858);
+ pushFollow(FOLLOW_or_restr_connective_in_constraint_expression3880);
or_restr_connective(base);
_fsp--;
if (failed) return ;
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression3864); if (failed) return ;
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_constraint_expression3885); if (failed) return ;
}
break;
@@ -5552,80 +5611,89 @@
// $ANTLR start simple_operator
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1450:1: simple_operator[RestrictionConnectiveDescr base] : (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF ) rd= expression_value[$base, op] ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1463:1: simple_operator[RestrictionConnectiveDescr base] : (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText] ;
public final void simple_operator(RestrictionConnectiveDescr base) throws RecognitionException {
Token t=null;
Token n=null;
+ square_chunk_return param = null;
+
RestrictionDescr rd = null;
String op = null;
+ String paramText = null;
+ boolean isNegated = false;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1454:2: ( (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF ) rd= expression_value[$base, op] )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF ) rd= expression_value[$base, op]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1469:2: ( (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1470:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? ) rd= expression_value[$base, op, isNegated, paramText]
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF )
- int alt67=14;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1470:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? )
+ int alt69=16;
switch ( input.LA(1) ) {
- case 76:
+ case 78:
{
- alt67=1;
+ alt69=1;
}
break;
- case 77:
+ case 79:
{
- alt67=2;
+ alt69=2;
}
break;
- case 78:
+ case 80:
{
- alt67=3;
+ alt69=3;
}
break;
- case 79:
+ case 81:
{
- alt67=4;
+ alt69=4;
}
break;
- case 80:
+ case 82:
{
- alt67=5;
+ alt69=5;
}
break;
- case 81:
+ case 83:
{
- alt67=6;
+ alt69=6;
}
break;
case CONTAINS:
{
- alt67=7;
+ alt69=7;
}
break;
case NOT:
{
switch ( input.LA(2) ) {
- case MATCHES:
+ case CONTAINS:
{
- alt67=12;
+ alt69=8;
}
break;
- case CONTAINS:
+ case TILDE:
{
- alt67=8;
+ alt69=16;
}
break;
+ case MATCHES:
+ {
+ alt69=12;
+ }
+ break;
case MEMBEROF:
{
- alt67=14;
+ alt69=14;
}
break;
default:
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1455:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF )", 67, 8, input);
+ new NoViableAltException("1470:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? )", 69, 8, input);
throw nvae;
}
@@ -5634,167 +5702,234 @@
break;
case EXCLUDES:
{
- alt67=9;
+ alt69=9;
}
break;
case MATCHES:
{
- alt67=10;
+ alt69=10;
}
break;
case SOUNDSLIKE:
{
- alt67=11;
+ alt69=11;
}
break;
case MEMBEROF:
{
- alt67=13;
+ alt69=13;
}
break;
+ case TILDE:
+ {
+ alt69=15;
+ }
+ break;
default:
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1455:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF )", 67, 0, input);
+ new NoViableAltException("1470:3: (t= '==' | t= '>' | t= '>=' | t= '<' | t= '<=' | t= '!=' | t= CONTAINS | n= NOT t= CONTAINS | t= EXCLUDES | t= MATCHES | t= SOUNDSLIKE | n= NOT t= MATCHES | t= MEMBEROF | n= NOT t= MEMBEROF | TILDE t= ID (param= square_chunk )? | n= NOT TILDE t= ID (param= square_chunk )? )", 69, 0, input);
throw nvae;
}
- switch (alt67) {
+ switch (alt69) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1455:5: t= '=='
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1470:5: t= '=='
{
t=(Token)input.LT(1);
- match(input,76,FOLLOW_76_in_simple_operator3895); if (failed) return ;
+ match(input,78,FOLLOW_78_in_simple_operator3916); if (failed) return ;
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1456:5: t= '>'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1471:5: t= '>'
{
t=(Token)input.LT(1);
- match(input,77,FOLLOW_77_in_simple_operator3903); if (failed) return ;
+ match(input,79,FOLLOW_79_in_simple_operator3924); if (failed) return ;
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1457:5: t= '>='
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1472:5: t= '>='
{
t=(Token)input.LT(1);
- match(input,78,FOLLOW_78_in_simple_operator3911); if (failed) return ;
+ match(input,80,FOLLOW_80_in_simple_operator3932); if (failed) return ;
}
break;
case 4 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1458:5: t= '<'
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1473:5: t= '<'
{
t=(Token)input.LT(1);
- match(input,79,FOLLOW_79_in_simple_operator3919); if (failed) return ;
+ match(input,81,FOLLOW_81_in_simple_operator3940); if (failed) return ;
}
break;
case 5 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1459:5: t= '<='
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1474:5: t= '<='
{
t=(Token)input.LT(1);
- match(input,80,FOLLOW_80_in_simple_operator3927); if (failed) return ;
+ match(input,82,FOLLOW_82_in_simple_operator3948); if (failed) return ;
}
break;
case 6 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1460:5: t= '!='
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1475:5: t= '!='
{
t=(Token)input.LT(1);
- match(input,81,FOLLOW_81_in_simple_operator3935); if (failed) return ;
+ match(input,83,FOLLOW_83_in_simple_operator3956); if (failed) return ;
}
break;
case 7 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1461:5: t= CONTAINS
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1476:25: t= CONTAINS
{
t=(Token)input.LT(1);
- match(input,CONTAINS,FOLLOW_CONTAINS_in_simple_operator3943); if (failed) return ;
+ match(input,CONTAINS,FOLLOW_CONTAINS_in_simple_operator3984); if (failed) return ;
}
break;
case 8 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1462:5: n= NOT t= CONTAINS
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1477:25: n= NOT t= CONTAINS
{
n=(Token)input.LT(1);
- match(input,NOT,FOLLOW_NOT_in_simple_operator3951); if (failed) return ;
+ match(input,NOT,FOLLOW_NOT_in_simple_operator4012); if (failed) return ;
t=(Token)input.LT(1);
- match(input,CONTAINS,FOLLOW_CONTAINS_in_simple_operator3955); if (failed) return ;
+ match(input,CONTAINS,FOLLOW_CONTAINS_in_simple_operator4016); if (failed) return ;
}
break;
case 9 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1463:5: t= EXCLUDES
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1478:25: t= EXCLUDES
{
t=(Token)input.LT(1);
- match(input,EXCLUDES,FOLLOW_EXCLUDES_in_simple_operator3963); if (failed) return ;
+ match(input,EXCLUDES,FOLLOW_EXCLUDES_in_simple_operator4044); if (failed) return ;
}
break;
case 10 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1464:5: t= MATCHES
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1479:25: t= MATCHES
{
t=(Token)input.LT(1);
- match(input,MATCHES,FOLLOW_MATCHES_in_simple_operator3971); if (failed) return ;
+ match(input,MATCHES,FOLLOW_MATCHES_in_simple_operator4072); if (failed) return ;
}
break;
case 11 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1465:5: t= SOUNDSLIKE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1480:25: t= SOUNDSLIKE
{
t=(Token)input.LT(1);
- match(input,SOUNDSLIKE,FOLLOW_SOUNDSLIKE_in_simple_operator3979); if (failed) return ;
+ match(input,SOUNDSLIKE,FOLLOW_SOUNDSLIKE_in_simple_operator4100); if (failed) return ;
}
break;
case 12 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1466:5: n= NOT t= MATCHES
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1481:25: n= NOT t= MATCHES
{
n=(Token)input.LT(1);
- match(input,NOT,FOLLOW_NOT_in_simple_operator3987); if (failed) return ;
+ match(input,NOT,FOLLOW_NOT_in_simple_operator4128); if (failed) return ;
t=(Token)input.LT(1);
- match(input,MATCHES,FOLLOW_MATCHES_in_simple_operator3991); if (failed) return ;
+ match(input,MATCHES,FOLLOW_MATCHES_in_simple_operator4132); if (failed) return ;
}
break;
case 13 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1467:5: t= MEMBEROF
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1482:25: t= MEMBEROF
{
t=(Token)input.LT(1);
- match(input,MEMBEROF,FOLLOW_MEMBEROF_in_simple_operator3999); if (failed) return ;
+ match(input,MEMBEROF,FOLLOW_MEMBEROF_in_simple_operator4160); if (failed) return ;
}
break;
case 14 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1468:5: n= NOT t= MEMBEROF
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1483:25: n= NOT t= MEMBEROF
{
n=(Token)input.LT(1);
- match(input,NOT,FOLLOW_NOT_in_simple_operator4007); if (failed) return ;
+ match(input,NOT,FOLLOW_NOT_in_simple_operator4188); if (failed) return ;
t=(Token)input.LT(1);
- match(input,MEMBEROF,FOLLOW_MEMBEROF_in_simple_operator4011); if (failed) return ;
+ match(input,MEMBEROF,FOLLOW_MEMBEROF_in_simple_operator4192); if (failed) return ;
}
break;
+ case 15 :
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1484:5: TILDE t= ID (param= square_chunk )?
+ {
+ match(input,TILDE,FOLLOW_TILDE_in_simple_operator4198); if (failed) return ;
+ t=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_simple_operator4202); if (failed) return ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1484:21: (param= square_chunk )?
+ int alt67=2;
+ int LA67_0 = input.LA(1);
+ if ( (LA67_0==LEFT_SQUARE) ) {
+ alt67=1;
+ }
+ switch (alt67) {
+ case 1 :
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1484:21: param= square_chunk
+ {
+ pushFollow(FOLLOW_square_chunk_in_simple_operator4206);
+ param=square_chunk();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 16 :
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1485:5: n= NOT TILDE t= ID (param= square_chunk )?
+ {
+ n=(Token)input.LT(1);
+ match(input,NOT,FOLLOW_NOT_in_simple_operator4215); if (failed) return ;
+ match(input,TILDE,FOLLOW_TILDE_in_simple_operator4217); if (failed) return ;
+ t=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_simple_operator4221); if (failed) return ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1485:27: (param= square_chunk )?
+ int alt68=2;
+ int LA68_0 = input.LA(1);
+
+ if ( (LA68_0==LEFT_SQUARE) ) {
+ alt68=1;
+ }
+ switch (alt68) {
+ case 1 :
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1485:27: param= square_chunk
+ {
+ pushFollow(FOLLOW_square_chunk_in_simple_operator4225);
+ param=square_chunk();
+ _fsp--;
+ if (failed) return ;
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
}
if ( backtracking==0 ) {
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
location.setProperty(Location.LOCATION_PROPERTY_OPERATOR, t.getText());
- if( n != null ) {
- op = "not "+t.getText();
- } else {
- op = t.getText();
- }
+ op = t.getText();
+ isNegated = n != null;
+ if( param != null ) {
+ paramText = safeSubstring( input.toString(param.start,param.stop), 1, input.toString(param.start,param.stop).length()-1 );
+ }
}
- pushFollow(FOLLOW_expression_value_in_simple_operator4025);
- rd=expression_value(base, op);
+ pushFollow(FOLLOW_expression_value_in_simple_operator4240);
+ rd=expression_value(base, op, isNegated, paramText);
_fsp--;
if (failed) return ;
@@ -5808,7 +5943,7 @@
finally {
if ( rd == null && op != null ) {
- base.addRestriction( new LiteralRestrictionDescr(op, null) );
+ base.addRestriction( new LiteralRestrictionDescr(op, false, null) );
}
}
@@ -5818,7 +5953,7 @@
// $ANTLR start compound_operator
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1487:1: compound_operator[RestrictionConnectiveDescr base] : ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op] ( COMMA rd= expression_value[group, op] )* RIGHT_PAREN ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1504:1: compound_operator[RestrictionConnectiveDescr base] : ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN ;
public final void compound_operator(RestrictionConnectiveDescr base) throws RecognitionException {
RestrictionDescr rd = null;
@@ -5828,31 +5963,31 @@
RestrictionConnectiveDescr group = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1492:2: ( ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op] ( COMMA rd= expression_value[group, op] )* RIGHT_PAREN )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1493:3: ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op] ( COMMA rd= expression_value[group, op] )* RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1509:2: ( ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1510:3: ( IN | NOT IN ) LEFT_PAREN rd= expression_value[group, op, false, null] ( COMMA rd= expression_value[group, op, false, null] )* RIGHT_PAREN
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1493:3: ( IN | NOT IN )
- int alt68=2;
- int LA68_0 = input.LA(1);
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1510:3: ( IN | NOT IN )
+ int alt70=2;
+ int LA70_0 = input.LA(1);
- if ( (LA68_0==IN) ) {
- alt68=1;
+ if ( (LA70_0==IN) ) {
+ alt70=1;
}
- else if ( (LA68_0==NOT) ) {
- alt68=2;
+ else if ( (LA70_0==NOT) ) {
+ alt70=2;
}
else {
if (backtracking>0) {failed=true; return ;}
NoViableAltException nvae =
- new NoViableAltException("1493:3: ( IN | NOT IN )", 68, 0, input);
+ new NoViableAltException("1510:3: ( IN | NOT IN )", 70, 0, input);
throw nvae;
}
- switch (alt68) {
+ switch (alt70) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1493:5: IN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1510:5: IN
{
- match(input,IN,FOLLOW_IN_in_compound_operator4055); if (failed) return ;
+ match(input,IN,FOLLOW_IN_in_compound_operator4270); if (failed) return ;
if ( backtracking==0 ) {
op = "==";
@@ -5866,10 +6001,10 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1501:5: NOT IN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1518:5: NOT IN
{
- match(input,NOT,FOLLOW_NOT_in_compound_operator4067); if (failed) return ;
- match(input,IN,FOLLOW_IN_in_compound_operator4069); if (failed) return ;
+ match(input,NOT,FOLLOW_NOT_in_compound_operator4282); if (failed) return ;
+ match(input,IN,FOLLOW_IN_in_compound_operator4284); if (failed) return ;
if ( backtracking==0 ) {
op = "!=";
@@ -5885,29 +6020,29 @@
}
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator4084); if (failed) return ;
- pushFollow(FOLLOW_expression_value_in_compound_operator4088);
- rd=expression_value(group, op);
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_compound_operator4299); if (failed) return ;
+ pushFollow(FOLLOW_expression_value_in_compound_operator4303);
+ rd=expression_value(group, op, false, null);
_fsp--;
if (failed) return ;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1511:3: ( COMMA rd= expression_value[group, op] )*
- loop69:
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1528:3: ( COMMA rd= expression_value[group, op, false, null] )*
+ loop71:
do {
- int alt69=2;
- int LA69_0 = input.LA(1);
+ int alt71=2;
+ int LA71_0 = input.LA(1);
- if ( (LA69_0==COMMA) ) {
- alt69=1;
+ if ( (LA71_0==COMMA) ) {
+ alt71=1;
}
- switch (alt69) {
+ switch (alt71) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1511:5: COMMA rd= expression_value[group, op]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1528:5: COMMA rd= expression_value[group, op, false, null]
{
- match(input,COMMA,FOLLOW_COMMA_in_compound_operator4095); if (failed) return ;
- pushFollow(FOLLOW_expression_value_in_compound_operator4099);
- rd=expression_value(group, op);
+ match(input,COMMA,FOLLOW_COMMA_in_compound_operator4310); if (failed) return ;
+ pushFollow(FOLLOW_expression_value_in_compound_operator4314);
+ rd=expression_value(group, op, false, null);
_fsp--;
if (failed) return ;
@@ -5915,11 +6050,11 @@
break;
default :
- break loop69;
+ break loop71;
}
} while (true);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator4108); if (failed) return ;
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_compound_operator4323); if (failed) return ;
if ( backtracking==0 ) {
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_END);
@@ -5941,8 +6076,8 @@
// $ANTLR start expression_value
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1518:1: expression_value[RestrictionConnectiveDescr base, String op] returns [RestrictionDescr rd] : (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) ;
- public final RestrictionDescr expression_value(RestrictionConnectiveDescr base, String op) throws RecognitionException {
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1535:1: expression_value[RestrictionConnectiveDescr base, String op, boolean isNegated, String paramText] returns [RestrictionDescr rd] : (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) ;
+ public final RestrictionDescr expression_value(RestrictionConnectiveDescr base, String op, boolean isNegated, String paramText) throws RecognitionException {
RestrictionDescr rd = null;
accessor_path_return ap = null;
@@ -5956,15 +6091,16 @@
rd = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1522:2: ( (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1523:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1539:2: ( (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1540:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1523:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
- int alt70=3;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1540:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )
+ int alt72=3;
switch ( input.LA(1) ) {
case PACKAGE:
case IMPORT:
case FUNCTION:
+ case EVENT:
case ID:
case GLOBAL:
case QUERY:
@@ -5990,7 +6126,7 @@
case IN:
case THEN:
{
- alt70=1;
+ alt72=1;
}
break;
case STRING:
@@ -5999,36 +6135,36 @@
case FLOAT:
case NULL:
{
- alt70=2;
+ alt72=2;
}
break;
case LEFT_PAREN:
{
- alt70=3;
+ alt72=3;
}
break;
default:
if (backtracking>0) {failed=true; return rd;}
NoViableAltException nvae =
- new NoViableAltException("1523:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )", 70, 0, input);
+ new NoViableAltException("1540:3: (ap= accessor_path | lc= literal_constraint | rvc= paren_chunk )", 72, 0, input);
throw nvae;
}
- switch (alt70) {
+ switch (alt72) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1523:5: ap= accessor_path
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1540:5: ap= accessor_path
{
- pushFollow(FOLLOW_accessor_path_in_expression_value4142);
+ pushFollow(FOLLOW_accessor_path_in_expression_value4357);
ap=accessor_path();
_fsp--;
if (failed) return rd;
if ( backtracking==0 ) {
if( ap.text.indexOf( '.' ) > -1 || ap.text.indexOf( '[' ) > -1) {
- rd = new QualifiedIdentifierRestrictionDescr(op, ap.text);
+ rd = new QualifiedIdentifierRestrictionDescr(op, isNegated, paramText, ap.text);
} else {
- rd = new VariableRestrictionDescr(op, ap.text);
+ rd = new VariableRestrictionDescr(op, isNegated, paramText, ap.text);
}
}
@@ -6036,30 +6172,30 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1531:5: lc= literal_constraint
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1548:5: lc= literal_constraint
{
- pushFollow(FOLLOW_literal_constraint_in_expression_value4162);
+ pushFollow(FOLLOW_literal_constraint_in_expression_value4377);
lc=literal_constraint();
_fsp--;
if (failed) return rd;
if ( backtracking==0 ) {
- rd = new LiteralRestrictionDescr(op, lc.text, lc.type );
+ rd = new LiteralRestrictionDescr(op, isNegated, paramText, lc.text, lc.type );
}
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1535:5: rvc= paren_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1552:5: rvc= paren_chunk
{
- pushFollow(FOLLOW_paren_chunk_in_expression_value4176);
+ pushFollow(FOLLOW_paren_chunk_in_expression_value4391);
rvc=paren_chunk();
_fsp--;
if (failed) return rd;
if ( backtracking==0 ) {
- rd = new ReturnValueRestrictionDescr(op, safeSubstring( input.toString(rvc.start,rvc.stop), 1, input.toString(rvc.start,rvc.stop).length()-1) );
+ rd = new ReturnValueRestrictionDescr(op, isNegated, paramText, safeSubstring( input.toString(rvc.start,rvc.stop), 1, input.toString(rvc.start,rvc.stop).length()-1) );
}
@@ -6096,7 +6232,7 @@
};
// $ANTLR start literal_constraint
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1548:1: literal_constraint returns [String text, int type] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1565:1: literal_constraint returns [String text, int type] : (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) ;
public final literal_constraint_return literal_constraint() throws RecognitionException {
literal_constraint_return retval = new literal_constraint_return();
retval.start = input.LT(1);
@@ -6107,51 +6243,51 @@
retval.text = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1552:2: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1552:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1569:2: ( (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL ) )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1569:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
{
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1552:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
- int alt71=5;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1569:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )
+ int alt73=5;
switch ( input.LA(1) ) {
case STRING:
{
- alt71=1;
+ alt73=1;
}
break;
case INT:
{
- alt71=2;
+ alt73=2;
}
break;
case FLOAT:
{
- alt71=3;
+ alt73=3;
}
break;
case BOOL:
{
- alt71=4;
+ alt73=4;
}
break;
case NULL:
{
- alt71=5;
+ alt73=5;
}
break;
default:
if (backtracking>0) {failed=true; return retval;}
NoViableAltException nvae =
- new NoViableAltException("1552:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )", 71, 0, input);
+ new NoViableAltException("1569:4: (t= STRING | t= INT | t= FLOAT | t= BOOL | t= NULL )", 73, 0, input);
throw nvae;
}
- switch (alt71) {
+ switch (alt73) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1552:6: t= STRING
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1569:6: t= STRING
{
t=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_literal_constraint4219); if (failed) return retval;
+ match(input,STRING,FOLLOW_STRING_in_literal_constraint4434); if (failed) return retval;
if ( backtracking==0 ) {
retval.text = getString( t.getText() ); retval.type = LiteralRestrictionDescr.TYPE_STRING;
}
@@ -6159,10 +6295,10 @@
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1553:5: t= INT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1570:5: t= INT
{
t=(Token)input.LT(1);
- match(input,INT,FOLLOW_INT_in_literal_constraint4230); if (failed) return retval;
+ match(input,INT,FOLLOW_INT_in_literal_constraint4445); if (failed) return retval;
if ( backtracking==0 ) {
retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER;
}
@@ -6170,10 +6306,10 @@
}
break;
case 3 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1554:5: t= FLOAT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1571:5: t= FLOAT
{
t=(Token)input.LT(1);
- match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint4243); if (failed) return retval;
+ match(input,FLOAT,FOLLOW_FLOAT_in_literal_constraint4458); if (failed) return retval;
if ( backtracking==0 ) {
retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_NUMBER;
}
@@ -6181,10 +6317,10 @@
}
break;
case 4 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1555:5: t= BOOL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1572:5: t= BOOL
{
t=(Token)input.LT(1);
- match(input,BOOL,FOLLOW_BOOL_in_literal_constraint4254); if (failed) return retval;
+ match(input,BOOL,FOLLOW_BOOL_in_literal_constraint4469); if (failed) return retval;
if ( backtracking==0 ) {
retval.text = t.getText(); retval.type = LiteralRestrictionDescr.TYPE_BOOLEAN;
}
@@ -6192,10 +6328,10 @@
}
break;
case 5 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1556:5: t= NULL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1573:5: t= NULL
{
t=(Token)input.LT(1);
- match(input,NULL,FOLLOW_NULL_in_literal_constraint4266); if (failed) return retval;
+ match(input,NULL,FOLLOW_NULL_in_literal_constraint4481); if (failed) return retval;
if ( backtracking==0 ) {
retval.text = null; retval.type = LiteralRestrictionDescr.TYPE_NULL;
}
@@ -6223,7 +6359,7 @@
// $ANTLR start predicate
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1560:1: predicate[ConditionalElementDescr base] : text= paren_chunk ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1577:1: predicate[ConditionalElementDescr base] : text= paren_chunk ;
public final void predicate(ConditionalElementDescr base) throws RecognitionException {
paren_chunk_return text = null;
@@ -6232,10 +6368,10 @@
PredicateDescr d = null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1564:2: (text= paren_chunk )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1565:3: text= paren_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1581:2: (text= paren_chunk )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1582:3: text= paren_chunk
{
- pushFollow(FOLLOW_paren_chunk_in_predicate4304);
+ pushFollow(FOLLOW_paren_chunk_in_predicate4519);
text=paren_chunk();
_fsp--;
if (failed) return ;
@@ -6267,35 +6403,35 @@
};
// $ANTLR start curly_chunk
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1577:1: curly_chunk : LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1594:1: curly_chunk : LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY ;
public final curly_chunk_return curly_chunk() throws RecognitionException {
curly_chunk_return retval = new curly_chunk_return();
retval.start = input.LT(1);
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1578:2: ( LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1579:3: LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1595:2: ( LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1596:3: LEFT_CURLY (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )* RIGHT_CURLY
{
- match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk4322); if (failed) return retval;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1579:14: (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )*
- loop72:
+ match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_curly_chunk4537); if (failed) return retval;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1596:14: (~ ( LEFT_CURLY | RIGHT_CURLY ) | curly_chunk )*
+ loop74:
do {
- int alt72=3;
- int LA72_0 = input.LA(1);
+ int alt74=3;
+ int LA74_0 = input.LA(1);
- if ( ((LA72_0>=PACKAGE && LA72_0<=NULL)||(LA72_0>=LEFT_SQUARE && LA72_0<=81)) ) {
- alt72=1;
+ if ( ((LA74_0>=PACKAGE && LA74_0<=NULL)||(LA74_0>=LEFT_SQUARE && LA74_0<=83)) ) {
+ alt74=1;
}
- else if ( (LA72_0==LEFT_CURLY) ) {
- alt72=2;
+ else if ( (LA74_0==LEFT_CURLY) ) {
+ alt74=2;
}
- switch (alt72) {
+ switch (alt74) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1579:16: ~ ( LEFT_CURLY | RIGHT_CURLY )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1596:16: ~ ( LEFT_CURLY | RIGHT_CURLY )
{
- if ( (input.LA(1)>=PACKAGE && input.LA(1)<=NULL)||(input.LA(1)>=LEFT_SQUARE && input.LA(1)<=81) ) {
+ if ( (input.LA(1)>=PACKAGE && input.LA(1)<=NULL)||(input.LA(1)>=LEFT_SQUARE && input.LA(1)<=83) ) {
input.consume();
errorRecovery=false;failed=false;
}
@@ -6303,16 +6439,16 @@
if (backtracking>0) {failed=true; return retval;}
MismatchedSetException mse =
new MismatchedSetException(null,input);
- recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk4326); throw mse;
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_curly_chunk4541); throw mse;
}
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1579:44: curly_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1596:44: curly_chunk
{
- pushFollow(FOLLOW_curly_chunk_in_curly_chunk4335);
+ pushFollow(FOLLOW_curly_chunk_in_curly_chunk4550);
curly_chunk();
_fsp--;
if (failed) return retval;
@@ -6321,11 +6457,11 @@
break;
default :
- break loop72;
+ break loop74;
}
} while (true);
- match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk4340); if (failed) return retval;
+ match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_curly_chunk4555); if (failed) return retval;
}
@@ -6346,35 +6482,35 @@
};
// $ANTLR start paren_chunk
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1582:1: paren_chunk : LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1599:1: paren_chunk : LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN ;
public final paren_chunk_return paren_chunk() throws RecognitionException {
paren_chunk_return retval = new paren_chunk_return();
retval.start = input.LT(1);
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1583:2: ( LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1584:3: LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1600:2: ( LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1601:3: LEFT_PAREN (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )* RIGHT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk4354); if (failed) return retval;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1584:14: (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )*
- loop73:
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_paren_chunk4569); if (failed) return retval;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1601:14: (~ ( LEFT_PAREN | RIGHT_PAREN ) | paren_chunk )*
+ loop75:
do {
- int alt73=3;
- int LA73_0 = input.LA(1);
+ int alt75=3;
+ int LA75_0 = input.LA(1);
- if ( ((LA73_0>=PACKAGE && LA73_0<=GLOBAL)||LA73_0==COMMA||(LA73_0>=QUERY && LA73_0<=81)) ) {
- alt73=1;
+ if ( ((LA75_0>=PACKAGE && LA75_0<=GLOBAL)||LA75_0==COMMA||(LA75_0>=QUERY && LA75_0<=83)) ) {
+ alt75=1;
}
- else if ( (LA73_0==LEFT_PAREN) ) {
- alt73=2;
+ else if ( (LA75_0==LEFT_PAREN) ) {
+ alt75=2;
}
- switch (alt73) {
+ switch (alt75) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1584:16: ~ ( LEFT_PAREN | RIGHT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1601:16: ~ ( LEFT_PAREN | RIGHT_PAREN )
{
- if ( (input.LA(1)>=PACKAGE && input.LA(1)<=GLOBAL)||input.LA(1)==COMMA||(input.LA(1)>=QUERY && input.LA(1)<=81) ) {
+ if ( (input.LA(1)>=PACKAGE && input.LA(1)<=GLOBAL)||input.LA(1)==COMMA||(input.LA(1)>=QUERY && input.LA(1)<=83) ) {
input.consume();
errorRecovery=false;failed=false;
}
@@ -6382,16 +6518,16 @@
if (backtracking>0) {failed=true; return retval;}
MismatchedSetException mse =
new MismatchedSetException(null,input);
- recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk4358); throw mse;
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_paren_chunk4573); throw mse;
}
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1584:44: paren_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1601:44: paren_chunk
{
- pushFollow(FOLLOW_paren_chunk_in_paren_chunk4367);
+ pushFollow(FOLLOW_paren_chunk_in_paren_chunk4582);
paren_chunk();
_fsp--;
if (failed) return retval;
@@ -6400,11 +6536,11 @@
break;
default :
- break loop73;
+ break loop75;
}
} while (true);
- match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk4372); if (failed) return retval;
+ match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_paren_chunk4587); if (failed) return retval;
}
@@ -6425,35 +6561,35 @@
};
// $ANTLR start square_chunk
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1587:1: square_chunk : LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1604:1: square_chunk : LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE ;
public final square_chunk_return square_chunk() throws RecognitionException {
square_chunk_return retval = new square_chunk_return();
retval.start = input.LT(1);
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1588:2: ( LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1589:3: LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1605:2: ( LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1606:3: LEFT_SQUARE (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )* RIGHT_SQUARE
{
- match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk4385); if (failed) return retval;
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1589:15: (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )*
- loop74:
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_square_chunk4600); if (failed) return retval;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1606:15: (~ ( LEFT_SQUARE | RIGHT_SQUARE ) | square_chunk )*
+ loop76:
do {
- int alt74=3;
- int LA74_0 = input.LA(1);
+ int alt76=3;
+ int LA76_0 = input.LA(1);
- if ( ((LA74_0>=PACKAGE && LA74_0<=RIGHT_CURLY)||(LA74_0>=THEN && LA74_0<=81)) ) {
- alt74=1;
+ if ( ((LA76_0>=PACKAGE && LA76_0<=RIGHT_CURLY)||(LA76_0>=THEN && LA76_0<=83)) ) {
+ alt76=1;
}
- else if ( (LA74_0==LEFT_SQUARE) ) {
- alt74=2;
+ else if ( (LA76_0==LEFT_SQUARE) ) {
+ alt76=2;
}
- switch (alt74) {
+ switch (alt76) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1589:17: ~ ( LEFT_SQUARE | RIGHT_SQUARE )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1606:17: ~ ( LEFT_SQUARE | RIGHT_SQUARE )
{
- if ( (input.LA(1)>=PACKAGE && input.LA(1)<=RIGHT_CURLY)||(input.LA(1)>=THEN && input.LA(1)<=81) ) {
+ if ( (input.LA(1)>=PACKAGE && input.LA(1)<=RIGHT_CURLY)||(input.LA(1)>=THEN && input.LA(1)<=83) ) {
input.consume();
errorRecovery=false;failed=false;
}
@@ -6461,16 +6597,16 @@
if (backtracking>0) {failed=true; return retval;}
MismatchedSetException mse =
new MismatchedSetException(null,input);
- recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk4389); throw mse;
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_square_chunk4604); throw mse;
}
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1589:47: square_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1606:47: square_chunk
{
- pushFollow(FOLLOW_square_chunk_in_square_chunk4398);
+ pushFollow(FOLLOW_square_chunk_in_square_chunk4613);
square_chunk();
_fsp--;
if (failed) return retval;
@@ -6479,11 +6615,11 @@
break;
default :
- break loop74;
+ break loop76;
}
} while (true);
- match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk4403); if (failed) return retval;
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_square_chunk4618); if (failed) return retval;
}
@@ -6505,76 +6641,76 @@
};
// $ANTLR start qualified_id
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1592:1: qualified_id returns [ String text ] : ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1609:1: qualified_id returns [ String text ] : ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
public final qualified_id_return qualified_id() throws RecognitionException {
qualified_id_return retval = new qualified_id_return();
retval.start = input.LT(1);
- Token ID52=null;
- identifier_return identifier53 = null;
+ Token ID53=null;
+ identifier_return identifier54 = null;
StringBuffer buf = new StringBuffer();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1599:2: ( ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1599:5: ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1616:2: ( ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1616:5: ID ( DOT identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
{
- ID52=(Token)input.LT(1);
- match(input,ID,FOLLOW_ID_in_qualified_id4432); if (failed) return retval;
+ ID53=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_qualified_id4647); if (failed) return retval;
if ( backtracking==0 ) {
- buf.append(ID52.getText());
+ buf.append(ID53.getText());
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1599:32: ( DOT identifier )*
- loop75:
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1616:32: ( DOT identifier )*
+ loop77:
do {
- int alt75=2;
- int LA75_0 = input.LA(1);
+ int alt77=2;
+ int LA77_0 = input.LA(1);
- if ( (LA75_0==DOT) ) {
- alt75=1;
+ if ( (LA77_0==DOT) ) {
+ alt77=1;
}
- switch (alt75) {
+ switch (alt77) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1599:34: DOT identifier
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1616:34: DOT identifier
{
- match(input,DOT,FOLLOW_DOT_in_qualified_id4438); if (failed) return retval;
- pushFollow(FOLLOW_identifier_in_qualified_id4440);
- identifier53=identifier();
+ match(input,DOT,FOLLOW_DOT_in_qualified_id4653); if (failed) return retval;
+ pushFollow(FOLLOW_identifier_in_qualified_id4655);
+ identifier54=identifier();
_fsp--;
if (failed) return retval;
if ( backtracking==0 ) {
- buf.append("."+input.toString(identifier53.start,identifier53.stop));
+ buf.append("."+input.toString(identifier54.start,identifier54.stop));
}
}
break;
default :
- break loop75;
+ break loop77;
}
} while (true);
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1599:88: ( LEFT_SQUARE RIGHT_SQUARE )*
- loop76:
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1616:88: ( LEFT_SQUARE RIGHT_SQUARE )*
+ loop78:
do {
- int alt76=2;
- int LA76_0 = input.LA(1);
+ int alt78=2;
+ int LA78_0 = input.LA(1);
- if ( (LA76_0==LEFT_SQUARE) ) {
- alt76=1;
+ if ( (LA78_0==LEFT_SQUARE) ) {
+ alt78=1;
}
- switch (alt76) {
+ switch (alt78) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1599:90: LEFT_SQUARE RIGHT_SQUARE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1616:90: LEFT_SQUARE RIGHT_SQUARE
{
- match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_qualified_id4449); if (failed) return retval;
- match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_qualified_id4451); if (failed) return retval;
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_qualified_id4664); if (failed) return retval;
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_qualified_id4666); if (failed) return retval;
if ( backtracking==0 ) {
buf.append("[]");
}
@@ -6583,7 +6719,7 @@
break;
default :
- break loop76;
+ break loop78;
}
} while (true);
@@ -6610,7 +6746,7 @@
// $ANTLR start dotted_name
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1602:1: dotted_name returns [ String text ] : i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1619:1: dotted_name returns [ String text ] : i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* ;
public final String dotted_name() throws RecognitionException {
String text = null;
@@ -6621,33 +6757,33 @@
StringBuffer buf = new StringBuffer();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1609:2: (i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1609:4: i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:2: (i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:4: i= identifier ( DOT i= identifier )* ( LEFT_SQUARE RIGHT_SQUARE )*
{
- pushFollow(FOLLOW_identifier_in_dotted_name4485);
+ pushFollow(FOLLOW_identifier_in_dotted_name4700);
i=identifier();
_fsp--;
if (failed) return text;
if ( backtracking==0 ) {
buf.append(input.toString(i.start,i.stop));
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1609:40: ( DOT i= identifier )*
- loop77:
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:40: ( DOT i= identifier )*
+ loop79:
do {
- int alt77=2;
- int LA77_0 = input.LA(1);
+ int alt79=2;
+ int LA79_0 = input.LA(1);
- if ( (LA77_0==DOT) ) {
- alt77=1;
+ if ( (LA79_0==DOT) ) {
+ alt79=1;
}
- switch (alt77) {
+ switch (alt79) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1609:42: DOT i= identifier
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:42: DOT i= identifier
{
- match(input,DOT,FOLLOW_DOT_in_dotted_name4491); if (failed) return text;
- pushFollow(FOLLOW_identifier_in_dotted_name4495);
+ match(input,DOT,FOLLOW_DOT_in_dotted_name4706); if (failed) return text;
+ pushFollow(FOLLOW_identifier_in_dotted_name4710);
i=identifier();
_fsp--;
if (failed) return text;
@@ -6659,27 +6795,27 @@
break;
default :
- break loop77;
+ break loop79;
}
} while (true);
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1609:89: ( LEFT_SQUARE RIGHT_SQUARE )*
- loop78:
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:89: ( LEFT_SQUARE RIGHT_SQUARE )*
+ loop80:
do {
- int alt78=2;
- int LA78_0 = input.LA(1);
+ int alt80=2;
+ int LA80_0 = input.LA(1);
- if ( (LA78_0==LEFT_SQUARE) ) {
- alt78=1;
+ if ( (LA80_0==LEFT_SQUARE) ) {
+ alt80=1;
}
- switch (alt78) {
+ switch (alt80) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1609:91: LEFT_SQUARE RIGHT_SQUARE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1626:91: LEFT_SQUARE RIGHT_SQUARE
{
- match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dotted_name4504); if (failed) return text;
- match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dotted_name4506); if (failed) return text;
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_dotted_name4719); if (failed) return text;
+ match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_dotted_name4721); if (failed) return text;
if ( backtracking==0 ) {
buf.append("[]");
}
@@ -6688,7 +6824,7 @@
break;
default :
- break loop78;
+ break loop80;
}
} while (true);
@@ -6716,7 +6852,7 @@
};
// $ANTLR start accessor_path
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1612:1: accessor_path returns [ String text ] : a= accessor_element ( DOT a= accessor_element )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1629:1: accessor_path returns [ String text ] : a= accessor_element ( DOT a= accessor_element )* ;
public final accessor_path_return accessor_path() throws RecognitionException {
accessor_path_return retval = new accessor_path_return();
retval.start = input.LT(1);
@@ -6728,33 +6864,33 @@
StringBuffer buf = new StringBuffer();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1619:2: (a= accessor_element ( DOT a= accessor_element )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1619:4: a= accessor_element ( DOT a= accessor_element )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1636:2: (a= accessor_element ( DOT a= accessor_element )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1636:4: a= accessor_element ( DOT a= accessor_element )*
{
- pushFollow(FOLLOW_accessor_element_in_accessor_path4540);
+ pushFollow(FOLLOW_accessor_element_in_accessor_path4755);
a=accessor_element();
_fsp--;
if (failed) return retval;
if ( backtracking==0 ) {
buf.append(a);
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1619:46: ( DOT a= accessor_element )*
- loop79:
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1636:46: ( DOT a= accessor_element )*
+ loop81:
do {
- int alt79=2;
- int LA79_0 = input.LA(1);
+ int alt81=2;
+ int LA81_0 = input.LA(1);
- if ( (LA79_0==DOT) ) {
- alt79=1;
+ if ( (LA81_0==DOT) ) {
+ alt81=1;
}
- switch (alt79) {
+ switch (alt81) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1619:48: DOT a= accessor_element
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1636:48: DOT a= accessor_element
{
- match(input,DOT,FOLLOW_DOT_in_accessor_path4546); if (failed) return retval;
- pushFollow(FOLLOW_accessor_element_in_accessor_path4550);
+ match(input,DOT,FOLLOW_DOT_in_accessor_path4761); if (failed) return retval;
+ pushFollow(FOLLOW_accessor_element_in_accessor_path4765);
a=accessor_element();
_fsp--;
if (failed) return retval;
@@ -6766,7 +6902,7 @@
break;
default :
- break loop79;
+ break loop81;
}
} while (true);
@@ -6793,7 +6929,7 @@
// $ANTLR start accessor_element
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1622:1: accessor_element returns [ String text ] : i= identifier (s= square_chunk )* ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1639:1: accessor_element returns [ String text ] : i= identifier (s= square_chunk )* ;
public final String accessor_element() throws RecognitionException {
String text = null;
@@ -6806,32 +6942,32 @@
StringBuffer buf = new StringBuffer();
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1629:2: (i= identifier (s= square_chunk )* )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1630:3: i= identifier (s= square_chunk )*
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1646:2: (i= identifier (s= square_chunk )* )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:3: i= identifier (s= square_chunk )*
{
- pushFollow(FOLLOW_identifier_in_accessor_element4588);
+ pushFollow(FOLLOW_identifier_in_accessor_element4803);
i=identifier();
_fsp--;
if (failed) return text;
if ( backtracking==0 ) {
buf.append(input.toString(i.start,i.stop));
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1630:39: (s= square_chunk )*
- loop80:
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:39: (s= square_chunk )*
+ loop82:
do {
- int alt80=2;
- int LA80_0 = input.LA(1);
+ int alt82=2;
+ int LA82_0 = input.LA(1);
- if ( (LA80_0==LEFT_SQUARE) ) {
- alt80=1;
+ if ( (LA82_0==LEFT_SQUARE) ) {
+ alt82=1;
}
- switch (alt80) {
+ switch (alt82) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1630:40: s= square_chunk
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1647:40: s= square_chunk
{
- pushFollow(FOLLOW_square_chunk_in_accessor_element4595);
+ pushFollow(FOLLOW_square_chunk_in_accessor_element4810);
s=square_chunk();
_fsp--;
if (failed) return text;
@@ -6843,7 +6979,7 @@
break;
default :
- break loop80;
+ break loop82;
}
} while (true);
@@ -6868,36 +7004,36 @@
// $ANTLR start rhs_chunk
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1633:1: rhs_chunk[RuleDescr rule] : THEN (~ END )* loc= END opt_semicolon ;
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1650:1: rhs_chunk[RuleDescr rule] : THEN (~ END )* loc= END opt_semicolon ;
public final void rhs_chunk(RuleDescr rule) throws RecognitionException {
Token loc=null;
- Token THEN54=null;
+ Token THEN55=null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1634:2: ( THEN (~ END )* loc= END opt_semicolon )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1635:3: THEN (~ END )* loc= END opt_semicolon
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1651:2: ( THEN (~ END )* loc= END opt_semicolon )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1652:3: THEN (~ END )* loc= END opt_semicolon
{
- THEN54=(Token)input.LT(1);
- match(input,THEN,FOLLOW_THEN_in_rhs_chunk4616); if (failed) return ;
+ THEN55=(Token)input.LT(1);
+ match(input,THEN,FOLLOW_THEN_in_rhs_chunk4831); if (failed) return ;
if ( backtracking==0 ) {
location.setType( Location.LOCATION_RHS );
}
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1636:3: (~ END )*
- loop81:
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1653:3: (~ END )*
+ loop83:
do {
- int alt81=2;
- int LA81_0 = input.LA(1);
+ int alt83=2;
+ int LA83_0 = input.LA(1);
- if ( ((LA81_0>=PACKAGE && LA81_0<=QUERY)||(LA81_0>=TEMPLATE && LA81_0<=81)) ) {
- alt81=1;
+ if ( ((LA83_0>=PACKAGE && LA83_0<=QUERY)||(LA83_0>=TEMPLATE && LA83_0<=83)) ) {
+ alt83=1;
}
- switch (alt81) {
+ switch (alt83) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1636:5: ~ END
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1653:5: ~ END
{
- if ( (input.LA(1)>=PACKAGE && input.LA(1)<=QUERY)||(input.LA(1)>=TEMPLATE && input.LA(1)<=81) ) {
+ if ( (input.LA(1)>=PACKAGE && input.LA(1)<=QUERY)||(input.LA(1)>=TEMPLATE && input.LA(1)<=83) ) {
input.consume();
errorRecovery=false;failed=false;
}
@@ -6905,7 +7041,7 @@
if (backtracking>0) {failed=true; return ;}
MismatchedSetException mse =
new MismatchedSetException(null,input);
- recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk4624); throw mse;
+ recoverFromMismatchedSet(input,mse,FOLLOW_set_in_rhs_chunk4839); throw mse;
}
@@ -6913,20 +7049,20 @@
break;
default :
- break loop81;
+ break loop83;
}
} while (true);
loc=(Token)input.LT(1);
- match(input,END,FOLLOW_END_in_rhs_chunk4648); if (failed) return ;
- pushFollow(FOLLOW_opt_semicolon_in_rhs_chunk4650);
+ match(input,END,FOLLOW_END_in_rhs_chunk4863); if (failed) return ;
+ pushFollow(FOLLOW_opt_semicolon_in_rhs_chunk4865);
opt_semicolon();
_fsp--;
if (failed) return ;
if ( backtracking==0 ) {
// ignoring first line in the consequence
- String buf = input.toString( THEN54, loc );
+ String buf = input.toString( THEN55, loc );
// removing final END keyword
int idx=4;
while( idx < buf.length()-3 && (buf.charAt(idx) == ' ' || buf.charAt(idx) == '\t') ) {
@@ -6936,7 +7072,7 @@
if( idx < buf.length()-3 && buf.charAt(idx) == '\n' ) idx++;
buf = safeSubstring( buf, idx, buf.length()-3 );
rule.setConsequence( buf );
- rule.setConsequenceLocation(offset(THEN54.getLine()), THEN54.getCharPositionInLine());
+ rule.setConsequenceLocation(offset(THEN55.getLine()), THEN55.getCharPositionInLine());
rule.setEndCharacter( ((CommonToken)loc).getStopIndex() );
location.setProperty( Location.LOCATION_RHS_CONTENT, rule.getConsequence() );
@@ -6957,50 +7093,50 @@
// $ANTLR start name
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1656:1: name returns [String name] : ( ID | STRING );
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1673:1: name returns [String name] : ( ID | STRING );
public final String name() throws RecognitionException {
String name = null;
- Token ID55=null;
- Token STRING56=null;
+ Token ID56=null;
+ Token STRING57=null;
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:2: ( ID | STRING )
- int alt82=2;
- int LA82_0 = input.LA(1);
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1674:2: ( ID | STRING )
+ int alt84=2;
+ int LA84_0 = input.LA(1);
- if ( (LA82_0==ID) ) {
- alt82=1;
+ if ( (LA84_0==ID) ) {
+ alt84=1;
}
- else if ( (LA82_0==STRING) ) {
- alt82=2;
+ else if ( (LA84_0==STRING) ) {
+ alt84=2;
}
else {
if (backtracking>0) {failed=true; return name;}
NoViableAltException nvae =
- new NoViableAltException("1656:1: name returns [String name] : ( ID | STRING );", 82, 0, input);
+ new NoViableAltException("1673:1: name returns [String name] : ( ID | STRING );", 84, 0, input);
throw nvae;
}
- switch (alt82) {
+ switch (alt84) {
case 1 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1657:5: ID
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1674:5: ID
{
- ID55=(Token)input.LT(1);
- match(input,ID,FOLLOW_ID_in_name4684); if (failed) return name;
+ ID56=(Token)input.LT(1);
+ match(input,ID,FOLLOW_ID_in_name4899); if (failed) return name;
if ( backtracking==0 ) {
- name = ID55.getText();
+ name = ID56.getText();
}
}
break;
case 2 :
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1658:5: STRING
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1675:5: STRING
{
- STRING56=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_name4692); if (failed) return name;
+ STRING57=(Token)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_name4907); if (failed) return name;
if ( backtracking==0 ) {
- name = getString( STRING56.getText() );
+ name = getString( STRING57.getText() );
}
}
@@ -7022,16 +7158,16 @@
};
// $ANTLR start identifier
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1661:1: identifier : ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | WHEN | THEN | END | IN );
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1678:1: identifier : ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | EVENT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | WHEN | THEN | END | IN );
public final identifier_return identifier() throws RecognitionException {
identifier_return retval = new identifier_return();
retval.start = input.LT(1);
try {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1662:2: ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | WHEN | THEN | END | IN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1679:2: ( ID | PACKAGE | FUNCTION | GLOBAL | IMPORT | EVENT | RULE | QUERY | TEMPLATE | ATTRIBUTES | ENABLED | SALIENCE | DURATION | DIALECT | FROM | INIT | ACTION | REVERSE | RESULT | CONTAINS | EXCLUDES | MEMBEROF | MATCHES | SOUNDSLIKE | WHEN | THEN | END | IN )
// /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:
{
- if ( (input.LA(1)>=PACKAGE && input.LA(1)<=ID)||input.LA(1)==GLOBAL||(input.LA(1)>=QUERY && input.LA(1)<=ATTRIBUTES)||input.LA(1)==ENABLED||input.LA(1)==SALIENCE||(input.LA(1)>=DURATION && input.LA(1)<=DIALECT)||input.LA(1)==FROM||(input.LA(1)>=INIT && input.LA(1)<=RESULT)||(input.LA(1)>=CONTAINS && input.LA(1)<=IN)||input.LA(1)==THEN ) {
+ if ( (input.LA(1)>=PACKAGE && input.LA(1)<=ID)||input.LA(1)==GLOBAL||(input.LA(1)>=QUERY && input.LA(1)<=ATTRIBUTES)||input.LA(1)==ENABLED||input.LA(1)==SALIENCE||(input.LA(1)>=DURATION && input.LA(1)<=DIALECT)||input.LA(1)==FROM||(input.LA(1)>=INIT && input.LA(1)<=RESULT)||(input.LA(1)>=CONTAINS && input.LA(1)<=MEMBEROF)||input.LA(1)==IN||input.LA(1)==THEN ) {
input.consume();
errorRecovery=false;failed=false;
}
@@ -7060,10 +7196,10 @@
// $ANTLR start synpred1
public final void synpred1_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:6: ( EXISTS )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:802:8: EXISTS
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:6: ( EXISTS )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:819:8: EXISTS
{
- match(input,EXISTS,FOLLOW_EXISTS_in_synpred11913); if (failed) return ;
+ match(input,EXISTS,FOLLOW_EXISTS_in_synpred11972); if (failed) return ;
}
}
@@ -7071,10 +7207,10 @@
// $ANTLR start synpred2
public final void synpred2_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:803:5: ( NOT )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:803:7: NOT
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:820:5: ( NOT )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:820:7: NOT
{
- match(input,NOT,FOLLOW_NOT_in_synpred21931); if (failed) return ;
+ match(input,NOT,FOLLOW_NOT_in_synpred21990); if (failed) return ;
}
}
@@ -7082,10 +7218,10 @@
// $ANTLR start synpred3
public final void synpred3_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:804:5: ( EVAL )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:804:7: EVAL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:821:5: ( EVAL )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:821:7: EVAL
{
- match(input,EVAL,FOLLOW_EVAL_in_synpred31950); if (failed) return ;
+ match(input,EVAL,FOLLOW_EVAL_in_synpred32009); if (failed) return ;
}
}
@@ -7093,10 +7229,10 @@
// $ANTLR start synpred4
public final void synpred4_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:805:5: ( FORALL )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:805:7: FORALL
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:822:5: ( FORALL )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:822:7: FORALL
{
- match(input,FORALL,FOLLOW_FORALL_in_synpred41969); if (failed) return ;
+ match(input,FORALL,FOLLOW_FORALL_in_synpred42028); if (failed) return ;
}
}
@@ -7104,10 +7240,10 @@
// $ANTLR start synpred5
public final void synpred5_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:806:5: ( LEFT_PAREN )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:806:7: LEFT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:823:5: ( LEFT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:823:7: LEFT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred51988); if (failed) return ;
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred52047); if (failed) return ;
}
}
@@ -7115,10 +7251,10 @@
// $ANTLR start synpred6
public final void synpred6_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1093:6: ( LEFT_SQUARE )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1093:8: LEFT_SQUARE
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1110:6: ( LEFT_SQUARE )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1110:8: LEFT_SQUARE
{
- match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_synpred62958); if (failed) return ;
+ match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_synpred63017); if (failed) return ;
}
}
@@ -7126,10 +7262,10 @@
// $ANTLR start synpred7
public final void synpred7_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1099:6: ( LEFT_PAREN )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1099:8: LEFT_PAREN
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1116:6: ( LEFT_PAREN )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1116:8: LEFT_PAREN
{
- match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred72991); if (failed) return ;
+ match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_synpred73050); if (failed) return ;
}
}
@@ -7137,11 +7273,11 @@
// $ANTLR start synpred8
public final void synpred8_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1400:6: ( DOUBLE_PIPE and_restr_connective[or] )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1400:6: DOUBLE_PIPE and_restr_connective[or]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1413:6: ( DOUBLE_PIPE and_restr_connective[or] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1413:6: DOUBLE_PIPE and_restr_connective[or]
{
- match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred83723); if (failed) return ;
- pushFollow(FOLLOW_and_restr_connective_in_synpred83734);
+ match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred83745); if (failed) return ;
+ pushFollow(FOLLOW_and_restr_connective_in_synpred83756);
and_restr_connective(or);
_fsp--;
if (failed) return ;
@@ -7152,11 +7288,11 @@
// $ANTLR start synpred9
public final void synpred9_fragment() throws RecognitionException {
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1422:5: ( DOUBLE_AMPER constraint_expression[and] )
- // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1422:5: DOUBLE_AMPER constraint_expression[and]
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1435:5: ( DOUBLE_AMPER constraint_expression[and] )
+ // /home/etirelli/workspace/jboss/jbossrules/drools-compiler/src/main/resources/org/drools/lang/DRL.g:1435:5: DOUBLE_AMPER constraint_expression[and]
{
- match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred93787); if (failed) return ;
- pushFollow(FOLLOW_constraint_expression_in_synpred93798);
+ match(input,DOUBLE_AMPER,FOLLOW_DOUBLE_AMPER_in_synpred93808); if (failed) return ;
+ pushFollow(FOLLOW_constraint_expression_in_synpred93819);
constraint_expression(and);
_fsp--;
if (failed) return ;
@@ -7304,24 +7440,26 @@
static final String DFA8_eofS =
"\6\uffff";
static final String DFA8_minS =
- "\2\4\1\uffff\1\74\1\uffff\1\4";
+ "\2\4\1\uffff\1\76\1\uffff\1\4";
static final String DFA8_maxS =
- "\2\75\1\uffff\1\74\1\uffff\1\75";
+ "\2\77\1\uffff\1\76\1\uffff\1\77";
static final String DFA8_acceptS =
"\2\uffff\1\1\1\uffff\1\2\1\uffff";
static final String DFA8_specialS =
"\6\uffff}>";
static final String[] DFA8_transitionS = {
- "\4\1\1\uffff\1\1\3\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"+
- "\2\1\5\uffff\1\1\5\uffff\4\1\1\uffff\6\1\6\uffff\1\1",
- "\6\2\1\uffff\2\4\6\2\3\uffff\1\2\1\uffff\1\2\6\uffff\2\2\5\uffff"+
- "\1\2\5\uffff\4\2\1\uffff\6\2\4\uffff\1\3\1\uffff\1\2",
+ "\5\1\1\uffff\1\1\3\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"+
+ "\2\1\5\uffff\1\1\5\uffff\4\1\1\uffff\5\1\1\uffff\1\1\6\uffff"+
+ "\1\1",
+ "\7\2\1\uffff\2\4\6\2\3\uffff\1\2\1\uffff\1\2\6\uffff\2\2\5\uffff"+
+ "\1\2\5\uffff\4\2\1\uffff\5\2\1\uffff\1\2\4\uffff\1\3\1\uffff"+
+ "\1\2",
"",
"\1\5",
"",
- "\4\2\1\uffff\1\2\1\uffff\2\4\6\2\3\uffff\1\2\1\uffff\1\2\6\uffff"+
- "\2\2\5\uffff\1\2\5\uffff\4\2\1\uffff\6\2\4\uffff\1\3\1\uffff"+
- "\1\2"
+ "\5\2\1\uffff\1\2\1\uffff\2\4\6\2\3\uffff\1\2\1\uffff\1\2\6\uffff"+
+ "\2\2\5\uffff\1\2\5\uffff\4\2\1\uffff\5\2\1\uffff\1\2\4\uffff"+
+ "\1\3\1\uffff\1\2"
};
static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS);
@@ -7354,7 +7492,7 @@
this.transition = DFA8_transition;
}
public String getDescription() {
- return "344:15: (paramType= dotted_name )?";
+ return "361:15: (paramType= dotted_name )?";
}
}
static final String DFA9_eotS =
@@ -7362,24 +7500,26 @@
static final String DFA9_eofS =
"\6\uffff";
static final String DFA9_minS =
- "\2\4\1\uffff\1\74\1\uffff\1\4";
+ "\2\4\1\76\2\uffff\1\4";
static final String DFA9_maxS =
- "\2\75\1\uffff\1\74\1\uffff\1\75";
+ "\2\77\1\76\2\uffff\1\77";
static final String DFA9_acceptS =
- "\2\uffff\1\1\1\uffff\1\2\1\uffff";
+ "\3\uffff\1\2\1\1\1\uffff";
static final String DFA9_specialS =
"\6\uffff}>";
static final String[] DFA9_transitionS = {
- "\4\1\1\uffff\1\1\3\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"+
- "\2\1\5\uffff\1\1\5\uffff\4\1\1\uffff\6\1\6\uffff\1\1",
- "\6\2\1\uffff\2\4\6\2\3\uffff\1\2\1\uffff\1\2\6\uffff\2\2\5\uffff"+
- "\1\2\5\uffff\4\2\1\uffff\6\2\4\uffff\1\3\1\uffff\1\2",
- "",
+ "\5\1\1\uffff\1\1\3\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"+
+ "\2\1\5\uffff\1\1\5\uffff\4\1\1\uffff\5\1\1\uffff\1\1\6\uffff"+
+ "\1\1",
+ "\7\4\1\uffff\2\3\6\4\3\uffff\1\4\1\uffff\1\4\6\uffff\2\4\5\uffff"+
+ "\1\4\5\uffff\4\4\1\uffff\5\4\1\uffff\1\4\4\uffff\1\2\1\uffff"+
+ "\1\4",
"\1\5",
"",
- "\4\2\1\uffff\1\2\1\uffff\2\4\6\2\3\uffff\1\2\1\uffff\1\2\6\uffff"+
- "\2\2\5\uffff\1\2\5\uffff\4\2\1\uffff\6\2\4\uffff\1\3\1\uffff"+
- "\1\2"
+ "",
+ "\5\4\1\uffff\1\4\1\uffff\2\3\6\4\3\uffff\1\4\1\uffff\1\4\6\uffff"+
+ "\2\4\5\uffff\1\4\5\uffff\4\4\1\uffff\5\4\1\uffff\1\4\4\uffff"+
+ "\1\2\1\uffff\1\4"
};
static final short[] DFA9_eot = DFA.unpackEncodedString(DFA9_eotS);
@@ -7412,7 +7552,7 @@
this.transition = DFA9_transition;
}
public String getDescription() {
- return "349:22: (paramType= dotted_name )?";
+ return "366:22: (paramType= dotted_name )?";
}
}
static final String DFA17_eotS =
@@ -7420,9 +7560,9 @@
static final String DFA17_eofS =
"\11\uffff";
static final String DFA17_minS =
- "\2\7\1\uffff\1\7\1\uffff\1\4\1\74\2\7";
+ "\2\10\1\uffff\1\10\1\uffff\1\4\1\76\2\10";
static final String DFA17_maxS =
- "\2\52\1\uffff\1\112\1\uffff\1\75\1\74\2\73";
+ "\2\53\1\uffff\1\114\1\uffff\1\77\1\76\2\75";
static final String DFA17_acceptS =
"\2\uffff\1\2\1\uffff\1\1\4\uffff";
static final String DFA17_specialS =
@@ -7432,13 +7572,14 @@
"\1\3\2\uffff\1\2\1\uffff\1\4\25\uffff\1\2\1\uffff\1\2\2\uffff"+
"\4\2",
"",
- "\1\4\1\5\1\uffff\1\2\2\4\56\uffff\1\6\16\uffff\1\2",
+ "\1\4\1\5\1\uffff\1\2\2\4\57\uffff\1\6\16\uffff\1\2",
"",
- "\4\7\1\uffff\1\7\3\uffff\6\7\3\uffff\1\7\1\uffff\1\7\6\uffff"+
- "\2\7\5\uffff\1\7\5\uffff\4\7\1\uffff\6\7\6\uffff\1\7",
+ "\5\7\1\uffff\1\7\3\uffff\6\7\3\uffff\1\7\1\uffff\1\7\6\uffff"+
+ "\2\7\5\uffff\1\7\5\uffff\4\7\1\uffff\5\7\1\uffff\1\7\6\uffff"+
+ "\1\7",
"\1\10",
- "\1\4\1\5\1\uffff\1\2\60\uffff\1\6",
- "\1\4\2\uffff\1\2\60\uffff\1\6"
+ "\1\4\1\5\1\uffff\1\2\61\uffff\1\6",
+ "\1\4\2\uffff\1\2\61\uffff\1\6"
};
static final short[] DFA17_eot = DFA.unpackEncodedString(DFA17_eotS);
@@ -7471,7 +7612,7 @@
this.transition = DFA17_transition;
}
public String getDescription() {
- return "393:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?";
+ return "410:3: ( LEFT_PAREN ( ( (paramType= qualified_id )? paramName= ID ) ( COMMA (paramType= qualified_id )? paramName= ID )* )? RIGHT_PAREN )?";
}
}
static final String DFA52_eotS =
@@ -7479,101 +7620,106 @@
static final String DFA52_eofS =
"\150\uffff";
static final String DFA52_minS =
- "\1\7\1\uffff\1\4\1\uffff\3\4\1\0\1\uffff\4\4\1\uffff\4\4\1\0\1\4"+
- "\1\0\5\4\1\0\1\4\1\0\1\4\2\0\3\4\1\0\1\4\2\0\1\4\2\0\3\4\1\0\1\4"+
- "\1\0\1\4\3\0\3\4\1\0\3\4\1\0\3\4\1\0\1\4\1\0\1\4\1\uffff\44\0";
+ "\1\10\1\uffff\1\4\1\uffff\3\4\1\0\1\uffff\4\4\1\uffff\4\4\1\0\2"+
+ "\4\1\0\4\4\1\0\1\4\1\0\1\4\2\0\3\4\2\0\2\4\3\0\3\4\2\0\2\4\3\0\3"+
+ "\4\1\0\3\4\1\0\3\4\1\0\1\4\1\0\1\4\1\uffff\44\0";
static final String DFA52_maxS =
- "\1\110\1\uffff\1\121\1\uffff\3\121\1\0\1\uffff\4\121\1\uffff\4\121"+
- "\1\0\1\121\1\0\5\121\1\0\1\121\1\0\1\121\2\0\3\121\1\0\1\121\2\0"+
- "\1\121\2\0\3\121\1\0\1\121\1\0\1\121\3\0\3\121\1\0\3\121\1\0\3\121"+
- "\1\0\1\121\1\0\1\121\1\uffff\44\0";
+ "\1\112\1\uffff\1\123\1\uffff\3\123\1\0\1\uffff\4\123\1\uffff\4\123"+
+ "\1\0\2\123\1\0\4\123\1\0\1\123\1\0\1\123\2\0\3\123\2\0\2\123\3\0"+
+ "\3\123\2\0\2\123\3\0\3\123\1\0\3\123\1\0\3\123\1\0\1\123\1\0\1\123"+
+ "\1\uffff\44\0";
static final String DFA52_acceptS =
"\1\uffff\1\1\1\uffff\1\3\4\uffff\1\2\4\uffff\1\2\65\uffff\1\2\44"+
"\uffff";
static final String DFA52_specialS =
- "\1\34\1\uffff\1\62\1\uffff\1\22\1\41\1\10\1\60\1\uffff\1\14\1\20"+
- "\1\64\1\31\1\uffff\1\35\1\72\1\65\1\54\1\61\1\47\1\0\1\12\1\33\1"+
- "\24\1\74\1\17\1\66\1\30\1\56\1\27\1\76\1\73\1\5\1\42\1\51\1\2\1"+
- "\46\1\37\1\67\1\45\1\75\1\36\1\1\1\26\1\4\1\57\1\16\1\63\1\15\1"+
- "\11\1\55\1\70\1\21\1\71\1\50\1\13\1\6\1\43\1\52\1\3\1\7\1\44\1\53"+
- "\1\23\1\40\1\25\1\32\45\uffff}>";
+ "\1\13\1\uffff\1\55\1\uffff\1\66\1\30\1\21\1\74\1\uffff\1\54\1\56"+
+ "\1\65\1\34\1\uffff\1\70\1\5\1\76\1\63\1\35\1\53\1\62\1\6\1\72\1"+
+ "\61\1\17\1\16\1\64\1\33\1\10\1\32\1\12\1\11\1\25\1\22\1\41\1\44"+
+ "\1\31\1\52\1\51\1\20\1\50\1\37\1\73\1\36\1\40\1\1\1\47\1\15\1\14"+
+ "\1\67\1\4\1\60\1\57\1\75\1\0\1\7\1\26\1\23\1\42\1\71\1\27\1\24\1"+
+ "\43\1\45\1\2\1\46\1\3\45\uffff}>";
static final String[] DFA52_transitionS = {
"\2\3\1\uffff\1\2\2\3\1\uffff\1\3\23\uffff\4\3\1\uffff\4\3\1"+
- "\uffff\1\3\16\uffff\1\1\1\uffff\1\3\12\uffff\1\3",
+ "\uffff\1\3\17\uffff\1\1\1\uffff\1\3\12\uffff\1\3",
"",
- "\3\15\1\14\2\15\1\7\1\15\1\10\25\15\1\5\1\15\1\4\2\15\1\6\1"+
- "\11\1\12\1\13\47\15",
+ "\4\15\1\14\2\15\1\7\1\15\1\10\25\15\1\5\1\15\1\4\2\15\1\6\1"+
+ "\11\1\12\1\13\50\15",
"",
- "\3\15\1\23\2\15\1\22\1\15\1\10\32\15\1\16\1\17\1\20\1\21\47"+
+ "\4\15\1\23\2\15\1\22\1\15\1\10\32\15\1\16\1\17\1\20\1\21\50"+
"\15",
- "\3\15\1\31\2\15\1\24\1\15\1\10\32\15\1\25\1\26\1\27\1\30\47"+
+ "\4\15\1\31\2\15\1\25\1\15\1\10\32\15\1\24\1\26\1\27\1\30\50"+
"\15",
- "\3\15\1\33\2\15\1\32\1\15\1\10\105\15",
+ "\4\15\1\33\2\15\1\32\1\15\1\10\106\15",
"\1\uffff",
"",
- "\3\15\1\35\2\15\1\34\1\15\1\10\105\15",
- "\6\15\1\36\1\15\1\10\105\15",
- "\6\15\1\37\1\15\1\10\105\15",
- "\4\15\1\41\1\15\1\43\1\15\1\10\56\15\1\42\16\15\1\40\7\15",
+ "\4\15\1\35\2\15\1\34\1\15\1\10\106\15",
+ "\7\15\1\36\1\15\1\10\106\15",
+ "\7\15\1\37\1\15\1\10\106\15",
+ "\5\15\1\41\1\15\1\43\1\15\1\10\57\15\1\42\16\15\1\40\7\15",
"",
- "\3\15\1\44\2\15\1\45\1\15\1\10\105\15",
- "\3\15\1\47\2\15\1\46\1\15\1\10\105\15",
- "\6\15\1\50\1\15\1\10\105\15",
- "\6\15\1\51\1\15\1\10\105\15",
+ "\4\15\1\45\2\15\1\44\1\15\1\10\106\15",
+ "\4\15\1\46\2\15\1\47\1\15\1\10\106\15",
+ "\7\15\1\50\1\15\1\10\106\15",
+ "\7\15\1\51\1\15\1\10\106\15",
"\1\uffff",
- "\4\15\1\53\1\15\1\55\1\15\1\10\56\15\1\54\16\15\1\52\7\15",
+ "\5\15\1\53\1\15\1\55\1\15\1\10\57\15\1\54\16\15\1\52\7\15",
+ "\4\15\1\57\2\15\1\56\1\15\1\10\106\15",
"\1\uffff",
- "\3\15\1\56\2\15\1\57\1\15\1\10\105\15",
- "\3\15\1\60\2\15\1\61\1\15\1\10\105\15",
- "\6\15\1\62\1\15\1\10\105\15",
- "\6\15\1\63\1\15\1\10\105\15",
- "\4\15\1\65\1\15\1\67\1\15\1\10\56\15\1\66\16\15\1\64\7\15",
+ "\4\15\1\60\2\15\1\61\1\15\1\10\106\15",
+ "\7\15\1\62\1\15\1\10\106\15",
+ "\7\15\1\63\1\15\1\10\106\15",
+ "\5\15\1\65\1\15\1\67\1\15\1\10\57\15\1\66\16\15\1\64\7\15",
"\1\uffff",
- "\4\15\1\71\1\15\1\73\1\15\1\10\56\15\1\72\16\15\1\70\7\15",
+ "\5\15\1\71\1\15\1\73\1\15\1\10\57\15\1\72\16\15\1\70\7\15",
"\1\uffff",
- "\4\15\1\75\1\15\1\77\1\15\1\10\56\15\1\76\16\15\1\74\7\15",
+ "\5\15\1\75\1\15\1\77\1\15\1\10\57\15\1\76\16\15\1\74\7\15",
"\1\uffff",
"\1\uffff",
- "\3\15\1\100\2\15\1\101\1\15\1\10\105\15",
- "\4\102\1\15\1\102\1\103\1\15\1\10\6\102\3\15\1\102\1\15\1\102"+
- "\6\15\2\102\5\15\1\102\5\15\4\102\1\15\6\102\6\15\1\102\24\15",
- "\6\15\1\103\1\15\1\10\57\15\1\104\25\15",
+ "\4\15\1\100\2\15\1\101\1\15\1\10\106\15",
+ "\5\102\1\15\1\102\1\103\1\15\1\10\6\102\3\15\1\102\1\15\1\102"+
+ "\6\15\2\102\5\15\1\102\5\15\4\102\1\15\5\102\1\15\1\102\6\15"+
+ "\1\102\24\15",
+ "\7\15\1\103\1\15\1\10\60\15\1\104\25\15",
"\1\uffff",
- "\4\15\1\106\1\15\1\110\1\15\1\10\56\15\1\107\16\15\1\105\7\15",
"\1\uffff",
+ "\5\15\1\106\1\15\1\110\1\15\1\10\57\15\1\107\16\15\1\105\7\15",
+ "\5\15\1\112\1\15\1\114\1\15\1\10\57\15\1\113\16\15\1\111\7\15",
"\1\uffff",
- "\4\15\1\112\1\15\1\114\1\15\1\10\56\15\1\113\16\15\1\111\7\15",
"\1\uffff",
"\1\uffff",
- "\3\15\1\115\2\15\1\116\1\15\1\10\105\15",
- "\4\117\1\15\1\117\1\103\1\15\1\10\6\117\3\15\1\117\1\15\1\117"+
- "\6\15\2\117\5\15\1\117\5\15\4\117\1\15\6\117\6\15\1\117\24\15",
- "\6\15\1\103\1\15\1\10\57\15\1\120\25\15",
+ "\4\15\1\115\2\15\1\116\1\15\1\10\106\15",
+ "\5\117\1\15\1\117\1\103\1\15\1\10\6\117\3\15\1\117\1\15\1\117"+
+ "\6\15\2\117\5\15\1\117\5\15\4\117\1\15\5\117\1\15\1\117\6\15"+
+ "\1\117\24\15",
+ "\7\15\1\103\1\15\1\10\60\15\1\120\25\15",
"\1\uffff",
- "\4\15\1\122\1\15\1\124\1\15\1\10\56\15\1\123\16\15\1\121\7\15",
"\1\uffff",
- "\4\15\1\126\1\15\1\130\1\15\1\10\56\15\1\127\16\15\1\125\7\15",
+ "\5\15\1\122\1\15\1\123\1\15\1\10\57\15\1\124\16\15\1\121\7\15",
+ "\5\15\1\126\1\15\1\130\1\15\1\10\57\15\1\127\16\15\1\125\7\15",
"\1\uffff",
"\1\uffff",
"\1\uffff",
- "\3\15\1\131\2\15\1\132\1\15\1\10\105\15",
- "\4\133\1\15\1\133\1\103\1\15\1\10\6\133\3\15\1\133\1\15\1\133"+
- "\6\15\2\133\5\15\1\133\5\15\4\133\1\15\6\133\6\15\1\133\24\15",
- "\6\15\1\103\1\15\1\10\57\15\1\134\25\15",
+ "\4\15\1\131\2\15\1\132\1\15\1\10\106\15",
+ "\5\133\1\15\1\133\1\103\1\15\1\10\6\133\3\15\1\133\1\15\1\133"+
+ "\6\15\2\133\5\15\1\133\5\15\4\133\1\15\5\133\1\15\1\133\6\15"+
+ "\1\133\24\15",
+ "\7\15\1\103\1\15\1\10\60\15\1\134\25\15",
"\1\uffff",
- "\3\15\1\135\2\15\1\136\1\15\1\10\105\15",
- "\4\137\1\15\1\137\1\103\1\15\1\10\6\137\3\15\1\137\1\15\1\137"+
- "\6\15\2\137\5\15\1\137\5\15\4\137\1\15\6\137\6\15\1\137\24\15",
- "\6\15\1\103\1\15\1\10\57\15\1\140\25\15",
+ "\4\15\1\135\2\15\1\136\1\15\1\10\106\15",
+ "\5\137\1\15\1\137\1\103\1\15\1\10\6\137\3\15\1\137\1\15\1\137"+
+ "\6\15\2\137\5\15\1\137\5\15\4\137\1\15\5\137\1\15\1\137\6\15"+
+ "\1\137\24\15",
+ "\7\15\1\103\1\15\1\10\60\15\1\140\25\15",
"\1\uffff",
- "\3\15\1\141\2\15\1\142\1\15\1\10\105\15",
- "\4\143\1\15\1\143\1\103\1\15\1\10\6\143\3\15\1\143\1\15\1\143"+
- "\6\15\2\143\5\15\1\143\5\15\4\143\1\15\6\143\6\15\1\143\24\15",
- "\6\15\1\103\1\15\1\10\57\15\1\144\25\15",
+ "\4\15\1\141\2\15\1\142\1\15\1\10\106\15",
+ "\5\143\1\15\1\143\1\103\1\15\1\10\6\143\3\15\1\143\1\15\1\143"+
+ "\6\15\2\143\5\15\1\143\5\15\4\143\1\15\5\143\1\15\1\143\6\15"+
+ "\1\143\24\15",
+ "\7\15\1\103\1\15\1\10\60\15\1\144\25\15",
"\1\uffff",
- "\4\15\1\145\1\15\1\147\1\15\1\10\56\15\1\146\26\15",
+ "\5\15\1\145\1\15\1\147\1\15\1\10\57\15\1\146\26\15",
"\1\uffff",
- "\4\15\1\41\1\15\1\43\1\15\1\10\56\15\1\42\26\15",
+ "\5\15\1\41\1\15\1\43\1\15\1\10\57\15\1\42\26\15",
"",
"\1\uffff",
"\1\uffff",
@@ -7643,246 +7789,221 @@
this.transition = DFA52_transition;
}
public String getDescription() {
- return "1092:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?";
+ return "1109:4: ( ( LEFT_SQUARE )=>sqarg= square_chunk | ( LEFT_PAREN )=>paarg= paren_chunk )?";
}
public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
int _s = s;
switch ( s ) {
case 0 :
- int LA52_20 = input.LA(1);
+ int LA52_54 = input.LA(1);
- int index52_20 = input.index();
+ int index52_54 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 13;}
+ if ( (LA52_54==RIGHT_SQUARE) ) {s = 92;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_54==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( ((LA52_54>=PACKAGE && LA52_54<=GLOBAL)||LA52_54==COMMA||(LA52_54>=QUERY && LA52_54<=LEFT_SQUARE)||(LA52_54>=THEN && LA52_54<=83)) && (synpred7())) {s = 13;}
+
+ else if ( (LA52_54==LEFT_PAREN) && (synpred7())) {s = 67;}
+
- input.seek(index52_20);
+ input.seek(index52_54);
if ( s>=0 ) return s;
break;
case 1 :
- int LA52_42 = input.LA(1);
+ int LA52_45 = input.LA(1);
- int index52_42 = input.index();
+ int index52_45 = input.index();
input.rewind();
s = -1;
- if ( (LA52_42==ID) ) {s = 77;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( (LA52_42==LEFT_PAREN) ) {s = 78;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_42==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_42>=PACKAGE && LA52_42<=FUNCTION)||(LA52_42>=DOT && LA52_42<=GLOBAL)||LA52_42==COMMA||(LA52_42>=QUERY && LA52_42<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_42);
+ input.seek(index52_45);
if ( s>=0 ) return s;
break;
case 2 :
- int LA52_35 = input.LA(1);
+ int LA52_64 = input.LA(1);
- int index52_35 = input.index();
+ int index52_64 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( (LA52_64==DOT) ) {s = 101;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_64==LEFT_SQUARE) ) {s = 102;}
+ else if ( (LA52_64==LEFT_PAREN) ) {s = 103;}
+
+ else if ( (LA52_64==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_64>=PACKAGE && LA52_64<=ID)||LA52_64==GLOBAL||LA52_64==COMMA||(LA52_64>=QUERY && LA52_64<=RIGHT_CURLY)||(LA52_64>=RIGHT_SQUARE && LA52_64<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_35);
+ input.seek(index52_64);
if ( s>=0 ) return s;
break;
case 3 :
- int LA52_59 = input.LA(1);
+ int LA52_66 = input.LA(1);
- int index52_59 = input.index();
+ int index52_66 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( (LA52_66==LEFT_SQUARE) ) {s = 34;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_66==LEFT_PAREN) ) {s = 35;}
+ else if ( (LA52_66==DOT) ) {s = 33;}
+
+ else if ( (LA52_66==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_66>=PACKAGE && LA52_66<=ID)||LA52_66==GLOBAL||LA52_66==COMMA||(LA52_66>=QUERY && LA52_66<=RIGHT_CURLY)||(LA52_66>=RIGHT_SQUARE && LA52_66<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_59);
+ input.seek(index52_66);
if ( s>=0 ) return s;
break;
case 4 :
- int LA52_44 = input.LA(1);
+ int LA52_50 = input.LA(1);
- int index52_44 = input.index();
+ int index52_50 = input.index();
input.rewind();
s = -1;
- if ( (LA52_44==RIGHT_SQUARE) ) {s = 80;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( (LA52_44==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (true) ) {s = 3;}
- else if ( ((LA52_44>=PACKAGE && LA52_44<=GLOBAL)||LA52_44==COMMA||(LA52_44>=QUERY && LA52_44<=LEFT_SQUARE)||(LA52_44>=THEN && LA52_44<=81)) && (synpred7())) {s = 13;}
-
- else if ( (LA52_44==LEFT_PAREN) && (synpred7())) {s = 67;}
-
- input.seek(index52_44);
+ input.seek(index52_50);
if ( s>=0 ) return s;
break;
case 5 :
- int LA52_32 = input.LA(1);
+ int LA52_15 = input.LA(1);
- int index52_32 = input.index();
+ int index52_15 = input.index();
input.rewind();
s = -1;
- if ( (LA52_32==ID) ) {s = 64;}
+ if ( (LA52_15==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_32==LEFT_PAREN) ) {s = 65;}
+ else if ( (LA52_15==ID) ) {s = 38;}
- else if ( (LA52_32==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_15==LEFT_PAREN) ) {s = 39;}
- else if ( ((LA52_32>=PACKAGE && LA52_32<=FUNCTION)||(LA52_32>=DOT && LA52_32<=GLOBAL)||LA52_32==COMMA||(LA52_32>=QUERY && LA52_32<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_15>=PACKAGE && LA52_15<=EVENT)||(LA52_15>=DOT && LA52_15<=GLOBAL)||LA52_15==COMMA||(LA52_15>=QUERY && LA52_15<=83)) && (synpred7())) {s = 13;}
- input.seek(index52_32);
+ input.seek(index52_15);
if ( s>=0 ) return s;
break;
case 6 :
- int LA52_56 = input.LA(1);
+ int LA52_21 = input.LA(1);
- int index52_56 = input.index();
+ int index52_21 = input.index();
input.rewind();
s = -1;
- if ( (LA52_56==ID) ) {s = 93;}
+ if ( (synpred7()) ) {s = 13;}
- else if ( (LA52_56==LEFT_PAREN) ) {s = 94;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_56==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_56>=PACKAGE && LA52_56<=FUNCTION)||(LA52_56>=DOT && LA52_56<=GLOBAL)||LA52_56==COMMA||(LA52_56>=QUERY && LA52_56<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_56);
+ input.seek(index52_21);
if ( s>=0 ) return s;
break;
case 7 :
- int LA52_60 = input.LA(1);
+ int LA52_55 = input.LA(1);
- int index52_60 = input.index();
+ int index52_55 = input.index();
input.rewind();
s = -1;
- if ( (LA52_60==ID) ) {s = 97;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( (LA52_60==LEFT_PAREN) ) {s = 98;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_60==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_60>=PACKAGE && LA52_60<=FUNCTION)||(LA52_60>=DOT && LA52_60<=GLOBAL)||LA52_60==COMMA||(LA52_60>=QUERY && LA52_60<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_60);
+ input.seek(index52_55);
if ( s>=0 ) return s;
break;
case 8 :
- int LA52_6 = input.LA(1);
+ int LA52_28 = input.LA(1);
- int index52_6 = input.index();
+ int index52_28 = input.index();
input.rewind();
s = -1;
- if ( (LA52_6==LEFT_PAREN) ) {s = 26;}
+ if ( (synpred7()) ) {s = 13;}
- else if ( (LA52_6==ID) ) {s = 27;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_6==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_6>=PACKAGE && LA52_6<=FUNCTION)||(LA52_6>=DOT && LA52_6<=GLOBAL)||LA52_6==COMMA||(LA52_6>=QUERY && LA52_6<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_6);
+ input.seek(index52_28);
if ( s>=0 ) return s;
break;
case 9 :
- int LA52_49 = input.LA(1);
+ int LA52_31 = input.LA(1);
- int index52_49 = input.index();
+ int index52_31 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( (synpred7()) ) {s = 13;}
else if ( (true) ) {s = 3;}
- input.seek(index52_49);
+ input.seek(index52_31);
if ( s>=0 ) return s;
break;
case 10 :
- int LA52_21 = input.LA(1);
+ int LA52_30 = input.LA(1);
- int index52_21 = input.index();
+ int index52_30 = input.index();
input.rewind();
s = -1;
- if ( (LA52_21==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ if ( (synpred7()) ) {s = 13;}
- else if ( (LA52_21==ID) ) {s = 46;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_21==LEFT_PAREN) ) {s = 47;}
-
- else if ( ((LA52_21>=PACKAGE && LA52_21<=FUNCTION)||(LA52_21>=DOT && LA52_21<=GLOBAL)||LA52_21==COMMA||(LA52_21>=QUERY && LA52_21<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_21);
+ input.seek(index52_30);
if ( s>=0 ) return s;
break;
case 11 :
- int LA52_55 = input.LA(1);
+ int LA52_0 = input.LA(1);
- int index52_55 = input.index();
+ int index52_0 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( (LA52_0==LEFT_SQUARE) && (synpred6())) {s = 1;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_0==LEFT_PAREN) ) {s = 2;}
+ else if ( ((LA52_0>=ID && LA52_0<=DOT)||(LA52_0>=COMMA && LA52_0<=RIGHT_PAREN)||LA52_0==END||(LA52_0>=OR && LA52_0<=DOUBLE_AMPER)||(LA52_0>=EXISTS && LA52_0<=FORALL)||LA52_0==INIT||LA52_0==THEN||LA52_0==74) ) {s = 3;}
+
- input.seek(index52_55);
+ input.seek(index52_0);
if ( s>=0 ) return s;
break;
case 12 :
- int LA52_9 = input.LA(1);
-
-
- int index52_9 = input.index();
- input.rewind();
- s = -1;
- if ( (LA52_9==LEFT_PAREN) ) {s = 28;}
-
- else if ( (LA52_9==ID) ) {s = 29;}
-
- else if ( (LA52_9==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_9>=PACKAGE && LA52_9<=FUNCTION)||(LA52_9>=DOT && LA52_9<=GLOBAL)||LA52_9==COMMA||(LA52_9>=QUERY && LA52_9<=81)) && (synpred7())) {s = 13;}
-
-
- input.seek(index52_9);
- if ( s>=0 ) return s;
- break;
- case 13 :
int LA52_48 = input.LA(1);
int index52_48 = input.index();
input.rewind();
s = -1;
- if ( (LA52_48==74) ) {s = 85;}
+ if ( (LA52_48==76) ) {s = 85;}
else if ( (LA52_48==DOT) ) {s = 86;}
@@ -7892,43 +8013,43 @@
else if ( (LA52_48==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( ((LA52_48>=PACKAGE && LA52_48<=ID)||LA52_48==GLOBAL||LA52_48==COMMA||(LA52_48>=QUERY && LA52_48<=RIGHT_CURLY)||(LA52_48>=RIGHT_SQUARE && LA52_48<=73)||(LA52_48>=75 && LA52_48<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_48>=PACKAGE && LA52_48<=ID)||LA52_48==GLOBAL||LA52_48==COMMA||(LA52_48>=QUERY && LA52_48<=RIGHT_CURLY)||(LA52_48>=RIGHT_SQUARE && LA52_48<=75)||(LA52_48>=77 && LA52_48<=83)) && (synpred7())) {s = 13;}
input.seek(index52_48);
if ( s>=0 ) return s;
break;
- case 14 :
- int LA52_46 = input.LA(1);
+ case 13 :
+ int LA52_47 = input.LA(1);
- int index52_46 = input.index();
+ int index52_47 = input.index();
input.rewind();
s = -1;
- if ( (LA52_46==74) ) {s = 81;}
+ if ( (LA52_47==76) ) {s = 81;}
- else if ( (LA52_46==DOT) ) {s = 82;}
+ else if ( (LA52_47==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_46==LEFT_SQUARE) ) {s = 83;}
+ else if ( (LA52_47==DOT) ) {s = 82;}
- else if ( (LA52_46==LEFT_PAREN) ) {s = 84;}
+ else if ( (LA52_47==LEFT_PAREN) ) {s = 83;}
- else if ( (LA52_46==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_47==LEFT_SQUARE) ) {s = 84;}
- else if ( ((LA52_46>=PACKAGE && LA52_46<=ID)||LA52_46==GLOBAL||LA52_46==COMMA||(LA52_46>=QUERY && LA52_46<=RIGHT_CURLY)||(LA52_46>=RIGHT_SQUARE && LA52_46<=73)||(LA52_46>=75 && LA52_46<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_47>=PACKAGE && LA52_47<=ID)||LA52_47==GLOBAL||LA52_47==COMMA||(LA52_47>=QUERY && LA52_47<=RIGHT_CURLY)||(LA52_47>=RIGHT_SQUARE && LA52_47<=75)||(LA52_47>=77 && LA52_47<=83)) && (synpred7())) {s = 13;}
- input.seek(index52_46);
+ input.seek(index52_47);
if ( s>=0 ) return s;
break;
- case 15 :
+ case 14 :
int LA52_25 = input.LA(1);
int index52_25 = input.index();
input.rewind();
s = -1;
- if ( (LA52_25==74) ) {s = 52;}
+ if ( (LA52_25==76) ) {s = 52;}
else if ( (LA52_25==DOT) ) {s = 53;}
@@ -7938,306 +8059,327 @@
else if ( (LA52_25==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( ((LA52_25>=PACKAGE && LA52_25<=ID)||LA52_25==GLOBAL||LA52_25==COMMA||(LA52_25>=QUERY && LA52_25<=RIGHT_CURLY)||(LA52_25>=RIGHT_SQUARE && LA52_25<=73)||(LA52_25>=75 && LA52_25<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_25>=PACKAGE && LA52_25<=ID)||LA52_25==GLOBAL||LA52_25==COMMA||(LA52_25>=QUERY && LA52_25<=RIGHT_CURLY)||(LA52_25>=RIGHT_SQUARE && LA52_25<=75)||(LA52_25>=77 && LA52_25<=83)) && (synpred7())) {s = 13;}
input.seek(index52_25);
if ( s>=0 ) return s;
break;
- case 16 :
- int LA52_10 = input.LA(1);
+ case 15 :
+ int LA52_24 = input.LA(1);
- int index52_10 = input.index();
+ int index52_24 = input.index();
input.rewind();
s = -1;
- if ( (LA52_10==LEFT_PAREN) ) {s = 30;}
+ if ( (LA52_24==LEFT_PAREN) ) {s = 51;}
- else if ( (LA52_10==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_24==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( ((LA52_10>=PACKAGE && LA52_10<=GLOBAL)||LA52_10==COMMA||(LA52_10>=QUERY && LA52_10<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_24>=PACKAGE && LA52_24<=GLOBAL)||LA52_24==COMMA||(LA52_24>=QUERY && LA52_24<=83)) && (synpred7())) {s = 13;}
- input.seek(index52_10);
+ input.seek(index52_24);
if ( s>=0 ) return s;
break;
+ case 16 :
+ int LA52_39 = input.LA(1);
+
+
+ int index52_39 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred7()) ) {s = 67;}
+
+ else if ( (true) ) {s = 3;}
+
+
+ input.seek(index52_39);
+ if ( s>=0 ) return s;
+ break;
case 17 :
- int LA52_52 = input.LA(1);
+ int LA52_6 = input.LA(1);
- int index52_52 = input.index();
+ int index52_6 = input.index();
input.rewind();
s = -1;
- if ( (LA52_52==ID) ) {s = 89;}
+ if ( (LA52_6==LEFT_PAREN) ) {s = 26;}
- else if ( (LA52_52==LEFT_PAREN) ) {s = 90;}
+ else if ( (LA52_6==ID) ) {s = 27;}
- else if ( (LA52_52==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_6==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( ((LA52_52>=PACKAGE && LA52_52<=FUNCTION)||(LA52_52>=DOT && LA52_52<=GLOBAL)||LA52_52==COMMA||(LA52_52>=QUERY && LA52_52<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_6>=PACKAGE && LA52_6<=EVENT)||(LA52_6>=DOT && LA52_6<=GLOBAL)||LA52_6==COMMA||(LA52_6>=QUERY && LA52_6<=83)) && (synpred7())) {s = 13;}
- input.seek(index52_52);
+ input.seek(index52_6);
if ( s>=0 ) return s;
break;
case 18 :
- int LA52_4 = input.LA(1);
+ int LA52_33 = input.LA(1);
- int index52_4 = input.index();
+ int index52_33 = input.index();
input.rewind();
s = -1;
- if ( (LA52_4==EXISTS) ) {s = 14;}
+ if ( ((LA52_33>=PACKAGE && LA52_33<=ID)||LA52_33==GLOBAL||(LA52_33>=QUERY && LA52_33<=ATTRIBUTES)||LA52_33==ENABLED||LA52_33==SALIENCE||(LA52_33>=DURATION && LA52_33<=DIALECT)||LA52_33==FROM||(LA52_33>=INIT && LA52_33<=RESULT)||(LA52_33>=CONTAINS && LA52_33<=MEMBEROF)||LA52_33==IN||LA52_33==THEN) ) {s = 66;}
- else if ( (LA52_4==NOT) ) {s = 15;}
+ else if ( (LA52_33==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_4==EVAL) ) {s = 16;}
+ else if ( (LA52_33==DOT||LA52_33==COMMA||(LA52_33>=DATE_EFFECTIVE && LA52_33<=DATE_EXPIRES)||LA52_33==BOOL||(LA52_33>=INT && LA52_33<=AGENDA_GROUP)||(LA52_33>=LOCK_ON_ACTIVE && LA52_33<=DOUBLE_AMPER)||(LA52_33>=EXISTS && LA52_33<=ACCUMULATE)||LA52_33==COLLECT||LA52_33==TILDE||(LA52_33>=FLOAT && LA52_33<=RIGHT_SQUARE)||(LA52_33>=EOL && LA52_33<=83)) && (synpred7())) {s = 13;}
- else if ( (LA52_4==FORALL) ) {s = 17;}
+ else if ( (LA52_33==LEFT_PAREN) && (synpred7())) {s = 67;}
- else if ( (LA52_4==LEFT_PAREN) ) {s = 18;}
-
- else if ( (LA52_4==ID) ) {s = 19;}
-
- else if ( (LA52_4==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_4>=PACKAGE && LA52_4<=FUNCTION)||(LA52_4>=DOT && LA52_4<=GLOBAL)||LA52_4==COMMA||(LA52_4>=QUERY && LA52_4<=FROM)||(LA52_4>=ACCUMULATE && LA52_4<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_4);
+ input.seek(index52_33);
if ( s>=0 ) return s;
break;
case 19 :
- int LA52_63 = input.LA(1);
+ int LA52_57 = input.LA(1);
- int index52_63 = input.index();
+ int index52_57 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( ((LA52_57>=PACKAGE && LA52_57<=ID)||LA52_57==GLOBAL||(LA52_57>=QUERY && LA52_57<=ATTRIBUTES)||LA52_57==ENABLED||LA52_57==SALIENCE||(LA52_57>=DURATION && LA52_57<=DIALECT)||LA52_57==FROM||(LA52_57>=INIT && LA52_57<=RESULT)||(LA52_57>=CONTAINS && LA52_57<=MEMBEROF)||LA52_57==IN||LA52_57==THEN) ) {s = 95;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_57==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_57==DOT||LA52_57==COMMA||(LA52_57>=DATE_EFFECTIVE && LA52_57<=DATE_EXPIRES)||LA52_57==BOOL||(LA52_57>=INT && LA52_57<=AGENDA_GROUP)||(LA52_57>=LOCK_ON_ACTIVE && LA52_57<=DOUBLE_AMPER)||(LA52_57>=EXISTS && LA52_57<=ACCUMULATE)||LA52_57==COLLECT||LA52_57==TILDE||(LA52_57>=FLOAT && LA52_57<=RIGHT_SQUARE)||(LA52_57>=EOL && LA52_57<=83)) && (synpred7())) {s = 13;}
+
+ else if ( (LA52_57==LEFT_PAREN) && (synpred7())) {s = 67;}
+
- input.seek(index52_63);
+ input.seek(index52_57);
if ( s>=0 ) return s;
break;
case 20 :
- int LA52_23 = input.LA(1);
+ int LA52_61 = input.LA(1);
- int index52_23 = input.index();
+ int index52_61 = input.index();
input.rewind();
s = -1;
- if ( (LA52_23==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ if ( ((LA52_61>=PACKAGE && LA52_61<=ID)||LA52_61==GLOBAL||(LA52_61>=QUERY && LA52_61<=ATTRIBUTES)||LA52_61==ENABLED||LA52_61==SALIENCE||(LA52_61>=DURATION && LA52_61<=DIALECT)||LA52_61==FROM||(LA52_61>=INIT && LA52_61<=RESULT)||(LA52_61>=CONTAINS && LA52_61<=MEMBEROF)||LA52_61==IN||LA52_61==THEN) ) {s = 99;}
- else if ( ((LA52_23>=PACKAGE && LA52_23<=GLOBAL)||LA52_23==COMMA||(LA52_23>=QUERY && LA52_23<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_61==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_23==LEFT_PAREN) ) {s = 50;}
+ else if ( (LA52_61==DOT||LA52_61==COMMA||(LA52_61>=DATE_EFFECTIVE && LA52_61<=DATE_EXPIRES)||LA52_61==BOOL||(LA52_61>=INT && LA52_61<=AGENDA_GROUP)||(LA52_61>=LOCK_ON_ACTIVE && LA52_61<=DOUBLE_AMPER)||(LA52_61>=EXISTS && LA52_61<=ACCUMULATE)||LA52_61==COLLECT||LA52_61==TILDE||(LA52_61>=FLOAT && LA52_61<=RIGHT_SQUARE)||(LA52_61>=EOL && LA52_61<=83)) && (synpred7())) {s = 13;}
+ else if ( (LA52_61==LEFT_PAREN) && (synpred7())) {s = 67;}
+
- input.seek(index52_23);
+ input.seek(index52_61);
if ( s>=0 ) return s;
break;
case 21 :
- int LA52_65 = input.LA(1);
+ int LA52_32 = input.LA(1);
- int index52_65 = input.index();
+ int index52_32 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( (LA52_32==ID) ) {s = 64;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_32==LEFT_PAREN) ) {s = 65;}
+ else if ( (LA52_32==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_32>=PACKAGE && LA52_32<=EVENT)||(LA52_32>=DOT && LA52_32<=GLOBAL)||LA52_32==COMMA||(LA52_32>=QUERY && LA52_32<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_65);
+ input.seek(index52_32);
if ( s>=0 ) return s;
break;
case 22 :
- int LA52_43 = input.LA(1);
+ int LA52_56 = input.LA(1);
- int index52_43 = input.index();
+ int index52_56 = input.index();
input.rewind();
s = -1;
- if ( ((LA52_43>=PACKAGE && LA52_43<=ID)||LA52_43==GLOBAL||(LA52_43>=QUERY && LA52_43<=ATTRIBUTES)||LA52_43==ENABLED||LA52_43==SALIENCE||(LA52_43>=DURATION && LA52_43<=DIALECT)||LA52_43==FROM||(LA52_43>=INIT && LA52_43<=RESULT)||(LA52_43>=CONTAINS && LA52_43<=IN)||LA52_43==THEN) ) {s = 79;}
+ if ( (LA52_56==ID) ) {s = 93;}
- else if ( (LA52_43==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_56==LEFT_PAREN) ) {s = 94;}
- else if ( (LA52_43==DOT||LA52_43==COMMA||(LA52_43>=DATE_EFFECTIVE && LA52_43<=DATE_EXPIRES)||LA52_43==BOOL||(LA52_43>=INT && LA52_43<=AGENDA_GROUP)||(LA52_43>=LOCK_ON_ACTIVE && LA52_43<=DOUBLE_AMPER)||(LA52_43>=EXISTS && LA52_43<=ACCUMULATE)||LA52_43==COLLECT||(LA52_43>=FLOAT && LA52_43<=RIGHT_SQUARE)||(LA52_43>=EOL && LA52_43<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_56==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_43==LEFT_PAREN) && (synpred7())) {s = 67;}
+ else if ( ((LA52_56>=PACKAGE && LA52_56<=EVENT)||(LA52_56>=DOT && LA52_56<=GLOBAL)||LA52_56==COMMA||(LA52_56>=QUERY && LA52_56<=83)) && (synpred7())) {s = 13;}
- input.seek(index52_43);
+ input.seek(index52_56);
if ( s>=0 ) return s;
break;
case 23 :
- int LA52_29 = input.LA(1);
+ int LA52_60 = input.LA(1);
- int index52_29 = input.index();
+ int index52_60 = input.index();
input.rewind();
s = -1;
- if ( (LA52_29==74) ) {s = 60;}
+ if ( (LA52_60==ID) ) {s = 97;}
- else if ( (LA52_29==DOT) ) {s = 61;}
+ else if ( (LA52_60==LEFT_PAREN) ) {s = 98;}
- else if ( (LA52_29==LEFT_SQUARE) ) {s = 62;}
+ else if ( (LA52_60==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_29==LEFT_PAREN) ) {s = 63;}
+ else if ( ((LA52_60>=PACKAGE && LA52_60<=EVENT)||(LA52_60>=DOT && LA52_60<=GLOBAL)||LA52_60==COMMA||(LA52_60>=QUERY && LA52_60<=83)) && (synpred7())) {s = 13;}
- else if ( (LA52_29==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_29>=PACKAGE && LA52_29<=ID)||LA52_29==GLOBAL||LA52_29==COMMA||(LA52_29>=QUERY && LA52_29<=RIGHT_CURLY)||(LA52_29>=RIGHT_SQUARE && LA52_29<=73)||(LA52_29>=75 && LA52_29<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_29);
+ input.seek(index52_60);
if ( s>=0 ) return s;
break;
case 24 :
- int LA52_27 = input.LA(1);
+ int LA52_5 = input.LA(1);
- int index52_27 = input.index();
+ int index52_5 = input.index();
input.rewind();
s = -1;
- if ( (LA52_27==74) ) {s = 56;}
+ if ( (LA52_5==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_27==DOT) ) {s = 57;}
+ else if ( (LA52_5==EXISTS) ) {s = 20;}
- else if ( (LA52_27==LEFT_SQUARE) ) {s = 58;}
+ else if ( (LA52_5==LEFT_PAREN) ) {s = 21;}
- else if ( (LA52_27==LEFT_PAREN) ) {s = 59;}
+ else if ( (LA52_5==NOT) ) {s = 22;}
- else if ( (LA52_27==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_5==EVAL) ) {s = 23;}
- else if ( ((LA52_27>=PACKAGE && LA52_27<=ID)||LA52_27==GLOBAL||LA52_27==COMMA||(LA52_27>=QUERY && LA52_27<=RIGHT_CURLY)||(LA52_27>=RIGHT_SQUARE && LA52_27<=73)||(LA52_27>=75 && LA52_27<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_5==FORALL) ) {s = 24;}
+ else if ( (LA52_5==ID) ) {s = 25;}
+
+ else if ( ((LA52_5>=PACKAGE && LA52_5<=EVENT)||(LA52_5>=DOT && LA52_5<=GLOBAL)||LA52_5==COMMA||(LA52_5>=QUERY && LA52_5<=FROM)||(LA52_5>=ACCUMULATE && LA52_5<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_27);
+ input.seek(index52_5);
if ( s>=0 ) return s;
break;
case 25 :
- int LA52_12 = input.LA(1);
+ int LA52_36 = input.LA(1);
- int index52_12 = input.index();
+ int index52_36 = input.index();
input.rewind();
s = -1;
- if ( (LA52_12==74) ) {s = 32;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( (LA52_12==DOT) ) {s = 33;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_12==LEFT_SQUARE) ) {s = 34;}
-
- else if ( (LA52_12==LEFT_PAREN) ) {s = 35;}
-
- else if ( (LA52_12==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_12>=PACKAGE && LA52_12<=ID)||LA52_12==GLOBAL||LA52_12==COMMA||(LA52_12>=QUERY && LA52_12<=RIGHT_CURLY)||(LA52_12>=RIGHT_SQUARE && LA52_12<=73)||(LA52_12>=75 && LA52_12<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_12);
+ input.seek(index52_36);
if ( s>=0 ) return s;
break;
case 26 :
- int LA52_66 = input.LA(1);
+ int LA52_29 = input.LA(1);
- int index52_66 = input.index();
+ int index52_29 = input.index();
input.rewind();
s = -1;
- if ( (LA52_66==LEFT_SQUARE) ) {s = 34;}
+ if ( (LA52_29==76) ) {s = 60;}
- else if ( (LA52_66==LEFT_PAREN) ) {s = 35;}
+ else if ( (LA52_29==DOT) ) {s = 61;}
- else if ( (LA52_66==DOT) ) {s = 33;}
+ else if ( (LA52_29==LEFT_SQUARE) ) {s = 62;}
- else if ( (LA52_66==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_29==LEFT_PAREN) ) {s = 63;}
- else if ( ((LA52_66>=PACKAGE && LA52_66<=ID)||LA52_66==GLOBAL||LA52_66==COMMA||(LA52_66>=QUERY && LA52_66<=RIGHT_CURLY)||(LA52_66>=RIGHT_SQUARE && LA52_66<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_29==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( ((LA52_29>=PACKAGE && LA52_29<=ID)||LA52_29==GLOBAL||LA52_29==COMMA||(LA52_29>=QUERY && LA52_29<=RIGHT_CURLY)||(LA52_29>=RIGHT_SQUARE && LA52_29<=75)||(LA52_29>=77 && LA52_29<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_66);
+ input.seek(index52_29);
if ( s>=0 ) return s;
break;
case 27 :
- int LA52_22 = input.LA(1);
+ int LA52_27 = input.LA(1);
- int index52_22 = input.index();
+ int index52_27 = input.index();
input.rewind();
s = -1;
- if ( (LA52_22==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ if ( (LA52_27==76) ) {s = 56;}
- else if ( (LA52_22==ID) ) {s = 48;}
+ else if ( (LA52_27==DOT) ) {s = 57;}
- else if ( (LA52_22==LEFT_PAREN) ) {s = 49;}
+ else if ( (LA52_27==LEFT_SQUARE) ) {s = 58;}
- else if ( ((LA52_22>=PACKAGE && LA52_22<=FUNCTION)||(LA52_22>=DOT && LA52_22<=GLOBAL)||LA52_22==COMMA||(LA52_22>=QUERY && LA52_22<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_27==LEFT_PAREN) ) {s = 59;}
+ else if ( (LA52_27==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_27>=PACKAGE && LA52_27<=ID)||LA52_27==GLOBAL||LA52_27==COMMA||(LA52_27>=QUERY && LA52_27<=RIGHT_CURLY)||(LA52_27>=RIGHT_SQUARE && LA52_27<=75)||(LA52_27>=77 && LA52_27<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_22);
+ input.seek(index52_27);
if ( s>=0 ) return s;
break;
case 28 :
- int LA52_0 = input.LA(1);
+ int LA52_12 = input.LA(1);
- int index52_0 = input.index();
+ int index52_12 = input.index();
input.rewind();
s = -1;
- if ( (LA52_0==LEFT_SQUARE) && (synpred6())) {s = 1;}
+ if ( (LA52_12==76) ) {s = 32;}
- else if ( (LA52_0==LEFT_PAREN) ) {s = 2;}
+ else if ( (LA52_12==DOT) ) {s = 33;}
- else if ( ((LA52_0>=ID && LA52_0<=DOT)||(LA52_0>=COMMA && LA52_0<=RIGHT_PAREN)||LA52_0==END||(LA52_0>=OR && LA52_0<=DOUBLE_AMPER)||(LA52_0>=EXISTS && LA52_0<=FORALL)||LA52_0==INIT||LA52_0==THEN||LA52_0==72) ) {s = 3;}
+ else if ( (LA52_12==LEFT_SQUARE) ) {s = 34;}
+ else if ( (LA52_12==LEFT_PAREN) ) {s = 35;}
+
+ else if ( (LA52_12==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_12>=PACKAGE && LA52_12<=ID)||LA52_12==GLOBAL||LA52_12==COMMA||(LA52_12>=QUERY && LA52_12<=RIGHT_CURLY)||(LA52_12>=RIGHT_SQUARE && LA52_12<=75)||(LA52_12>=77 && LA52_12<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_0);
+ input.seek(index52_12);
if ( s>=0 ) return s;
break;
case 29 :
- int LA52_14 = input.LA(1);
+ int LA52_18 = input.LA(1);
- int index52_14 = input.index();
+ int index52_18 = input.index();
input.rewind();
s = -1;
- if ( (LA52_14==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ if ( (synpred7()) ) {s = 13;}
- else if ( (LA52_14==ID) ) {s = 36;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_14==LEFT_PAREN) ) {s = 37;}
-
- else if ( ((LA52_14>=PACKAGE && LA52_14<=FUNCTION)||(LA52_14>=DOT && LA52_14<=GLOBAL)||LA52_14==COMMA||(LA52_14>=QUERY && LA52_14<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_14);
+ input.seek(index52_18);
if ( s>=0 ) return s;
break;
case 30 :
- int LA52_41 = input.LA(1);
+ int LA52_43 = input.LA(1);
- int index52_41 = input.index();
+ int index52_43 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( ((LA52_43>=PACKAGE && LA52_43<=ID)||LA52_43==GLOBAL||(LA52_43>=QUERY && LA52_43<=ATTRIBUTES)||LA52_43==ENABLED||LA52_43==SALIENCE||(LA52_43>=DURATION && LA52_43<=DIALECT)||LA52_43==FROM||(LA52_43>=INIT && LA52_43<=RESULT)||(LA52_43>=CONTAINS && LA52_43<=MEMBEROF)||LA52_43==IN||LA52_43==THEN) ) {s = 79;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_43==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_43==DOT||LA52_43==COMMA||(LA52_43>=DATE_EFFECTIVE && LA52_43<=DATE_EXPIRES)||LA52_43==BOOL||(LA52_43>=INT && LA52_43<=AGENDA_GROUP)||(LA52_43>=LOCK_ON_ACTIVE && LA52_43<=DOUBLE_AMPER)||(LA52_43>=EXISTS && LA52_43<=ACCUMULATE)||LA52_43==COLLECT||LA52_43==TILDE||(LA52_43>=FLOAT && LA52_43<=RIGHT_SQUARE)||(LA52_43>=EOL && LA52_43<=83)) && (synpred7())) {s = 13;}
+
+ else if ( (LA52_43==LEFT_PAREN) && (synpred7())) {s = 67;}
+
- input.seek(index52_41);
+ input.seek(index52_43);
if ( s>=0 ) return s;
break;
case 31 :
- int LA52_37 = input.LA(1);
+ int LA52_41 = input.LA(1);
- int index52_37 = input.index();
+ int index52_41 = input.index();
input.rewind();
s = -1;
if ( (synpred7()) ) {s = 67;}
@@ -8245,398 +8387,399 @@
else if ( (true) ) {s = 3;}
- input.seek(index52_37);
+ input.seek(index52_41);
if ( s>=0 ) return s;
break;
case 32 :
- int LA52_64 = input.LA(1);
+ int LA52_44 = input.LA(1);
- int index52_64 = input.index();
+ int index52_44 = input.index();
input.rewind();
s = -1;
- if ( (LA52_64==DOT) ) {s = 101;}
+ if ( (LA52_44==RIGHT_SQUARE) ) {s = 80;}
- else if ( (LA52_64==LEFT_SQUARE) ) {s = 102;}
+ else if ( (LA52_44==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_64==LEFT_PAREN) ) {s = 103;}
+ else if ( ((LA52_44>=PACKAGE && LA52_44<=GLOBAL)||LA52_44==COMMA||(LA52_44>=QUERY && LA52_44<=LEFT_SQUARE)||(LA52_44>=THEN && LA52_44<=83)) && (synpred7())) {s = 13;}
- else if ( (LA52_64==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_44==LEFT_PAREN) && (synpred7())) {s = 67;}
- else if ( ((LA52_64>=PACKAGE && LA52_64<=ID)||LA52_64==GLOBAL||LA52_64==COMMA||(LA52_64>=QUERY && LA52_64<=RIGHT_CURLY)||(LA52_64>=RIGHT_SQUARE && LA52_64<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_64);
+ input.seek(index52_44);
if ( s>=0 ) return s;
break;
case 33 :
- int LA52_5 = input.LA(1);
+ int LA52_34 = input.LA(1);
- int index52_5 = input.index();
+ int index52_34 = input.index();
input.rewind();
s = -1;
- if ( (LA52_5==LEFT_PAREN) ) {s = 20;}
+ if ( (LA52_34==RIGHT_SQUARE) ) {s = 68;}
- else if ( (LA52_5==EXISTS) ) {s = 21;}
+ else if ( (LA52_34==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_5==NOT) ) {s = 22;}
+ else if ( ((LA52_34>=PACKAGE && LA52_34<=GLOBAL)||LA52_34==COMMA||(LA52_34>=QUERY && LA52_34<=LEFT_SQUARE)||(LA52_34>=THEN && LA52_34<=83)) && (synpred7())) {s = 13;}
- else if ( (LA52_5==EVAL) ) {s = 23;}
+ else if ( (LA52_34==LEFT_PAREN) && (synpred7())) {s = 67;}
- else if ( (LA52_5==FORALL) ) {s = 24;}
-
- else if ( (LA52_5==ID) ) {s = 25;}
-
- else if ( (LA52_5==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_5>=PACKAGE && LA52_5<=FUNCTION)||(LA52_5>=DOT && LA52_5<=GLOBAL)||LA52_5==COMMA||(LA52_5>=QUERY && LA52_5<=FROM)||(LA52_5>=ACCUMULATE && LA52_5<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_5);
+ input.seek(index52_34);
if ( s>=0 ) return s;
break;
case 34 :
- int LA52_33 = input.LA(1);
+ int LA52_58 = input.LA(1);
- int index52_33 = input.index();
+ int index52_58 = input.index();
input.rewind();
s = -1;
- if ( ((LA52_33>=PACKAGE && LA52_33<=ID)||LA52_33==GLOBAL||(LA52_33>=QUERY && LA52_33<=ATTRIBUTES)||LA52_33==ENABLED||LA52_33==SALIENCE||(LA52_33>=DURATION && LA52_33<=DIALECT)||LA52_33==FROM||(LA52_33>=INIT && LA52_33<=RESULT)||(LA52_33>=CONTAINS && LA52_33<=IN)||LA52_33==THEN) ) {s = 66;}
+ if ( (LA52_58==RIGHT_SQUARE) ) {s = 96;}
- else if ( (LA52_33==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_58==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_33==DOT||LA52_33==COMMA||(LA52_33>=DATE_EFFECTIVE && LA52_33<=DATE_EXPIRES)||LA52_33==BOOL||(LA52_33>=INT && LA52_33<=AGENDA_GROUP)||(LA52_33>=LOCK_ON_ACTIVE && LA52_33<=DOUBLE_AMPER)||(LA52_33>=EXISTS && LA52_33<=ACCUMULATE)||LA52_33==COLLECT||(LA52_33>=FLOAT && LA52_33<=RIGHT_SQUARE)||(LA52_33>=EOL && LA52_33<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_58>=PACKAGE && LA52_58<=GLOBAL)||LA52_58==COMMA||(LA52_58>=QUERY && LA52_58<=LEFT_SQUARE)||(LA52_58>=THEN && LA52_58<=83)) && (synpred7())) {s = 13;}
- else if ( (LA52_33==LEFT_PAREN) && (synpred7())) {s = 67;}
+ else if ( (LA52_58==LEFT_PAREN) && (synpred7())) {s = 67;}
- input.seek(index52_33);
+ input.seek(index52_58);
if ( s>=0 ) return s;
break;
case 35 :
- int LA52_57 = input.LA(1);
+ int LA52_62 = input.LA(1);
- int index52_57 = input.index();
+ int index52_62 = input.index();
input.rewind();
s = -1;
- if ( ((LA52_57>=PACKAGE && LA52_57<=ID)||LA52_57==GLOBAL||(LA52_57>=QUERY && LA52_57<=ATTRIBUTES)||LA52_57==ENABLED||LA52_57==SALIENCE||(LA52_57>=DURATION && LA52_57<=DIALECT)||LA52_57==FROM||(LA52_57>=INIT && LA52_57<=RESULT)||(LA52_57>=CONTAINS && LA52_57<=IN)||LA52_57==THEN) ) {s = 95;}
+ if ( (LA52_62==RIGHT_SQUARE) ) {s = 100;}
- else if ( (LA52_57==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_62==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_57==DOT||LA52_57==COMMA||(LA52_57>=DATE_EFFECTIVE && LA52_57<=DATE_EXPIRES)||LA52_57==BOOL||(LA52_57>=INT && LA52_57<=AGENDA_GROUP)||(LA52_57>=LOCK_ON_ACTIVE && LA52_57<=DOUBLE_AMPER)||(LA52_57>=EXISTS && LA52_57<=ACCUMULATE)||LA52_57==COLLECT||(LA52_57>=FLOAT && LA52_57<=RIGHT_SQUARE)||(LA52_57>=EOL && LA52_57<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_62>=PACKAGE && LA52_62<=GLOBAL)||LA52_62==COMMA||(LA52_62>=QUERY && LA52_62<=LEFT_SQUARE)||(LA52_62>=THEN && LA52_62<=83)) && (synpred7())) {s = 13;}
- else if ( (LA52_57==LEFT_PAREN) && (synpred7())) {s = 67;}
+ else if ( (LA52_62==LEFT_PAREN) && (synpred7())) {s = 67;}
- input.seek(index52_57);
+ input.seek(index52_62);
if ( s>=0 ) return s;
break;
case 36 :
- int LA52_61 = input.LA(1);
+ int LA52_35 = input.LA(1);
- int index52_61 = input.index();
+ int index52_35 = input.index();
input.rewind();
s = -1;
- if ( (LA52_61==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( ((LA52_61>=PACKAGE && LA52_61<=ID)||LA52_61==GLOBAL||(LA52_61>=QUERY && LA52_61<=ATTRIBUTES)||LA52_61==ENABLED||LA52_61==SALIENCE||(LA52_61>=DURATION && LA52_61<=DIALECT)||LA52_61==FROM||(LA52_61>=INIT && LA52_61<=RESULT)||(LA52_61>=CONTAINS && LA52_61<=IN)||LA52_61==THEN) ) {s = 99;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_61==LEFT_PAREN) && (synpred7())) {s = 67;}
-
- else if ( (LA52_61==DOT||LA52_61==COMMA||(LA52_61>=DATE_EFFECTIVE && LA52_61<=DATE_EXPIRES)||LA52_61==BOOL||(LA52_61>=INT && LA52_61<=AGENDA_GROUP)||(LA52_61>=LOCK_ON_ACTIVE && LA52_61<=DOUBLE_AMPER)||(LA52_61>=EXISTS && LA52_61<=ACCUMULATE)||LA52_61==COLLECT||(LA52_61>=FLOAT && LA52_61<=RIGHT_SQUARE)||(LA52_61>=EOL && LA52_61<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_61);
+ input.seek(index52_35);
if ( s>=0 ) return s;
break;
case 37 :
- int LA52_39 = input.LA(1);
+ int LA52_63 = input.LA(1);
- int index52_39 = input.index();
+ int index52_63 = input.index();
input.rewind();
s = -1;
- if ( (LA52_39==74) ) {s = 73;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( (LA52_39==DOT) ) {s = 74;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_39==LEFT_SQUARE) ) {s = 75;}
-
- else if ( (LA52_39==LEFT_PAREN) ) {s = 76;}
-
- else if ( (LA52_39==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_39>=PACKAGE && LA52_39<=ID)||LA52_39==GLOBAL||LA52_39==COMMA||(LA52_39>=QUERY && LA52_39<=RIGHT_CURLY)||(LA52_39>=RIGHT_SQUARE && LA52_39<=73)||(LA52_39>=75 && LA52_39<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_39);
+ input.seek(index52_63);
if ( s>=0 ) return s;
break;
case 38 :
- int LA52_36 = input.LA(1);
+ int LA52_65 = input.LA(1);
- int index52_36 = input.index();
+ int index52_65 = input.index();
input.rewind();
s = -1;
- if ( (LA52_36==74) ) {s = 69;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( (LA52_36==DOT) ) {s = 70;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_36==LEFT_SQUARE) ) {s = 71;}
-
- else if ( (LA52_36==LEFT_PAREN) ) {s = 72;}
-
- else if ( (LA52_36==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_36>=PACKAGE && LA52_36<=ID)||LA52_36==GLOBAL||LA52_36==COMMA||(LA52_36>=QUERY && LA52_36<=RIGHT_CURLY)||(LA52_36>=RIGHT_SQUARE && LA52_36<=73)||(LA52_36>=75 && LA52_36<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_36);
+ input.seek(index52_65);
if ( s>=0 ) return s;
break;
case 39 :
- int LA52_19 = input.LA(1);
+ int LA52_46 = input.LA(1);
- int index52_19 = input.index();
+ int index52_46 = input.index();
input.rewind();
s = -1;
- if ( (LA52_19==74) ) {s = 42;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( (LA52_19==DOT) ) {s = 43;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_19==LEFT_SQUARE) ) {s = 44;}
-
- else if ( (LA52_19==LEFT_PAREN) ) {s = 45;}
-
- else if ( (LA52_19==RIGHT_PAREN) && (synpred7())) {s = 8;}
-
- else if ( ((LA52_19>=PACKAGE && LA52_19<=ID)||LA52_19==GLOBAL||LA52_19==COMMA||(LA52_19>=QUERY && LA52_19<=RIGHT_CURLY)||(LA52_19>=RIGHT_SQUARE && LA52_19<=73)||(LA52_19>=75 && LA52_19<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_19);
+ input.seek(index52_46);
if ( s>=0 ) return s;
break;
case 40 :
- int LA52_54 = input.LA(1);
+ int LA52_40 = input.LA(1);
- int index52_54 = input.index();
+ int index52_40 = input.index();
input.rewind();
s = -1;
- if ( (LA52_54==RIGHT_SQUARE) ) {s = 92;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( (LA52_54==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (true) ) {s = 3;}
- else if ( ((LA52_54>=PACKAGE && LA52_54<=GLOBAL)||LA52_54==COMMA||(LA52_54>=QUERY && LA52_54<=LEFT_SQUARE)||(LA52_54>=THEN && LA52_54<=81)) && (synpred7())) {s = 13;}
-
- else if ( (LA52_54==LEFT_PAREN) && (synpred7())) {s = 67;}
-
- input.seek(index52_54);
+ input.seek(index52_40);
if ( s>=0 ) return s;
break;
case 41 :
- int LA52_34 = input.LA(1);
+ int LA52_38 = input.LA(1);
- int index52_34 = input.index();
+ int index52_38 = input.index();
input.rewind();
s = -1;
- if ( (LA52_34==RIGHT_SQUARE) ) {s = 68;}
+ if ( (LA52_38==76) ) {s = 73;}
- else if ( (LA52_34==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_38==DOT) ) {s = 74;}
- else if ( ((LA52_34>=PACKAGE && LA52_34<=GLOBAL)||LA52_34==COMMA||(LA52_34>=QUERY && LA52_34<=LEFT_SQUARE)||(LA52_34>=THEN && LA52_34<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_38==LEFT_SQUARE) ) {s = 75;}
- else if ( (LA52_34==LEFT_PAREN) && (synpred7())) {s = 67;}
+ else if ( (LA52_38==LEFT_PAREN) ) {s = 76;}
+ else if ( (LA52_38==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_38>=PACKAGE && LA52_38<=ID)||LA52_38==GLOBAL||LA52_38==COMMA||(LA52_38>=QUERY && LA52_38<=RIGHT_CURLY)||(LA52_38>=RIGHT_SQUARE && LA52_38<=75)||(LA52_38>=77 && LA52_38<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_34);
+ input.seek(index52_38);
if ( s>=0 ) return s;
break;
case 42 :
- int LA52_58 = input.LA(1);
+ int LA52_37 = input.LA(1);
- int index52_58 = input.index();
+ int index52_37 = input.index();
input.rewind();
s = -1;
- if ( (LA52_58==RIGHT_SQUARE) ) {s = 96;}
+ if ( (LA52_37==76) ) {s = 69;}
- else if ( (LA52_58==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_37==DOT) ) {s = 70;}
- else if ( ((LA52_58>=PACKAGE && LA52_58<=GLOBAL)||LA52_58==COMMA||(LA52_58>=QUERY && LA52_58<=LEFT_SQUARE)||(LA52_58>=THEN && LA52_58<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_37==LEFT_SQUARE) ) {s = 71;}
- else if ( (LA52_58==LEFT_PAREN) && (synpred7())) {s = 67;}
+ else if ( (LA52_37==LEFT_PAREN) ) {s = 72;}
+ else if ( (LA52_37==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_37>=PACKAGE && LA52_37<=ID)||LA52_37==GLOBAL||LA52_37==COMMA||(LA52_37>=QUERY && LA52_37<=RIGHT_CURLY)||(LA52_37>=RIGHT_SQUARE && LA52_37<=75)||(LA52_37>=77 && LA52_37<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_58);
+ input.seek(index52_37);
if ( s>=0 ) return s;
break;
case 43 :
- int LA52_62 = input.LA(1);
+ int LA52_19 = input.LA(1);
- int index52_62 = input.index();
+ int index52_19 = input.index();
input.rewind();
s = -1;
- if ( (LA52_62==RIGHT_SQUARE) ) {s = 100;}
+ if ( (LA52_19==76) ) {s = 42;}
- else if ( (LA52_62==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_19==DOT) ) {s = 43;}
- else if ( ((LA52_62>=PACKAGE && LA52_62<=GLOBAL)||LA52_62==COMMA||(LA52_62>=QUERY && LA52_62<=LEFT_SQUARE)||(LA52_62>=THEN && LA52_62<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_19==LEFT_SQUARE) ) {s = 44;}
- else if ( (LA52_62==LEFT_PAREN) && (synpred7())) {s = 67;}
+ else if ( (LA52_19==LEFT_PAREN) ) {s = 45;}
+ else if ( (LA52_19==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_19>=PACKAGE && LA52_19<=ID)||LA52_19==GLOBAL||LA52_19==COMMA||(LA52_19>=QUERY && LA52_19<=RIGHT_CURLY)||(LA52_19>=RIGHT_SQUARE && LA52_19<=75)||(LA52_19>=77 && LA52_19<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_62);
+ input.seek(index52_19);
if ( s>=0 ) return s;
break;
case 44 :
- int LA52_17 = input.LA(1);
+ int LA52_9 = input.LA(1);
- int index52_17 = input.index();
+ int index52_9 = input.index();
input.rewind();
s = -1;
- if ( (LA52_17==LEFT_PAREN) ) {s = 41;}
+ if ( (LA52_9==LEFT_PAREN) ) {s = 28;}
- else if ( (LA52_17==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_9==ID) ) {s = 29;}
- else if ( ((LA52_17>=PACKAGE && LA52_17<=GLOBAL)||LA52_17==COMMA||(LA52_17>=QUERY && LA52_17<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_9==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( ((LA52_9>=PACKAGE && LA52_9<=EVENT)||(LA52_9>=DOT && LA52_9<=GLOBAL)||LA52_9==COMMA||(LA52_9>=QUERY && LA52_9<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_17);
+ input.seek(index52_9);
if ( s>=0 ) return s;
break;
case 45 :
- int LA52_50 = input.LA(1);
+ int LA52_2 = input.LA(1);
- int index52_50 = input.index();
+ int index52_2 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( (LA52_2==AND) ) {s = 4;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_2==OR) ) {s = 5;}
+ else if ( (LA52_2==EXISTS) ) {s = 6;}
+
+ else if ( (LA52_2==LEFT_PAREN) ) {s = 7;}
+
+ else if ( (LA52_2==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( (LA52_2==NOT) ) {s = 9;}
+
+ else if ( (LA52_2==EVAL) ) {s = 10;}
+
+ else if ( (LA52_2==FORALL) ) {s = 11;}
+
+ else if ( (LA52_2==ID) ) {s = 12;}
+
+ else if ( ((LA52_2>=PACKAGE && LA52_2<=EVENT)||(LA52_2>=DOT && LA52_2<=GLOBAL)||LA52_2==COMMA||(LA52_2>=QUERY && LA52_2<=LOCK_ON_ACTIVE)||LA52_2==DOUBLE_PIPE||(LA52_2>=DOUBLE_AMPER && LA52_2<=FROM)||(LA52_2>=ACCUMULATE && LA52_2<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_50);
+ input.seek(index52_2);
if ( s>=0 ) return s;
break;
case 46 :
- int LA52_28 = input.LA(1);
+ int LA52_10 = input.LA(1);
- int index52_28 = input.index();
+ int index52_10 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 13;}
+ if ( (LA52_10==LEFT_PAREN) ) {s = 30;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_10==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( ((LA52_10>=PACKAGE && LA52_10<=GLOBAL)||LA52_10==COMMA||(LA52_10>=QUERY && LA52_10<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_28);
+ input.seek(index52_10);
if ( s>=0 ) return s;
break;
case 47 :
- int LA52_45 = input.LA(1);
+ int LA52_52 = input.LA(1);
- int index52_45 = input.index();
+ int index52_52 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( (LA52_52==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_52==ID) ) {s = 89;}
+ else if ( (LA52_52==LEFT_PAREN) ) {s = 90;}
+
+ else if ( ((LA52_52>=PACKAGE && LA52_52<=EVENT)||(LA52_52>=DOT && LA52_52<=GLOBAL)||LA52_52==COMMA||(LA52_52>=QUERY && LA52_52<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_45);
+ input.seek(index52_52);
if ( s>=0 ) return s;
break;
case 48 :
- int LA52_7 = input.LA(1);
+ int LA52_51 = input.LA(1);
- int index52_7 = input.index();
+ int index52_51 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 13;}
+ if ( (synpred7()) ) {s = 67;}
else if ( (true) ) {s = 3;}
- input.seek(index52_7);
+ input.seek(index52_51);
if ( s>=0 ) return s;
break;
case 49 :
- int LA52_18 = input.LA(1);
+ int LA52_23 = input.LA(1);
- int index52_18 = input.index();
+ int index52_23 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 13;}
+ if ( (LA52_23==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (true) ) {s = 3;}
+ else if ( ((LA52_23>=PACKAGE && LA52_23<=GLOBAL)||LA52_23==COMMA||(LA52_23>=QUERY && LA52_23<=83)) && (synpred7())) {s = 13;}
+ else if ( (LA52_23==LEFT_PAREN) ) {s = 50;}
+
- input.seek(index52_18);
+ input.seek(index52_23);
if ( s>=0 ) return s;
break;
case 50 :
- int LA52_2 = input.LA(1);
+ int LA52_20 = input.LA(1);
- int index52_2 = input.index();
+ int index52_20 = input.index();
input.rewind();
s = -1;
- if ( (LA52_2==AND) ) {s = 4;}
+ if ( (LA52_20==LEFT_PAREN) ) {s = 46;}
- else if ( (LA52_2==OR) ) {s = 5;}
+ else if ( (LA52_20==ID) ) {s = 47;}
- else if ( (LA52_2==EXISTS) ) {s = 6;}
+ else if ( (LA52_20==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_2==LEFT_PAREN) ) {s = 7;}
+ else if ( ((LA52_20>=PACKAGE && LA52_20<=EVENT)||(LA52_20>=DOT && LA52_20<=GLOBAL)||LA52_20==COMMA||(LA52_20>=QUERY && LA52_20<=83)) && (synpred7())) {s = 13;}
- else if ( (LA52_2==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ input.seek(index52_20);
+ if ( s>=0 ) return s;
+ break;
+ case 51 :
+ int LA52_17 = input.LA(1);
- else if ( (LA52_2==NOT) ) {s = 9;}
+
+ int index52_17 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (LA52_17==LEFT_PAREN) ) {s = 41;}
- else if ( (LA52_2==EVAL) ) {s = 10;}
+ else if ( (LA52_17==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_2==FORALL) ) {s = 11;}
+ else if ( ((LA52_17>=PACKAGE && LA52_17<=GLOBAL)||LA52_17==COMMA||(LA52_17>=QUERY && LA52_17<=83)) && (synpred7())) {s = 13;}
- else if ( (LA52_2==ID) ) {s = 12;}
-
- else if ( ((LA52_2>=PACKAGE && LA52_2<=FUNCTION)||(LA52_2>=DOT && LA52_2<=GLOBAL)||LA52_2==COMMA||(LA52_2>=QUERY && LA52_2<=LOCK_ON_ACTIVE)||LA52_2==DOUBLE_PIPE||(LA52_2>=DOUBLE_AMPER && LA52_2<=FROM)||(LA52_2>=ACCUMULATE && LA52_2<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_2);
+ input.seek(index52_17);
if ( s>=0 ) return s;
break;
- case 51 :
- int LA52_47 = input.LA(1);
+ case 52 :
+ int LA52_26 = input.LA(1);
- int index52_47 = input.index();
+ int index52_26 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( (synpred7()) ) {s = 13;}
else if ( (true) ) {s = 3;}
- input.seek(index52_47);
+ input.seek(index52_26);
if ( s>=0 ) return s;
break;
- case 52 :
+ case 53 :
int LA52_11 = input.LA(1);
@@ -8647,49 +8790,44 @@
else if ( (LA52_11==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( ((LA52_11>=PACKAGE && LA52_11<=GLOBAL)||LA52_11==COMMA||(LA52_11>=QUERY && LA52_11<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_11>=PACKAGE && LA52_11<=GLOBAL)||LA52_11==COMMA||(LA52_11>=QUERY && LA52_11<=83)) && (synpred7())) {s = 13;}
input.seek(index52_11);
if ( s>=0 ) return s;
break;
- case 53 :
- int LA52_16 = input.LA(1);
+ case 54 :
+ int LA52_4 = input.LA(1);
- int index52_16 = input.index();
+ int index52_4 = input.index();
input.rewind();
s = -1;
- if ( (LA52_16==LEFT_PAREN) ) {s = 40;}
+ if ( (LA52_4==EXISTS) ) {s = 14;}
- else if ( (LA52_16==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_4==NOT) ) {s = 15;}
- else if ( ((LA52_16>=PACKAGE && LA52_16<=GLOBAL)||LA52_16==COMMA||(LA52_16>=QUERY && LA52_16<=81)) && (synpred7())) {s = 13;}
+ else if ( (LA52_4==EVAL) ) {s = 16;}
-
- input.seek(index52_16);
- if ( s>=0 ) return s;
- break;
- case 54 :
- int LA52_26 = input.LA(1);
+ else if ( (LA52_4==FORALL) ) {s = 17;}
-
- int index52_26 = input.index();
- input.rewind();
- s = -1;
- if ( (synpred7()) ) {s = 13;}
+ else if ( (LA52_4==LEFT_PAREN) ) {s = 18;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_4==ID) ) {s = 19;}
+ else if ( (LA52_4==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_4>=PACKAGE && LA52_4<=EVENT)||(LA52_4>=DOT && LA52_4<=GLOBAL)||LA52_4==COMMA||(LA52_4>=QUERY && LA52_4<=FROM)||(LA52_4>=ACCUMULATE && LA52_4<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_26);
+ input.seek(index52_4);
if ( s>=0 ) return s;
break;
case 55 :
- int LA52_38 = input.LA(1);
+ int LA52_49 = input.LA(1);
- int index52_38 = input.index();
+ int index52_49 = input.index();
input.rewind();
s = -1;
if ( (synpred7()) ) {s = 67;}
@@ -8697,122 +8835,130 @@
else if ( (true) ) {s = 3;}
- input.seek(index52_38);
+ input.seek(index52_49);
if ( s>=0 ) return s;
break;
case 56 :
- int LA52_51 = input.LA(1);
+ int LA52_14 = input.LA(1);
- int index52_51 = input.index();
+ int index52_14 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( (LA52_14==LEFT_PAREN) ) {s = 36;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_14==ID) ) {s = 37;}
+ else if ( (LA52_14==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_14>=PACKAGE && LA52_14<=EVENT)||(LA52_14>=DOT && LA52_14<=GLOBAL)||LA52_14==COMMA||(LA52_14>=QUERY && LA52_14<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_51);
+ input.seek(index52_14);
if ( s>=0 ) return s;
break;
case 57 :
- int LA52_53 = input.LA(1);
+ int LA52_59 = input.LA(1);
- int index52_53 = input.index();
+ int index52_59 = input.index();
input.rewind();
s = -1;
- if ( ((LA52_53>=PACKAGE && LA52_53<=ID)||LA52_53==GLOBAL||(LA52_53>=QUERY && LA52_53<=ATTRIBUTES)||LA52_53==ENABLED||LA52_53==SALIENCE||(LA52_53>=DURATION && LA52_53<=DIALECT)||LA52_53==FROM||(LA52_53>=INIT && LA52_53<=RESULT)||(LA52_53>=CONTAINS && LA52_53<=IN)||LA52_53==THEN) ) {s = 91;}
+ if ( (synpred7()) ) {s = 67;}
- else if ( (LA52_53==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (true) ) {s = 3;}
- else if ( (LA52_53==DOT||LA52_53==COMMA||(LA52_53>=DATE_EFFECTIVE && LA52_53<=DATE_EXPIRES)||LA52_53==BOOL||(LA52_53>=INT && LA52_53<=AGENDA_GROUP)||(LA52_53>=LOCK_ON_ACTIVE && LA52_53<=DOUBLE_AMPER)||(LA52_53>=EXISTS && LA52_53<=ACCUMULATE)||LA52_53==COLLECT||(LA52_53>=FLOAT && LA52_53<=RIGHT_SQUARE)||(LA52_53>=EOL && LA52_53<=81)) && (synpred7())) {s = 13;}
-
- else if ( (LA52_53==LEFT_PAREN) && (synpred7())) {s = 67;}
-
- input.seek(index52_53);
+ input.seek(index52_59);
if ( s>=0 ) return s;
break;
case 58 :
- int LA52_15 = input.LA(1);
+ int LA52_22 = input.LA(1);
- int index52_15 = input.index();
+ int index52_22 = input.index();
input.rewind();
s = -1;
- if ( (LA52_15==LEFT_PAREN) ) {s = 38;}
+ if ( (LA52_22==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (LA52_15==ID) ) {s = 39;}
+ else if ( (LA52_22==ID) ) {s = 48;}
- else if ( (LA52_15==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_22==LEFT_PAREN) ) {s = 49;}
- else if ( ((LA52_15>=PACKAGE && LA52_15<=FUNCTION)||(LA52_15>=DOT && LA52_15<=GLOBAL)||LA52_15==COMMA||(LA52_15>=QUERY && LA52_15<=81)) && (synpred7())) {s = 13;}
+ else if ( ((LA52_22>=PACKAGE && LA52_22<=EVENT)||(LA52_22>=DOT && LA52_22<=GLOBAL)||LA52_22==COMMA||(LA52_22>=QUERY && LA52_22<=83)) && (synpred7())) {s = 13;}
- input.seek(index52_15);
+ input.seek(index52_22);
if ( s>=0 ) return s;
break;
case 59 :
- int LA52_31 = input.LA(1);
+ int LA52_42 = input.LA(1);
- int index52_31 = input.index();
+ int index52_42 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 13;}
+ if ( (LA52_42==ID) ) {s = 77;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_42==LEFT_PAREN) ) {s = 78;}
+ else if ( (LA52_42==RIGHT_PAREN) && (synpred7())) {s = 8;}
+
+ else if ( ((LA52_42>=PACKAGE && LA52_42<=EVENT)||(LA52_42>=DOT && LA52_42<=GLOBAL)||LA52_42==COMMA||(LA52_42>=QUERY && LA52_42<=83)) && (synpred7())) {s = 13;}
+
- input.seek(index52_31);
+ input.seek(index52_42);
if ( s>=0 ) return s;
break;
case 60 :
- int LA52_24 = input.LA(1);
+ int LA52_7 = input.LA(1);
- int index52_24 = input.index();
+ int index52_7 = input.index();
input.rewind();
s = -1;
- if ( (LA52_24==LEFT_PAREN) ) {s = 51;}
+ if ( (synpred7()) ) {s = 13;}
- else if ( (LA52_24==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (true) ) {s = 3;}
- else if ( ((LA52_24>=PACKAGE && LA52_24<=GLOBAL)||LA52_24==COMMA||(LA52_24>=QUERY && LA52_24<=81)) && (synpred7())) {s = 13;}
-
- input.seek(index52_24);
+ input.seek(index52_7);
if ( s>=0 ) return s;
break;
case 61 :
- int LA52_40 = input.LA(1);
+ int LA52_53 = input.LA(1);
- int index52_40 = input.index();
+ int index52_53 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 67;}
+ if ( ((LA52_53>=PACKAGE && LA52_53<=ID)||LA52_53==GLOBAL||(LA52_53>=QUERY && LA52_53<=ATTRIBUTES)||LA52_53==ENABLED||LA52_53==SALIENCE||(LA52_53>=DURATION && LA52_53<=DIALECT)||LA52_53==FROM||(LA52_53>=INIT && LA52_53<=RESULT)||(LA52_53>=CONTAINS && LA52_53<=MEMBEROF)||LA52_53==IN||LA52_53==THEN) ) {s = 91;}
- else if ( (true) ) {s = 3;}
+ else if ( (LA52_53==RIGHT_PAREN) && (synpred7())) {s = 8;}
+ else if ( (LA52_53==DOT||LA52_53==COMMA||(LA52_53>=DATE_EFFECTIVE && LA52_53<=DATE_EXPIRES)||LA52_53==BOOL||(LA52_53>=INT && LA52_53<=AGENDA_GROUP)||(LA52_53>=LOCK_ON_ACTIVE && LA52_53<=DOUBLE_AMPER)||(LA52_53>=EXISTS && LA52_53<=ACCUMULATE)||LA52_53==COLLECT||LA52_53==TILDE||(LA52_53>=FLOAT && LA52_53<=RIGHT_SQUARE)||(LA52_53>=EOL && LA52_53<=83)) && (synpred7())) {s = 13;}
+
+ else if ( (LA52_53==LEFT_PAREN) && (synpred7())) {s = 67;}
+
- input.seek(index52_40);
+ input.seek(index52_53);
if ( s>=0 ) return s;
break;
case 62 :
- int LA52_30 = input.LA(1);
+ int LA52_16 = input.LA(1);
- int index52_30 = input.index();
+ int index52_16 = input.index();
input.rewind();
s = -1;
- if ( (synpred7()) ) {s = 13;}
+ if ( (LA52_16==RIGHT_PAREN) && (synpred7())) {s = 8;}
- else if ( (true) ) {s = 3;}
+ else if ( ((LA52_16>=PACKAGE && LA52_16<=GLOBAL)||LA52_16==COMMA||(LA52_16>=QUERY && LA52_16<=83)) && (synpred7())) {s = 13;}
+ else if ( (LA52_16==LEFT_PAREN) ) {s = 40;}
+
- input.seek(index52_30);
+ input.seek(index52_16);
if ( s>=0 ) return s;
break;
}
@@ -8828,9 +8974,9 @@
static final String DFA64_eofS =
"\23\uffff";
static final String DFA64_minS =
- "\1\13\1\uffff\1\4\1\10\1\0\1\4\1\uffff\1\4\13\0";
+ "\1\14\1\uffff\1\4\1\11\1\0\1\4\1\uffff\1\4\13\0";
static final String DFA64_maxS =
- "\1\45\1\uffff\2\121\1\0\1\121\1\uffff\1\121\13\0";
+ "\1\46\1\uffff\2\123\1\0\1\123\1\uffff\1\123\13\0";
static final String DFA64_acceptS =
"\1\uffff\1\2\4\uffff\1\1\14\uffff";
static final String DFA64_specialS =
@@ -8838,19 +8984,21 @@
static final String[] DFA64_transitionS = {
"\2\1\26\uffff\1\2\1\uffff\1\1",
"",
- "\4\1\1\uffff\1\1\1\4\2\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"+
+ "\5\1\1\uffff\1\1\1\4\2\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"+
"\2\1\5\uffff\1\1\1\uffff\1\6\1\1\2\uffff\4\1\1\uffff\1\5\1\7"+
- "\1\10\1\11\1\12\1\3\6\uffff\1\1\16\uffff\6\6",
- "\1\1\1\uffff\1\13\35\uffff\1\1\10\uffff\6\1\4\uffff\1\1\20\uffff"+
+ "\1\10\1\11\1\12\1\6\1\3\6\uffff\1\1\16\uffff\6\6",
+ "\1\1\1\uffff\1\13\35\uffff\1\1\10\uffff\7\1\4\uffff\1\1\20\uffff"+
"\6\1",
"\1\uffff",
- "\4\6\1\1\1\6\1\22\2\uffff\6\6\1\uffff\1\6\1\uffff\4\6\5\uffff"+
+ "\5\6\1\1\1\6\1\22\2\uffff\6\6\1\uffff\1\6\1\uffff\4\6\5\uffff"+
"\2\6\5\uffff\1\6\1\uffff\1\1\3\uffff\4\6\1\uffff\1\15\1\16\1"+
- "\17\1\20\1\21\1\14\2\6\2\uffff\1\1\1\uffff\1\6\16\uffff\6\1",
+ "\17\1\20\1\21\1\1\1\14\2\6\2\uffff\1\1\1\uffff\1\6\16\uffff"+
+ "\6\1",
"",
- "\4\6\1\1\1\6\1\22\2\uffff\6\6\1\uffff\1\6\1\uffff\4\6\5\uffff"+
+ "\5\6\1\1\1\6\1\22\2\uffff\6\6\1\uffff\1\6\1\uffff\4\6\5\uffff"+
"\2\6\5\uffff\1\6\1\uffff\1\1\3\uffff\4\6\1\uffff\1\15\1\16\1"+
- "\17\1\20\1\21\1\14\2\6\2\uffff\1\1\1\uffff\1\6\16\uffff\6\1",
+ "\17\1\20\1\21\1\1\1\14\2\6\2\uffff\1\1\1\uffff\1\6\16\uffff"+
+ "\6\1",
"\1\uffff",
"\1\uffff",
"\1\uffff",
@@ -8894,7 +9042,7 @@
this.transition = DFA64_transition;
}
public String getDescription() {
- return "()* loopback of 1398:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*";
+ return "()* loopback of 1411:3: ( options {backtrack=true; } : DOUBLE_PIPE and_restr_connective[or] )*";
}
public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
int _s = s;
@@ -8923,36 +9071,82 @@
}
}
static final String DFA65_eotS =
- "\32\uffff";
+ "\70\uffff";
static final String DFA65_eofS =
- "\1\1\31\uffff";
+ "\1\1\13\uffff\1\4\1\uffff\5\4\45\uffff";
static final String DFA65_minS =
- "\1\13\1\uffff\1\4\1\10\2\4\1\uffff\1\4\22\0";
+ "\1\14\1\uffff\1\4\1\11\1\uffff\7\4\1\11\6\4\1\11\1\0\2\4\41\0";
static final String DFA65_maxS =
- "\1\45\1\uffff\4\121\1\uffff\1\121\22\0";
+ "\1\46\1\uffff\2\123\1\uffff\7\123\1\75\1\123\5\77\1\123\1\0\2\123"+
+ "\41\0";
static final String DFA65_acceptS =
- "\1\uffff\1\2\4\uffff\1\1\23\uffff";
+ "\1\uffff\1\2\2\uffff\1\1\63\uffff";
static final String DFA65_specialS =
- "\32\uffff}>";
+ "\24\uffff\1\0\43\uffff}>";
static final String[] DFA65_transitionS = {
"\2\1\26\uffff\1\1\1\uffff\1\2",
"",
- "\4\1\1\uffff\1\1\1\4\2\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6\uffff"+
- "\2\1\5\uffff\1\1\1\uffff\1\6\1\1\2\uffff\4\1\1\uffff\1\5\1\7"+
- "\1\10\1\11\1\12\1\3\6\uffff\1\1\16\uffff\6\6",
- "\1\1\1\uffff\1\13\35\uffff\1\1\10\uffff\6\1\4\uffff\1\1\20\uffff"+
+ "\5\1\1\uffff\1\1\1\12\2\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6"+
+ "\uffff\2\1\5\uffff\1\1\1\uffff\1\4\1\1\2\uffff\4\1\1\uffff\1"+
+ "\5\1\6\1\7\1\10\1\11\1\4\1\3\6\uffff\1\1\16\uffff\6\4",
+ "\1\1\1\uffff\1\13\35\uffff\1\1\10\uffff\7\1\4\uffff\1\1\20\uffff"+
"\6\1",
- "\4\1\1\uffff\1\1\1\15\2\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6"+
- "\uffff\2\1\5\uffff\1\1\1\uffff\1\6\1\1\2\uffff\4\1\1\uffff\1"+
- "\16\1\17\1\20\1\21\1\22\1\14\6\uffff\1\1\16\uffff\6\6",
- "\4\6\1\1\1\6\1\24\2\uffff\6\6\1\uffff\1\6\1\uffff\4\6\5\uffff"+
- "\2\6\5\uffff\1\6\1\uffff\1\1\3\uffff\4\6\1\uffff\1\25\1\26\1"+
- "\27\1\30\1\31\1\23\2\6\2\uffff\1\1\1\uffff\1\6\16\uffff\6\1",
"",
- "\4\6\1\1\1\6\1\24\2\uffff\6\6\1\uffff\1\6\1\uffff\4\6\5\uffff"+
- "\2\6\5\uffff\1\6\1\uffff\1\1\3\uffff\4\6\1\uffff\1\25\1\26\1"+
- "\27\1\30\1\31\1\23\2\6\2\uffff\1\1\1\uffff\1\6\16\uffff\6\1",
+ "\5\4\1\1\1\4\1\15\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"+
+ "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\16\1\17\1"+
+ "\20\1\21\1\22\1\1\1\14\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff"+
+ "\6\1",
+ "\5\4\1\1\1\4\1\15\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"+
+ "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\16\1\17\1"+
+ "\20\1\21\1\22\1\1\1\14\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff"+
+ "\6\1",
+ "\5\4\1\1\1\4\1\15\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"+
+ "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\16\1\17\1"+
+ "\20\1\21\1\22\1\1\1\14\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff"+
+ "\6\1",
+ "\5\4\1\1\1\4\1\15\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"+
+ "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\16\1\17\1"+
+ "\20\1\21\1\22\1\1\1\14\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff"+
+ "\6\1",
+ "\5\4\1\1\1\4\1\15\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"+
+ "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\16\1\17\1"+
+ "\20\1\21\1\22\1\1\1\14\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff"+
+ "\6\1",
+ "\5\1\1\uffff\1\1\1\24\2\uffff\6\1\3\uffff\1\1\1\uffff\1\1\6"+
+ "\uffff\2\1\5\uffff\1\1\1\uffff\1\4\1\1\2\uffff\4\1\1\uffff\1"+
+ "\25\1\26\1\27\1\30\1\31\1\4\1\23\6\uffff\1\1\16\uffff\6\4",
+ "\5\4\1\uffff\1\4\1\33\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5"+
+ "\uffff\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\34"+
+ "\1\35\1\36\1\37\1\40\1\1\1\32\2\4\4\uffff\1\4\16\uffff\6\1",
+ "\1\4\1\uffff\1\1\2\4\26\uffff\1\4\1\uffff\1\4\26\uffff\1\4",
+ "\7\4\1\42\35\4\1\43\10\4\1\52\1\53\1\54\1\55\1\56\1\57\1\41"+
+ "\25\4\1\44\1\45\1\46\1\47\1\50\1\51",
+ "\5\1\1\4\2\1\2\4\6\1\1\uffff\1\1\1\uffff\4\1\5\uffff\2\1\2\uffff"+
+ "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\1\uffff\5\1\1\uffff\3\1\2\uffff"+
+ "\1\4\1\uffff\1\1",
+ "\5\1\1\4\2\1\2\4\6\1\1\uffff\1\1\1\uffff\4\1\5\uffff\2\1\2\uffff"+
+ "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\1\uffff\5\1\1\uffff\3\1\2\uffff"+
+ "\1\4\1\uffff\1\1",
+ "\5\1\1\4\2\1\2\4\6\1\1\uffff\1\1\1\uffff\4\1\5\uffff\2\1\2\uffff"+
+ "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\1\uffff\5\1\1\uffff\3\1\2\uffff"+
+ "\1\4\1\uffff\1\1",
+ "\5\1\1\4\2\1\2\4\6\1\1\uffff\1\1\1\uffff\4\1\5\uffff\2\1\2\uffff"+
+ "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\1\uffff\5\1\1\uffff\3\1\2\uffff"+
+ "\1\4\1\uffff\1\1",
+ "\5\1\1\4\2\1\2\4\6\1\1\uffff\1\1\1\uffff\4\1\5\uffff\2\1\2\uffff"+
+ "\1\4\1\uffff\1\4\1\1\5\uffff\4\1\1\uffff\5\1\1\uffff\3\1\2\uffff"+
+ "\1\4\1\uffff\1\1",
+ "\1\1\1\uffff\1\60\35\uffff\1\1\10\uffff\7\1\4\uffff\1\1\20\uffff"+
+ "\6\1",
"\1\uffff",
+ "\5\4\1\1\1\4\1\62\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"+
+ "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\63\1\64\1"+
+ "\65\1\66\1\67\1\1\1\61\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff"+
+ "\6\1",
+ "\5\4\1\1\1\4\1\62\2\uffff\6\4\1\uffff\1\4\1\uffff\4\4\5\uffff"+
+ "\2\4\5\uffff\1\4\1\uffff\1\1\3\uffff\4\4\1\uffff\1\63\1\64\1"+
+ "\65\1\66\1\67\1\1\1\61\2\4\2\uffff\1\1\1\uffff\1\4\16\uffff"+
+ "\6\1",
"\1\uffff",
"\1\uffff",
"\1\uffff",
@@ -8969,6 +9163,22 @@
"\1\uffff",
"\1\uffff",
"\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
+ "\1\uffff",
"\1\uffff"
};
@@ -9002,333 +9212,370 @@
this.transition = DFA65_transition;
}
public String getDescription() {
- return "()* loopback of 1421:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*";
+ return "()* loopback of 1434:3: ( options {backtrack=true; } : t= DOUBLE_AMPER constraint_expression[and] )*";
}
+ public int specialStateTransition(int s, IntStream input) throws NoViableAltException {
+ int _s = s;
+ switch ( s ) {
+ case 0 :
+ int LA65_20 = input.LA(1);
+
+
+ int index65_20 = input.index();
+ input.rewind();
+ s = -1;
+ if ( (synpred9()) ) {s = 4;}
+
+ else if ( (true) ) {s = 1;}
+
+
+ input.seek(index65_20);
+ if ( s>=0 ) return s;
+ break;
+ }
+ if (backtracking>0) {failed=true; return -1;}
+ NoViableAltException nvae =
+ new NoViableAltException(getDescription(), 65, _s, input);
+ error(nvae);
+ throw nvae;
+ }
}
- public static final BitSet FOLLOW_72_in_opt_semicolon39 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_prolog_in_compilation_unit57 = new BitSet(new long[]{0x00000003FD69A260L});
- public static final BitSet FOLLOW_statement_in_compilation_unit62 = new BitSet(new long[]{0x00000003FD69A260L});
+ public static final BitSet FOLLOW_74_in_opt_semicolon39 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_prolog_in_compilation_unit57 = new BitSet(new long[]{0x00000007FAD34460L});
+ public static final BitSet FOLLOW_statement_in_compilation_unit62 = new BitSet(new long[]{0x00000007FAD34460L});
public static final BitSet FOLLOW_EOF_in_compilation_unit67 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_package_statement_in_prolog96 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_rule_attribute_in_statement121 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_function_import_statement_in_statement128 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_import_statement_in_statement134 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_global_in_statement140 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_function_in_statement146 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_template_in_statement160 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_rule_in_statement169 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_query_in_statement181 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_PACKAGE_in_package_statement205 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_dotted_name_in_package_statement209 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_package_statement211 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_IMPORT_in_import_statement242 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_import_name_in_import_statement265 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_import_statement268 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_IMPORT_in_function_import_statement292 = new BitSet(new long[]{0x0000000000000040L});
- public static final BitSet FOLLOW_FUNCTION_in_function_import_statement294 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_import_name_in_function_import_statement317 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_function_import_statement320 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ID_in_import_name346 = new BitSet(new long[]{0x0000000000000102L,0x0000000000000200L});
- public static final BitSet FOLLOW_DOT_in_import_name358 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_identifier_in_import_name362 = new BitSet(new long[]{0x0000000000000102L,0x0000000000000200L});
- public static final BitSet FOLLOW_73_in_import_name386 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_GLOBAL_in_global420 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_dotted_name_in_global431 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_identifier_in_global442 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_global444 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_FUNCTION_in_function469 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_dotted_name_in_function473 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_identifier_in_function478 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_function487 = new BitSet(new long[]{0x207EF0418147F2F0L});
- public static final BitSet FOLLOW_dotted_name_in_function496 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_argument_in_function501 = new BitSet(new long[]{0x0000000000001800L});
- public static final BitSet FOLLOW_COMMA_in_function515 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_dotted_name_in_function519 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_argument_in_function524 = new BitSet(new long[]{0x0000000000001800L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_function548 = new BitSet(new long[]{0x0200000000000000L});
- public static final BitSet FOLLOW_curly_chunk_in_function554 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_identifier_in_argument581 = new BitSet(new long[]{0x0800000000000002L});
- public static final BitSet FOLLOW_LEFT_SQUARE_in_argument587 = new BitSet(new long[]{0x1000000000000000L});
- public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument589 = new BitSet(new long[]{0x0800000000000002L});
- public static final BitSet FOLLOW_QUERY_in_query619 = new BitSet(new long[]{0x0000000000100080L});
- public static final BitSet FOLLOW_name_in_query623 = new BitSet(new long[]{0x0000078000004480L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_query633 = new BitSet(new long[]{0x0000000000001080L});
- public static final BitSet FOLLOW_qualified_id_in_query668 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_ID_in_query673 = new BitSet(new long[]{0x0000000000001800L});
- public static final BitSet FOLLOW_COMMA_in_query694 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_qualified_id_in_query698 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_ID_in_query703 = new BitSet(new long[]{0x0000000000001800L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_query753 = new BitSet(new long[]{0x0000078000004480L});
- public static final BitSet FOLLOW_normal_lhs_block_in_query782 = new BitSet(new long[]{0x0000000000004000L});
- public static final BitSet FOLLOW_END_in_query787 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_query789 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_TEMPLATE_in_template817 = new BitSet(new long[]{0x0000000000100080L});
- public static final BitSet FOLLOW_name_in_template821 = new BitSet(new long[]{0x0000000000000080L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_template823 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_template_slot_in_template838 = new BitSet(new long[]{0x0000000000004080L});
- public static final BitSet FOLLOW_END_in_template853 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_template855 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_qualified_id_in_template_slot901 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_identifier_in_template_slot917 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_template_slot919 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_RULE_in_rule950 = new BitSet(new long[]{0x0000000000100080L});
- public static final BitSet FOLLOW_name_in_rule954 = new BitSet(new long[]{0x20000003FD6E0000L});
- public static final BitSet FOLLOW_rule_attributes_in_rule963 = new BitSet(new long[]{0x2000000000020000L});
- public static final BitSet FOLLOW_WHEN_in_rule975 = new BitSet(new long[]{0x2000078000000480L,0x0000000000000400L});
- public static final BitSet FOLLOW_74_in_rule977 = new BitSet(new long[]{0x2000078000000480L});
- public static final BitSet FOLLOW_normal_lhs_block_in_rule988 = new BitSet(new long[]{0x2000000000000000L});
- public static final BitSet FOLLOW_rhs_chunk_in_rule998 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ATTRIBUTES_in_rule_attributes1018 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
- public static final BitSet FOLLOW_74_in_rule_attributes1020 = new BitSet(new long[]{0x00000003FD680000L});
- public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1028 = new BitSet(new long[]{0x00000003FD680802L});
- public static final BitSet FOLLOW_COMMA_in_rule_attributes1035 = new BitSet(new long[]{0x00000003FD680000L});
- public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1040 = new BitSet(new long[]{0x00000003FD680802L});
- public static final BitSet FOLLOW_salience_in_rule_attribute1077 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_no_loop_in_rule_attribute1085 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_agenda_group_in_rule_attribute1094 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_duration_in_rule_attribute1103 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_activation_group_in_rule_attribute1112 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_auto_focus_in_rule_attribute1120 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_date_effective_in_rule_attribute1128 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_date_expires_in_rule_attribute1136 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_enabled_in_rule_attribute1144 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ruleflow_group_in_rule_attribute1152 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_lock_on_active_in_rule_attribute1160 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_dialect_in_rule_attribute1167 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_DATE_EFFECTIVE_in_date_effective1193 = new BitSet(new long[]{0x0000000000100000L});
- public static final BitSet FOLLOW_STRING_in_date_effective1195 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_DATE_EXPIRES_in_date_expires1224 = new BitSet(new long[]{0x0000000000100000L});
- public static final BitSet FOLLOW_STRING_in_date_expires1226 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ENABLED_in_enabled1255 = new BitSet(new long[]{0x0000000000800000L});
- public static final BitSet FOLLOW_BOOL_in_enabled1257 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_SALIENCE_in_salience1290 = new BitSet(new long[]{0x0000000002000400L});
- public static final BitSet FOLLOW_INT_in_salience1301 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_paren_chunk_in_salience1316 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_NO_LOOP_in_no_loop1346 = new BitSet(new long[]{0x0000000000800002L});
- public static final BitSet FOLLOW_BOOL_in_no_loop1359 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_AUTO_FOCUS_in_auto_focus1394 = new BitSet(new long[]{0x0000000000800002L});
- public static final BitSet FOLLOW_BOOL_in_auto_focus1407 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ACTIVATION_GROUP_in_activation_group1443 = new BitSet(new long[]{0x0000000000100000L});
- public static final BitSet FOLLOW_STRING_in_activation_group1445 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1473 = new BitSet(new long[]{0x0000000000100000L});
- public static final BitSet FOLLOW_STRING_in_ruleflow_group1475 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_AGENDA_GROUP_in_agenda_group1503 = new BitSet(new long[]{0x0000000000100000L});
- public static final BitSet FOLLOW_STRING_in_agenda_group1505 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_DURATION_in_duration1533 = new BitSet(new long[]{0x0000000002000000L});
- public static final BitSet FOLLOW_INT_in_duration1535 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_DIALECT_in_dialect1563 = new BitSet(new long[]{0x0000000000100000L});
- public static final BitSet FOLLOW_STRING_in_dialect1565 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1597 = new BitSet(new long[]{0x0000000000800002L});
- public static final BitSet FOLLOW_BOOL_in_lock_on_active1610 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_lhs_in_normal_lhs_block1649 = new BitSet(new long[]{0x0000078000000482L});
- public static final BitSet FOLLOW_lhs_or_in_lhs1686 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_or1711 = new BitSet(new long[]{0x0000000400000000L});
- public static final BitSet FOLLOW_OR_in_lhs_or1713 = new BitSet(new long[]{0x0000078000000480L});
- public static final BitSet FOLLOW_lhs_and_in_lhs_or1726 = new BitSet(new long[]{0x0000078000001480L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_or1737 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_lhs_and_in_lhs_or1755 = new BitSet(new long[]{0x0000000C00000002L});
- public static final BitSet FOLLOW_set_in_lhs_or1763 = new BitSet(new long[]{0x0000078000000480L});
- public static final BitSet FOLLOW_lhs_and_in_lhs_or1779 = new BitSet(new long[]{0x0000000C00000002L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_and1810 = new BitSet(new long[]{0x0000001000000000L});
- public static final BitSet FOLLOW_AND_in_lhs_and1812 = new BitSet(new long[]{0x0000078000000480L});
- public static final BitSet FOLLOW_lhs_unary_in_lhs_and1824 = new BitSet(new long[]{0x0000078000001480L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and1834 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_lhs_unary_in_lhs_and1852 = new BitSet(new long[]{0x0000003000000002L});
- public static final BitSet FOLLOW_set_in_lhs_and1860 = new BitSet(new long[]{0x0000078000000480L});
- public static final BitSet FOLLOW_lhs_unary_in_lhs_and1876 = new BitSet(new long[]{0x0000003000000002L});
- public static final BitSet FOLLOW_lhs_exist_in_lhs_unary1921 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_lhs_not_in_lhs_unary1939 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_lhs_eval_in_lhs_unary1958 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_lhs_forall_in_lhs_unary1977 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary1994 = new BitSet(new long[]{0x0000078000000480L});
- public static final BitSet FOLLOW_lhs_or_in_lhs_unary1998 = new BitSet(new long[]{0x0000000000001000L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary2000 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_pattern_source_in_lhs_unary2011 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_lhs_unary2023 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_lhs_pattern_in_pattern_source2050 = new BitSet(new long[]{0x0000004000000002L});
- public static final BitSet FOLLOW_FROM_in_pattern_source2062 = new BitSet(new long[]{0x207FF8418147E2F0L});
- public static final BitSet FOLLOW_accumulate_statement_in_pattern_source2118 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_collect_statement_in_pattern_source2141 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_from_statement_in_pattern_source2165 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_EXISTS_in_lhs_exist2208 = new BitSet(new long[]{0x0000000000000480L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist2228 = new BitSet(new long[]{0x0000078000000480L});
- public static final BitSet FOLLOW_lhs_or_in_lhs_exist2232 = new BitSet(new long[]{0x0000000000001000L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist2262 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist2312 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_NOT_in_lhs_not2364 = new BitSet(new long[]{0x0000000000000480L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not2377 = new BitSet(new long[]{0x0000078000000480L});
- public static final BitSet FOLLOW_lhs_or_in_lhs_not2381 = new BitSet(new long[]{0x0000000000001000L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not2412 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_lhs_pattern_in_lhs_not2449 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_EVAL_in_lhs_eval2495 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_paren_chunk_in_lhs_eval2506 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_FORALL_in_lhs_forall2532 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall2534 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2538 = new BitSet(new long[]{0x0000000000001080L});
- public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2553 = new BitSet(new long[]{0x0000000000001080L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall2569 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_fact_binding_in_lhs_pattern2602 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_fact_in_lhs_pattern2610 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_from_source_in_from_statement2637 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement2674 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement2684 = new BitSet(new long[]{0x0000078000000480L});
- public static final BitSet FOLLOW_lhs_or_in_accumulate_statement2688 = new BitSet(new long[]{0x0000100000000880L});
- public static final BitSet FOLLOW_COMMA_in_accumulate_statement2690 = new BitSet(new long[]{0x0000100000000080L});
- public static final BitSet FOLLOW_INIT_in_accumulate_statement2708 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2721 = new BitSet(new long[]{0x0000200000000800L});
- public static final BitSet FOLLOW_COMMA_in_accumulate_statement2723 = new BitSet(new long[]{0x0000200000000000L});
- public static final BitSet FOLLOW_ACTION_in_accumulate_statement2734 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2738 = new BitSet(new long[]{0x0000C00000000800L});
- public static final BitSet FOLLOW_COMMA_in_accumulate_statement2740 = new BitSet(new long[]{0x0000C00000000000L});
- public static final BitSet FOLLOW_REVERSE_in_accumulate_statement2753 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2757 = new BitSet(new long[]{0x0000800000000800L});
- public static final BitSet FOLLOW_COMMA_in_accumulate_statement2759 = new BitSet(new long[]{0x0000800000000000L});
- public static final BitSet FOLLOW_RESULT_in_accumulate_statement2776 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2780 = new BitSet(new long[]{0x0000000000001000L});
- public static final BitSet FOLLOW_ID_in_accumulate_statement2806 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2810 = new BitSet(new long[]{0x0000000000001000L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement2827 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_identifier_in_from_source2855 = new BitSet(new long[]{0x0000000000000502L});
- public static final BitSet FOLLOW_paren_chunk_in_from_source2883 = new BitSet(new long[]{0x0000000000000102L});
- public static final BitSet FOLLOW_expression_chain_in_from_source2896 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_DOT_in_expression_chain2931 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_identifier_in_expression_chain2935 = new BitSet(new long[]{0x0800000000000502L});
- public static final BitSet FOLLOW_square_chunk_in_expression_chain2966 = new BitSet(new long[]{0x0000000000000102L});
- public static final BitSet FOLLOW_paren_chunk_in_expression_chain2999 = new BitSet(new long[]{0x0000000000000102L});
- public static final BitSet FOLLOW_expression_chain_in_expression_chain3014 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_COLLECT_in_collect_statement3065 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement3075 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_pattern_source_in_collect_statement3079 = new BitSet(new long[]{0x0000000000001000L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement3081 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ID_in_fact_binding3113 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
- public static final BitSet FOLLOW_74_in_fact_binding3115 = new BitSet(new long[]{0x0000000000000480L});
- public static final BitSet FOLLOW_fact_in_fact_binding3129 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding3145 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_fact_in_fact_binding3149 = new BitSet(new long[]{0x0000000C00001000L});
- public static final BitSet FOLLOW_set_in_fact_binding3162 = new BitSet(new long[]{0x0000000000000080L});
- public static final BitSet FOLLOW_fact_in_fact_binding3174 = new BitSet(new long[]{0x0000000C00001000L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding3192 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_qualified_id_in_fact3247 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_fact3257 = new BitSet(new long[]{0x207EF2418147F6F0L});
- public static final BitSet FOLLOW_constraints_in_fact3269 = new BitSet(new long[]{0x0000000000001000L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_fact3276 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_EOF_in_fact3285 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_constraint_in_constraints3303 = new BitSet(new long[]{0x0000000000000802L});
- public static final BitSet FOLLOW_COMMA_in_constraints3310 = new BitSet(new long[]{0x207EF2418147E6F0L});
- public static final BitSet FOLLOW_constraint_in_constraints3319 = new BitSet(new long[]{0x0000000000000802L});
- public static final BitSet FOLLOW_or_constr_in_constraint3352 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_and_constr_in_or_constr3375 = new BitSet(new long[]{0x0000000800000002L});
- public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr3383 = new BitSet(new long[]{0x207EF2418147E6F0L});
- public static final BitSet FOLLOW_and_constr_in_or_constr3392 = new BitSet(new long[]{0x0000000800000002L});
- public static final BitSet FOLLOW_unary_constr_in_and_constr3424 = new BitSet(new long[]{0x0000002000000002L});
- public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr3432 = new BitSet(new long[]{0x207EF2418147E6F0L});
- public static final BitSet FOLLOW_unary_constr_in_and_constr3441 = new BitSet(new long[]{0x0000002000000002L});
- public static final BitSet FOLLOW_field_constraint_in_unary_constr3469 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr3477 = new BitSet(new long[]{0x207EF2418147E6F0L});
- public static final BitSet FOLLOW_or_constr_in_unary_constr3479 = new BitSet(new long[]{0x0000000000001000L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr3482 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_EVAL_in_unary_constr3488 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_predicate_in_unary_constr3490 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ID_in_field_constraint3529 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
- public static final BitSet FOLLOW_74_in_field_constraint3531 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_accessor_path_in_field_constraint3550 = new BitSet(new long[]{0x007E010000000402L,0x000000000003F800L});
- public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3578 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_75_in_field_constraint3598 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_predicate_in_field_constraint3600 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_accessor_path_in_field_constraint3626 = new BitSet(new long[]{0x007E010000000400L,0x000000000003F000L});
- public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3648 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective3699 = new BitSet(new long[]{0x0000000800000002L});
- public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective3723 = new BitSet(new long[]{0x007E010000000400L,0x000000000003F000L});
- public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective3734 = new BitSet(new long[]{0x0000000800000002L});
- public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective3766 = new BitSet(new long[]{0x0000002000000002L});
- public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective3787 = new BitSet(new long[]{0x007E010000000400L,0x000000000003F000L});
- public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective3798 = new BitSet(new long[]{0x0000002000000002L});
- public static final BitSet FOLLOW_compound_operator_in_constraint_expression3835 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_simple_operator_in_constraint_expression3842 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression3849 = new BitSet(new long[]{0x007E010000000400L,0x000000000003F000L});
- public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression3858 = new BitSet(new long[]{0x0000000000001000L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression3864 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_76_in_simple_operator3895 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_77_in_simple_operator3903 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_78_in_simple_operator3911 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_79_in_simple_operator3919 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_80_in_simple_operator3927 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_81_in_simple_operator3935 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_CONTAINS_in_simple_operator3943 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_NOT_in_simple_operator3951 = new BitSet(new long[]{0x0002000000000000L});
- public static final BitSet FOLLOW_CONTAINS_in_simple_operator3955 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_EXCLUDES_in_simple_operator3963 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_MATCHES_in_simple_operator3971 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_SOUNDSLIKE_in_simple_operator3979 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_NOT_in_simple_operator3987 = new BitSet(new long[]{0x0008000000000000L});
- public static final BitSet FOLLOW_MATCHES_in_simple_operator3991 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_MEMBEROF_in_simple_operator3999 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_NOT_in_simple_operator4007 = new BitSet(new long[]{0x0020000000000000L});
- public static final BitSet FOLLOW_MEMBEROF_in_simple_operator4011 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_expression_value_in_simple_operator4025 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_IN_in_compound_operator4055 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_NOT_in_compound_operator4067 = new BitSet(new long[]{0x0040000000000000L});
- public static final BitSet FOLLOW_IN_in_compound_operator4069 = new BitSet(new long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator4084 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_expression_value_in_compound_operator4088 = new BitSet(new long[]{0x0000000000001800L});
- public static final BitSet FOLLOW_COMMA_in_compound_operator4095 = new BitSet(new long[]{0x21FEF04183D7E6F0L});
- public static final BitSet FOLLOW_expression_value_in_compound_operator4099 = new BitSet(new long[]{0x0000000000001800L});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator4108 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_accessor_path_in_expression_value4142 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_literal_constraint_in_expression_value4162 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_paren_chunk_in_expression_value4176 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_STRING_in_literal_constraint4219 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_INT_in_literal_constraint4230 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_FLOAT_in_literal_constraint4243 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_BOOL_in_literal_constraint4254 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_NULL_in_literal_constraint4266 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_paren_chunk_in_predicate4304 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk4322 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_set_in_curly_chunk4326 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_curly_chunk_in_curly_chunk4335 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk4340 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk4354 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_set_in_paren_chunk4358 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_paren_chunk_in_paren_chunk4367 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk4372 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk4385 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_set_in_square_chunk4389 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_square_chunk_in_square_chunk4398 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk4403 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ID_in_qualified_id4432 = new BitSet(new long[]{0x0800000000000102L});
- public static final BitSet FOLLOW_DOT_in_qualified_id4438 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_identifier_in_qualified_id4440 = new BitSet(new long[]{0x0800000000000102L});
- public static final BitSet FOLLOW_LEFT_SQUARE_in_qualified_id4449 = new BitSet(new long[]{0x1000000000000000L});
- public static final BitSet FOLLOW_RIGHT_SQUARE_in_qualified_id4451 = new BitSet(new long[]{0x0800000000000002L});
- public static final BitSet FOLLOW_identifier_in_dotted_name4485 = new BitSet(new long[]{0x0800000000000102L});
- public static final BitSet FOLLOW_DOT_in_dotted_name4491 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_identifier_in_dotted_name4495 = new BitSet(new long[]{0x0800000000000102L});
- public static final BitSet FOLLOW_LEFT_SQUARE_in_dotted_name4504 = new BitSet(new long[]{0x1000000000000000L});
- public static final BitSet FOLLOW_RIGHT_SQUARE_in_dotted_name4506 = new BitSet(new long[]{0x0800000000000002L});
- public static final BitSet FOLLOW_accessor_element_in_accessor_path4540 = new BitSet(new long[]{0x0000000000000102L});
- public static final BitSet FOLLOW_DOT_in_accessor_path4546 = new BitSet(new long[]{0x207EF0418147E2F0L});
- public static final BitSet FOLLOW_accessor_element_in_accessor_path4550 = new BitSet(new long[]{0x0000000000000102L});
- public static final BitSet FOLLOW_identifier_in_accessor_element4588 = new BitSet(new long[]{0x0800000000000002L});
- public static final BitSet FOLLOW_square_chunk_in_accessor_element4595 = new BitSet(new long[]{0x0800000000000002L});
- public static final BitSet FOLLOW_THEN_in_rhs_chunk4616 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_set_in_rhs_chunk4624 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x000000000003FFFFL});
- public static final BitSet FOLLOW_END_in_rhs_chunk4648 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
- public static final BitSet FOLLOW_opt_semicolon_in_rhs_chunk4650 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_ID_in_name4684 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_STRING_in_name4692 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_event_import_statement_in_statement134 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_import_statement_in_statement139 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_global_in_statement145 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_function_in_statement151 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_template_in_statement165 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_rule_in_statement174 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_query_in_statement186 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_PACKAGE_in_package_statement212 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_dotted_name_in_package_statement216 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_package_statement218 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IMPORT_in_import_statement249 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_import_name_in_import_statement272 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_import_statement275 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IMPORT_in_function_import_statement299 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_FUNCTION_in_function_import_statement301 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_import_name_in_function_import_statement324 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_function_import_statement327 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IMPORT_in_event_import_statement351 = new BitSet(new long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_EVENT_in_event_import_statement353 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_import_name_in_event_import_statement376 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_event_import_statement379 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_import_name405 = new BitSet(new long[]{0x0000000000000202L,0x0000000000000800L});
+ public static final BitSet FOLLOW_DOT_in_import_name417 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_identifier_in_import_name421 = new BitSet(new long[]{0x0000000000000202L,0x0000000000000800L});
+ public static final BitSet FOLLOW_75_in_import_name445 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_GLOBAL_in_global479 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_dotted_name_in_global490 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_identifier_in_global501 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_global503 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FUNCTION_in_function528 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_dotted_name_in_function532 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_identifier_in_function537 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_function546 = new BitSet(new long[]{0x817DE083028FE5F0L});
+ public static final BitSet FOLLOW_dotted_name_in_function555 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_argument_in_function560 = new BitSet(new long[]{0x0000000000003000L});
+ public static final BitSet FOLLOW_COMMA_in_function574 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_dotted_name_in_function578 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_argument_in_function583 = new BitSet(new long[]{0x0000000000003000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_function607 = new BitSet(new long[]{0x0800000000000000L});
+ public static final BitSet FOLLOW_curly_chunk_in_function613 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_identifier_in_argument640 = new BitSet(new long[]{0x2000000000000002L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_argument646 = new BitSet(new long[]{0x4000000000000000L});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_argument648 = new BitSet(new long[]{0x2000000000000002L});
+ public static final BitSet FOLLOW_QUERY_in_query678 = new BitSet(new long[]{0x0000000000200100L});
+ public static final BitSet FOLLOW_name_in_query682 = new BitSet(new long[]{0x00000F0000008900L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_query692 = new BitSet(new long[]{0x0000000000002100L});
+ public static final BitSet FOLLOW_qualified_id_in_query727 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_ID_in_query732 = new BitSet(new long[]{0x0000000000003000L});
+ public static final BitSet FOLLOW_COMMA_in_query753 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_qualified_id_in_query757 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_ID_in_query762 = new BitSet(new long[]{0x0000000000003000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_query812 = new BitSet(new long[]{0x00000F0000008900L});
+ public static final BitSet FOLLOW_normal_lhs_block_in_query841 = new BitSet(new long[]{0x0000000000008000L});
+ public static final BitSet FOLLOW_END_in_query846 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_query848 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_TEMPLATE_in_template876 = new BitSet(new long[]{0x0000000000200100L});
+ public static final BitSet FOLLOW_name_in_template880 = new BitSet(new long[]{0x0000000000000100L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_template882 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_template_slot_in_template897 = new BitSet(new long[]{0x0000000000008100L});
+ public static final BitSet FOLLOW_END_in_template912 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_template914 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_qualified_id_in_template_slot960 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_identifier_in_template_slot976 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_template_slot978 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_in_rule1009 = new BitSet(new long[]{0x0000000000200100L});
+ public static final BitSet FOLLOW_name_in_rule1013 = new BitSet(new long[]{0x80000007FADC0000L});
+ public static final BitSet FOLLOW_rule_attributes_in_rule1022 = new BitSet(new long[]{0x8000000000040000L});
+ public static final BitSet FOLLOW_WHEN_in_rule1034 = new BitSet(new long[]{0x80000F0000000900L,0x0000000000001000L});
+ public static final BitSet FOLLOW_76_in_rule1036 = new BitSet(new long[]{0x80000F0000000900L});
+ public static final BitSet FOLLOW_normal_lhs_block_in_rule1047 = new BitSet(new long[]{0x8000000000000000L});
+ public static final BitSet FOLLOW_rhs_chunk_in_rule1057 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ATTRIBUTES_in_rule_attributes1077 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_76_in_rule_attributes1079 = new BitSet(new long[]{0x00000007FAD00000L});
+ public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1087 = new BitSet(new long[]{0x00000007FAD01002L});
+ public static final BitSet FOLLOW_COMMA_in_rule_attributes1094 = new BitSet(new long[]{0x00000007FAD00000L});
+ public static final BitSet FOLLOW_rule_attribute_in_rule_attributes1099 = new BitSet(new long[]{0x00000007FAD01002L});
+ public static final BitSet FOLLOW_salience_in_rule_attribute1136 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_no_loop_in_rule_attribute1144 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_agenda_group_in_rule_attribute1153 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_duration_in_rule_attribute1162 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_activation_group_in_rule_attribute1171 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_auto_focus_in_rule_attribute1179 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_date_effective_in_rule_attribute1187 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_date_expires_in_rule_attribute1195 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_enabled_in_rule_attribute1203 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleflow_group_in_rule_attribute1211 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lock_on_active_in_rule_attribute1219 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_dialect_in_rule_attribute1226 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DATE_EFFECTIVE_in_date_effective1252 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_STRING_in_date_effective1254 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DATE_EXPIRES_in_date_expires1283 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_STRING_in_date_expires1285 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ENABLED_in_enabled1314 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_BOOL_in_enabled1316 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SALIENCE_in_salience1349 = new BitSet(new long[]{0x0000000004000800L});
+ public static final BitSet FOLLOW_INT_in_salience1360 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_paren_chunk_in_salience1375 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NO_LOOP_in_no_loop1405 = new BitSet(new long[]{0x0000000001000002L});
+ public static final BitSet FOLLOW_BOOL_in_no_loop1418 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_AUTO_FOCUS_in_auto_focus1453 = new BitSet(new long[]{0x0000000001000002L});
+ public static final BitSet FOLLOW_BOOL_in_auto_focus1466 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ACTIVATION_GROUP_in_activation_group1502 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_STRING_in_activation_group1504 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULEFLOW_GROUP_in_ruleflow_group1532 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_STRING_in_ruleflow_group1534 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_AGENDA_GROUP_in_agenda_group1562 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_STRING_in_agenda_group1564 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DURATION_in_duration1592 = new BitSet(new long[]{0x0000000004000000L});
+ public static final BitSet FOLLOW_INT_in_duration1594 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DIALECT_in_dialect1622 = new BitSet(new long[]{0x0000000000200000L});
+ public static final BitSet FOLLOW_STRING_in_dialect1624 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LOCK_ON_ACTIVE_in_lock_on_active1656 = new BitSet(new long[]{0x0000000001000002L});
+ public static final BitSet FOLLOW_BOOL_in_lock_on_active1669 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_in_normal_lhs_block1708 = new BitSet(new long[]{0x00000F0000000902L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs1745 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_or1770 = new BitSet(new long[]{0x0000000800000000L});
+ public static final BitSet FOLLOW_OR_in_lhs_or1772 = new BitSet(new long[]{0x00000F0000000900L});
+ public static final BitSet FOLLOW_lhs_and_in_lhs_or1785 = new BitSet(new long[]{0x00000F0000002900L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_or1796 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_and_in_lhs_or1814 = new BitSet(new long[]{0x0000001800000002L});
+ public static final BitSet FOLLOW_set_in_lhs_or1822 = new BitSet(new long[]{0x00000F0000000900L});
+ public static final BitSet FOLLOW_lhs_and_in_lhs_or1838 = new BitSet(new long[]{0x0000001800000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_and1869 = new BitSet(new long[]{0x0000002000000000L});
+ public static final BitSet FOLLOW_AND_in_lhs_and1871 = new BitSet(new long[]{0x00000F0000000900L});
+ public static final BitSet FOLLOW_lhs_unary_in_lhs_and1883 = new BitSet(new long[]{0x00000F0000002900L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_and1893 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_unary_in_lhs_and1911 = new BitSet(new long[]{0x0000006000000002L});
+ public static final BitSet FOLLOW_set_in_lhs_and1919 = new BitSet(new long[]{0x00000F0000000900L});
+ public static final BitSet FOLLOW_lhs_unary_in_lhs_and1935 = new BitSet(new long[]{0x0000006000000002L});
+ public static final BitSet FOLLOW_lhs_exist_in_lhs_unary1980 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_lhs_not_in_lhs_unary1998 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_lhs_eval_in_lhs_unary2017 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_lhs_forall_in_lhs_unary2036 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_unary2053 = new BitSet(new long[]{0x00000F0000000900L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs_unary2057 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_unary2059 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_pattern_source_in_lhs_unary2070 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_lhs_unary2082 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_pattern_in_pattern_source2109 = new BitSet(new long[]{0x0000008000000002L});
+ public static final BitSet FOLLOW_FROM_in_pattern_source2121 = new BitSet(new long[]{0x817FF083028FC5F0L});
+ public static final BitSet FOLLOW_accumulate_statement_in_pattern_source2177 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_collect_statement_in_pattern_source2200 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_from_statement_in_pattern_source2224 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_EXISTS_in_lhs_exist2267 = new BitSet(new long[]{0x0000000000000900L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_exist2287 = new BitSet(new long[]{0x00000F0000000900L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs_exist2291 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_exist2321 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs_exist2371 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NOT_in_lhs_not2423 = new BitSet(new long[]{0x0000000000000900L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_not2436 = new BitSet(new long[]{0x00000F0000000900L});
+ public static final BitSet FOLLOW_lhs_or_in_lhs_not2440 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_not2471 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs_not2508 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_EVAL_in_lhs_eval2554 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_paren_chunk_in_lhs_eval2565 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FORALL_in_lhs_forall2591 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_lhs_forall2593 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2597 = new BitSet(new long[]{0x0000000000002100L});
+ public static final BitSet FOLLOW_lhs_pattern_in_lhs_forall2612 = new BitSet(new long[]{0x0000000000002100L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_lhs_forall2628 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_fact_binding_in_lhs_pattern2661 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_fact_in_lhs_pattern2669 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_from_source_in_from_statement2696 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ACCUMULATE_in_accumulate_statement2733 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_accumulate_statement2743 = new BitSet(new long[]{0x00000F0000000900L});
+ public static final BitSet FOLLOW_lhs_or_in_accumulate_statement2747 = new BitSet(new long[]{0x0000200000001100L});
+ public static final BitSet FOLLOW_COMMA_in_accumulate_statement2749 = new BitSet(new long[]{0x0000200000000100L});
+ public static final BitSet FOLLOW_INIT_in_accumulate_statement2767 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2780 = new BitSet(new long[]{0x0000400000001000L});
+ public static final BitSet FOLLOW_COMMA_in_accumulate_statement2782 = new BitSet(new long[]{0x0000400000000000L});
+ public static final BitSet FOLLOW_ACTION_in_accumulate_statement2793 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2797 = new BitSet(new long[]{0x0001800000001000L});
+ public static final BitSet FOLLOW_COMMA_in_accumulate_statement2799 = new BitSet(new long[]{0x0001800000000000L});
+ public static final BitSet FOLLOW_REVERSE_in_accumulate_statement2812 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2816 = new BitSet(new long[]{0x0001000000001000L});
+ public static final BitSet FOLLOW_COMMA_in_accumulate_statement2818 = new BitSet(new long[]{0x0001000000000000L});
+ public static final BitSet FOLLOW_RESULT_in_accumulate_statement2835 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2839 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_ID_in_accumulate_statement2865 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_paren_chunk_in_accumulate_statement2869 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_accumulate_statement2886 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_identifier_in_from_source2914 = new BitSet(new long[]{0x0000000000000A02L});
+ public static final BitSet FOLLOW_paren_chunk_in_from_source2942 = new BitSet(new long[]{0x0000000000000202L});
+ public static final BitSet FOLLOW_expression_chain_in_from_source2955 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOT_in_expression_chain2990 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_identifier_in_expression_chain2994 = new BitSet(new long[]{0x2000000000000A02L});
+ public static final BitSet FOLLOW_square_chunk_in_expression_chain3025 = new BitSet(new long[]{0x0000000000000202L});
+ public static final BitSet FOLLOW_paren_chunk_in_expression_chain3058 = new BitSet(new long[]{0x0000000000000202L});
+ public static final BitSet FOLLOW_expression_chain_in_expression_chain3073 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_COLLECT_in_collect_statement3124 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_collect_statement3134 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_pattern_source_in_collect_statement3138 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_collect_statement3140 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_fact_binding3172 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_76_in_fact_binding3174 = new BitSet(new long[]{0x0000000000000900L});
+ public static final BitSet FOLLOW_fact_in_fact_binding3188 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_fact_binding3204 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_fact_in_fact_binding3208 = new BitSet(new long[]{0x0000001800002000L});
+ public static final BitSet FOLLOW_set_in_fact_binding3221 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_fact_in_fact_binding3233 = new BitSet(new long[]{0x0000001800002000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_fact_binding3251 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_qualified_id_in_fact3306 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_fact3316 = new BitSet(new long[]{0x817DE483028FEDF0L});
+ public static final BitSet FOLLOW_constraints_in_fact3328 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_fact3335 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_EOF_in_fact3344 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_constraint_in_constraints3362 = new BitSet(new long[]{0x0000000000001002L});
+ public static final BitSet FOLLOW_COMMA_in_constraints3369 = new BitSet(new long[]{0x817DE483028FCDF0L});
+ public static final BitSet FOLLOW_constraint_in_constraints3378 = new BitSet(new long[]{0x0000000000001002L});
+ public static final BitSet FOLLOW_or_constr_in_constraint3411 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_and_constr_in_or_constr3434 = new BitSet(new long[]{0x0000001000000002L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_constr3442 = new BitSet(new long[]{0x817DE483028FCDF0L});
+ public static final BitSet FOLLOW_and_constr_in_or_constr3451 = new BitSet(new long[]{0x0000001000000002L});
+ public static final BitSet FOLLOW_unary_constr_in_and_constr3483 = new BitSet(new long[]{0x0000004000000002L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_constr3491 = new BitSet(new long[]{0x817DE483028FCDF0L});
+ public static final BitSet FOLLOW_unary_constr_in_and_constr3500 = new BitSet(new long[]{0x0000004000000002L});
+ public static final BitSet FOLLOW_field_constraint_in_unary_constr3528 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_unary_constr3536 = new BitSet(new long[]{0x817DE483028FCDF0L});
+ public static final BitSet FOLLOW_or_constr_in_unary_constr3538 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_unary_constr3541 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_EVAL_in_unary_constr3547 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_predicate_in_unary_constr3549 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_field_constraint3588 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+ public static final BitSet FOLLOW_76_in_field_constraint3590 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_accessor_path_in_field_constraint3609 = new BitSet(new long[]{0x01FC020000000802L,0x00000000000FE000L});
+ public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3623 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_77_in_field_constraint3638 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_predicate_in_field_constraint3640 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_accessor_path_in_field_constraint3666 = new BitSet(new long[]{0x01FC020000000800L,0x00000000000FC000L});
+ public static final BitSet FOLLOW_or_restr_connective_in_field_constraint3675 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective3722 = new BitSet(new long[]{0x0000001000000002L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_or_restr_connective3745 = new BitSet(new long[]{0x01FC020000000800L,0x00000000000FC000L});
+ public static final BitSet FOLLOW_and_restr_connective_in_or_restr_connective3756 = new BitSet(new long[]{0x0000001000000002L});
+ public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective3788 = new BitSet(new long[]{0x0000004000000002L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_and_restr_connective3808 = new BitSet(new long[]{0x01FC020000000800L,0x00000000000FC000L});
+ public static final BitSet FOLLOW_constraint_expression_in_and_restr_connective3819 = new BitSet(new long[]{0x0000004000000002L});
+ public static final BitSet FOLLOW_compound_operator_in_constraint_expression3856 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_simple_operator_in_constraint_expression3863 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_constraint_expression3871 = new BitSet(new long[]{0x01FC020000000800L,0x00000000000FC000L});
+ public static final BitSet FOLLOW_or_restr_connective_in_constraint_expression3880 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_constraint_expression3885 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_78_in_simple_operator3916 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_79_in_simple_operator3924 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_80_in_simple_operator3932 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_81_in_simple_operator3940 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_82_in_simple_operator3948 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_83_in_simple_operator3956 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_CONTAINS_in_simple_operator3984 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_NOT_in_simple_operator4012 = new BitSet(new long[]{0x0004000000000000L});
+ public static final BitSet FOLLOW_CONTAINS_in_simple_operator4016 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_EXCLUDES_in_simple_operator4044 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_MATCHES_in_simple_operator4072 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_SOUNDSLIKE_in_simple_operator4100 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_NOT_in_simple_operator4128 = new BitSet(new long[]{0x0010000000000000L});
+ public static final BitSet FOLLOW_MATCHES_in_simple_operator4132 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_MEMBEROF_in_simple_operator4160 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_NOT_in_simple_operator4188 = new BitSet(new long[]{0x0040000000000000L});
+ public static final BitSet FOLLOW_MEMBEROF_in_simple_operator4192 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_TILDE_in_simple_operator4198 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_ID_in_simple_operator4202 = new BitSet(new long[]{0xA77DE08307AFCDF0L});
+ public static final BitSet FOLLOW_square_chunk_in_simple_operator4206 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_NOT_in_simple_operator4215 = new BitSet(new long[]{0x0080000000000000L});
+ public static final BitSet FOLLOW_TILDE_in_simple_operator4217 = new BitSet(new long[]{0x0000000000000100L});
+ public static final BitSet FOLLOW_ID_in_simple_operator4221 = new BitSet(new long[]{0xA77DE08307AFCDF0L});
+ public static final BitSet FOLLOW_square_chunk_in_simple_operator4225 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_expression_value_in_simple_operator4240 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_IN_in_compound_operator4270 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_NOT_in_compound_operator4282 = new BitSet(new long[]{0x0100000000000000L});
+ public static final BitSet FOLLOW_IN_in_compound_operator4284 = new BitSet(new long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_compound_operator4299 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_expression_value_in_compound_operator4303 = new BitSet(new long[]{0x0000000000003000L});
+ public static final BitSet FOLLOW_COMMA_in_compound_operator4310 = new BitSet(new long[]{0x877DE08307AFCDF0L});
+ public static final BitSet FOLLOW_expression_value_in_compound_operator4314 = new BitSet(new long[]{0x0000000000003000L});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_compound_operator4323 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_accessor_path_in_expression_value4357 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_literal_constraint_in_expression_value4377 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_paren_chunk_in_expression_value4391 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_in_literal_constraint4434 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_INT_in_literal_constraint4445 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FLOAT_in_literal_constraint4458 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_BOOL_in_literal_constraint4469 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NULL_in_literal_constraint4481 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_paren_chunk_in_predicate4519 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_CURLY_in_curly_chunk4537 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_set_in_curly_chunk4541 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_curly_chunk_in_curly_chunk4550 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_RIGHT_CURLY_in_curly_chunk4555 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_paren_chunk4569 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_set_in_paren_chunk4573 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_paren_chunk_in_paren_chunk4582 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_RIGHT_PAREN_in_paren_chunk4587 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_square_chunk4600 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_set_in_square_chunk4604 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_square_chunk_in_square_chunk4613 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_square_chunk4618 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_qualified_id4647 = new BitSet(new long[]{0x2000000000000202L});
+ public static final BitSet FOLLOW_DOT_in_qualified_id4653 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_identifier_in_qualified_id4655 = new BitSet(new long[]{0x2000000000000202L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_qualified_id4664 = new BitSet(new long[]{0x4000000000000000L});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_qualified_id4666 = new BitSet(new long[]{0x2000000000000002L});
+ public static final BitSet FOLLOW_identifier_in_dotted_name4700 = new BitSet(new long[]{0x2000000000000202L});
+ public static final BitSet FOLLOW_DOT_in_dotted_name4706 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_identifier_in_dotted_name4710 = new BitSet(new long[]{0x2000000000000202L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_dotted_name4719 = new BitSet(new long[]{0x4000000000000000L});
+ public static final BitSet FOLLOW_RIGHT_SQUARE_in_dotted_name4721 = new BitSet(new long[]{0x2000000000000002L});
+ public static final BitSet FOLLOW_accessor_element_in_accessor_path4755 = new BitSet(new long[]{0x0000000000000202L});
+ public static final BitSet FOLLOW_DOT_in_accessor_path4761 = new BitSet(new long[]{0x817DE083028FC5F0L});
+ public static final BitSet FOLLOW_accessor_element_in_accessor_path4765 = new BitSet(new long[]{0x0000000000000202L});
+ public static final BitSet FOLLOW_identifier_in_accessor_element4803 = new BitSet(new long[]{0x2000000000000002L});
+ public static final BitSet FOLLOW_square_chunk_in_accessor_element4810 = new BitSet(new long[]{0x2000000000000002L});
+ public static final BitSet FOLLOW_THEN_in_rhs_chunk4831 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_set_in_rhs_chunk4839 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000000000FFFFFL});
+ public static final BitSet FOLLOW_END_in_rhs_chunk4863 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
+ public static final BitSet FOLLOW_opt_semicolon_in_rhs_chunk4865 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ID_in_name4899 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_STRING_in_name4907 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_identifier0 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_EXISTS_in_synpred11913 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_NOT_in_synpred21931 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_EVAL_in_synpred31950 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_FORALL_in_synpred41969 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_synpred51988 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_SQUARE_in_synpred62958 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_LEFT_PAREN_in_synpred72991 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred83723 = new BitSet(new long[]{0x007E010000000400L,0x000000000003F000L});
- public static final BitSet FOLLOW_and_restr_connective_in_synpred83734 = new BitSet(new long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred93787 = new BitSet(new long[]{0x007E010000000400L,0x000000000003F000L});
- public static final BitSet FOLLOW_constraint_expression_in_synpred93798 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_EXISTS_in_synpred11972 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_NOT_in_synpred21990 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_EVAL_in_synpred32009 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_FORALL_in_synpred42028 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_synpred52047 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_SQUARE_in_synpred63017 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_LEFT_PAREN_in_synpred73050 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_PIPE_in_synpred83745 = new BitSet(new long[]{0x01FC020000000800L,0x00000000000FC000L});
+ public static final BitSet FOLLOW_and_restr_connective_in_synpred83756 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_DOUBLE_AMPER_in_synpred93808 = new BitSet(new long[]{0x01FC020000000800L,0x00000000000FC000L});
+ public static final BitSet FOLLOW_constraint_expression_in_synpred93819 = new BitSet(new long[]{0x0000000000000002L});
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/DrlDumper.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -514,8 +514,8 @@
String importList = "";
for ( final Iterator it = imports.iterator(); it.hasNext(); ) {
- final String importString = ((ImportDescr) it.next()).getTarget();
- final String importTemplate = "import " + importString + ";" + DrlDumper.eol;
+ final ImportDescr importDescr = (ImportDescr) it.next();
+ final String importTemplate = "import " + ( importDescr.isEvent() ? "event " : "" ) + importDescr.getTarget() + ";" + DrlDumper.eol;
importList += importTemplate;
}
return importList + DrlDumper.eol;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/MVELDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/MVELDumper.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/MVELDumper.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -55,7 +55,7 @@
}
public void visitVariableRestrictionDescr(final VariableRestrictionDescr descr) {
- this.template = processRestriction( descr.getEvaluator(), descr.getIdentifier() );
+ this.template = processRestriction( descr.getEvaluator(), descr.isNegated(), descr.getIdentifier() );
}
public void visitFieldBindingDescr(final FieldBindingDescr descr) {
@@ -75,11 +75,11 @@
} else if( descr.getType() == LiteralRestrictionDescr.TYPE_STRING ) {
text = "\"" + text + "\"";
}
- this.template = processRestriction( descr.getEvaluator(), text );
+ this.template = processRestriction( descr.getEvaluator(), descr.isNegated(), text );
}
public void visitQualifiedIdentifierRestrictionDescr(final QualifiedIdentifierRestrictionDescr descr) {
- this.template = processRestriction( descr.getEvaluator(), descr.getText() );
+ this.template = processRestriction( descr.getEvaluator(), descr.isNegated(), descr.getText() );
}
public void visitRestrictionConnectiveDescr(final RestrictionConnectiveDescr descr) {
@@ -91,7 +91,7 @@
}
public void visitReturnValueRestrictionDescr(final ReturnValueRestrictionDescr descr) {
- this.template = processRestriction( descr.getEvaluator(), "( "+descr.getContent().toString()+" )" );
+ this.template = processRestriction( descr.getEvaluator(), descr.isNegated(), "( "+descr.getContent().toString()+" )" );
}
private String processFieldConstraint(final RestrictionConnectiveDescr restriction) {
@@ -115,33 +115,34 @@
}
private String processRestriction(String evaluator,
+ boolean isNegated,
String value) {
- Operator op = Operator.determineOperator( evaluator );
- if( op == Operator.MEMBEROF ) {
+ Operator op = Operator.determineOperator( evaluator, isNegated );
+ if( op == Operator.determineOperator( "memberOf", false ) ) {
evaluator = "contains";
return evaluatorPrefix( evaluator ) +
value + " " +
evaluator( evaluator ) + " " +
this.fieldName + evaluatorSufix( evaluator );
- } else if(op == Operator.NOTMEMBEROF) {
+ } else if(op == Operator.determineOperator( "memberOf", true )) {
evaluator = "not contains";
return evaluatorPrefix( evaluator ) +
value + " " +
evaluator( evaluator ) + " " +
this.fieldName + evaluatorSufix( evaluator );
- } else if(op == Operator.EXCLUDES) {
+ } else if(op == Operator.determineOperator( "excludes", false ) ) {
evaluator = "not contains";
return evaluatorPrefix( evaluator ) +
this.fieldName + " " +
evaluator( evaluator ) + " " +
value + evaluatorSufix( evaluator );
- } else if(op == Operator.MATCHES) {
+ } else if(op == Operator.determineOperator( "matches", false )) {
evaluator = "~=";
return evaluatorPrefix( evaluator ) +
this.fieldName + " " +
evaluator( evaluator ) + " " +
value.replaceAll( "\\\\", "\\\\\\\\" ) + evaluatorSufix( evaluator );
- } else if(op == Operator.NOT_MATCHES) {
+ } else if(op == Operator.determineOperator( "matches", true )) {
evaluator = "not ~=";
return evaluatorPrefix( evaluator ) +
this.fieldName + " " +
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/DescrFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -42,6 +42,10 @@
return new FunctionImportDescr();
}
+ public ImportDescr createEventImport() {
+ return new ImportDescr( true ); // import is an event
+ }
+
public QueryDescr createQuery(final String queryName) {
return new QueryDescr( queryName,
"" );
Copied: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/EvaluatorBasedRestrictionDescr.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/main/java/org/drools/lang/descr/EvaluatorBasedRestrictionDescr.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/EvaluatorBasedRestrictionDescr.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/EvaluatorBasedRestrictionDescr.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 1, 2007
+ */
+package org.drools.lang.descr;
+
+/**
+ * This is a super class for all restrictions that are based on
+ * evaluators.
+ *
+ * @author etirelli
+ */
+public class EvaluatorBasedRestrictionDescr extends RestrictionDescr {
+
+ private static final long serialVersionUID = -9051550222783766557L;
+
+ private String evaluator;
+ private boolean negated;
+ private String parameterText;
+
+ /**
+ * Creates a new EvaluatorBasedRestriction
+ *
+ * @param evaluator the evaluator ID to be used in this restriction
+ * @param isNegated true if the evaluator is boolean negated
+ * @param parameterText the parameter text, in case there is any. null otherwise.
+ */
+ public EvaluatorBasedRestrictionDescr(final String evaluator,
+ final boolean isNegated,
+ final String parameterText) {
+ this.evaluator = evaluator;
+ this.negated = isNegated;
+ this.parameterText = parameterText;
+
+ }
+
+ /**
+ * Returns the evaluator ID for this restriction
+ * @return
+ */
+ public String getEvaluator() {
+ return this.evaluator;
+ }
+
+ /**
+ * Returns true if this evaluator is boolean negated.
+ * Example: "contains" is boolean negated if you want to check the elements that are not contained ("not contains")
+ *
+ * @return the negated
+ */
+ public boolean isNegated() {
+ return negated;
+ }
+
+ /**
+ * In case there is any parameter text, this method returns it. Returns null otherwise.
+ * A parameter text is evaluator parameters like "after[1,10]". In the previous example,
+ * the parameter text will be "1,10".
+ *
+ * @return the parameterText
+ */
+ public String getParameterText() {
+ return parameterText;
+ }
+
+ public String toString() {
+ return ( this.isNegated() ? "not " : "" ) + this.getEvaluator() + ( this.getParameterText() != null ? "["+this.getParameterText()+"]" : "");
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ForallDescr.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -28,14 +28,14 @@
implements
ConditionalElementDescr {
- private static final long serialVersionUID = 400L;
+ private static final long serialVersionUID = 400L;
- private static final String BASE_IDENTIFIER = "$__forallBaseIdentifier";
+ private static final String BASE_IDENTIFIER = "$__forallBaseIdentifier";
- private List patterns;
+ private List<BaseDescr> patterns;
public ForallDescr() {
- this.patterns = new ArrayList( 2 );
+ this.patterns = new ArrayList<BaseDescr>( 2 );
}
/* (non-Javadoc)
@@ -45,10 +45,11 @@
// cast to make sure we are adding a pattern descriptor
this.patterns.add( baseDescr );
}
-
- public void insertBeforeLast(final Class clazz ,final BaseDescr baseDescr ) {
+
+ public void insertBeforeLast(final Class clazz,
+ final BaseDescr baseDescr) {
throw new UnsupportedOperationException( "Can't add descriptors to " + this.getClass().getName() );
- }
+ }
/* (non-Javadoc)
* @see org.drools.lang.descr.ConditionalElementDescr#getDescrs()
@@ -62,9 +63,9 @@
* @return
*/
public PatternDescr getBasePattern() {
- if( this.patterns.size() > 1 ) {
+ if ( this.patterns.size() > 1 ) {
return (PatternDescr) this.patterns.get( 0 );
- } else if( this.patterns.size() == 1 ) {
+ } else if ( this.patterns.size() == 1 ) {
// in case there is only one pattern, we do a rewrite, so:
// forall( Cheese( type == "stilton" ) )
// becomes
@@ -83,18 +84,21 @@
* @return
*/
public List getRemainingPatterns() {
- if( this.patterns.size() > 1 ) {
+ if ( this.patterns.size() > 1 ) {
return this.patterns.subList( 1,
this.patterns.size() );
- } else if( this.patterns.size() == 1 ) {
+ } else if ( this.patterns.size() == 1 ) {
// in case there is only one pattern, we do a rewrite, so:
// forall( Cheese( type == "stilton" ) )
// becomes
// forall( BASE_IDENTIFIER : Cheese() Cheese( this == BASE_IDENTIFIER, type == "stilton" ) )
PatternDescr original = (PatternDescr) this.patterns.get( 0 );
PatternDescr remaining = (PatternDescr) original.clone();
- VariableRestrictionDescr restr = new VariableRestrictionDescr( "==", BASE_IDENTIFIER );
- FieldConstraintDescr constr = new FieldConstraintDescr("this");
+ VariableRestrictionDescr restr = new VariableRestrictionDescr( "==",
+ false,
+ null,
+ BASE_IDENTIFIER );
+ FieldConstraintDescr constr = new FieldConstraintDescr( "this" );
constr.addRestriction( restr );
remaining.addConstraint( constr );
return Collections.singletonList( remaining );
@@ -103,6 +107,6 @@
}
public void addOrMerge(BaseDescr baseDescr) {
- this.patterns.add( baseDescr );
+ this.patterns.add( baseDescr );
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ImportDescr.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -24,12 +24,23 @@
private static final long serialVersionUID = 400L;
private String target;
+ private boolean event;
public ImportDescr() {
+ this( null, false );
}
public ImportDescr(final String clazzName) {
+ this( clazzName, false );
+ }
+
+ public ImportDescr(final boolean isEvent) {
+ this( null, isEvent );
+ }
+
+ public ImportDescr(final String clazzName, final boolean isEvent ) {
this.target = clazzName;
+ this.event = isEvent;
}
public String getTarget() {
@@ -79,4 +90,8 @@
return "import " + this.target;
}
+ public boolean isEvent() {
+ return this.event;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/LiteralRestrictionDescr.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -24,64 +24,71 @@
* a constraint on a single field of a pattern.
* The "text" contains the content.
*/
-public class LiteralRestrictionDescr extends RestrictionDescr {
+public class LiteralRestrictionDescr extends EvaluatorBasedRestrictionDescr {
public static final int TYPE_NULL = 1;
public static final int TYPE_NUMBER = 2;
public static final int TYPE_STRING = 3;
public static final int TYPE_BOOLEAN = 4;
- /**
- *
- */
private static final long serialVersionUID = 400L;
- private String evaluator;
private int type;
public LiteralRestrictionDescr(final String evaluator,
final String text) {
this( evaluator,
+ false,
+ null,
text,
TYPE_STRING );// default type is string if not specified
}
public LiteralRestrictionDescr(final String evaluator,
+ final boolean isNegated,
+ final String text) {
+ this( evaluator,
+ isNegated,
+ null,
+ text,
+ TYPE_STRING );// default type is string if not specified
+ }
+
+ public LiteralRestrictionDescr(final String evaluator,
+ final boolean isNegated,
+ final String parameterText,
final String text,
final int type) {
+ super( evaluator,
+ isNegated,
+ parameterText );
this.setText( text );
- this.evaluator = evaluator;
this.type = type;
}
- public String getEvaluator() {
- return this.evaluator;
+ public String toString() {
+ return "[LiteralRestriction: " + super.toString() + " " + this.getText() + "]";
}
+ public int getType() {
+ return type;
+ }
+
+ public void setType(int type) {
+ this.type = type;
+ }
+
public Object getValue() {
- switch( this.type ) {
- case TYPE_NUMBER:
+ switch ( this.type ) {
+ case TYPE_NUMBER :
try {
return DecimalFormat.getInstance().parse( this.getText() );
} catch ( ParseException e ) {
// return String anyway
return this.getText();
}
- case TYPE_BOOLEAN:
+ case TYPE_BOOLEAN :
return Boolean.valueOf( this.getText() );
- default:
+ default :
return this.getText();
}
}
-
- public String toString() {
- return "[LiteralRestriction: " + this.evaluator + " " + this.getText() + "]";
-
- }
-
- public int getType() {
- return type;
- }
-
- public void setType(int type) {
- this.type = type;
- }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PredicateDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PredicateDescr.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/PredicateDescr.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -21,27 +21,12 @@
*
*/
private static final long serialVersionUID = 400L;
- //private final String fieldName;
private Object content;
- //private final String declaration;
private String[] declarations;
private String classMethodName;
- // public PredicateDescr(final String fieldName,
- // final String declaration) {
- // this.fieldName = fieldName;
- // this.declaration = declaration;
- // }
- //
- // public PredicateDescr(final String fieldName,
- // final String declaration,
- // final String text) {
- // this.fieldName = fieldName;
- // this.declaration = declaration;
- // this.text = text;
- // }
public PredicateDescr(final Object text) {
this.content = text;
}
@@ -49,10 +34,6 @@
public PredicateDescr() {
}
- // public String getFieldName() {
- // return this.fieldName;
- // }
-
public String getClassMethodName() {
return this.classMethodName;
}
@@ -69,10 +50,6 @@
this.content = text;
}
- // public String getDeclaration() {
- // return this.declaration;
- // }
-
public void setDeclarations(final String[] declarations) {
this.declarations = declarations;
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/QualifiedIdentifierRestrictionDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/QualifiedIdentifierRestrictionDescr.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/QualifiedIdentifierRestrictionDescr.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -22,33 +22,21 @@
* field of a pattern.
* The "text" contains the content.
*/
-public class QualifiedIdentifierRestrictionDescr extends RestrictionDescr {
- /**
- *
- */
+public class QualifiedIdentifierRestrictionDescr extends EvaluatorBasedRestrictionDescr {
+
private static final long serialVersionUID = 400L;
- private String evaluator;
- private String text;
public QualifiedIdentifierRestrictionDescr(final String evaluator,
- final String text) {
- this.text = text;
- this.evaluator = evaluator;
+ final boolean isNegated,
+ final String parameterText,
+ final String text) {
+ super( evaluator,
+ isNegated,
+ parameterText );
+ this.setText( text );
}
-
- public void setText(String text) {
- this.text = text;
- }
-
- public String getEvaluator() {
- return this.evaluator;
- }
- public String getText() {
- return this.text;
- }
-
public String toString() {
- return "[QualifiedIndentifierRestr: " + this.evaluator + " " + this.text + " ]";
+ return "[QualifiedIndentifierRestr: " + super.toString() + " " + this.getText() + " ]";
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RestrictionConnectiveDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RestrictionConnectiveDescr.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/RestrictionConnectiveDescr.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -13,57 +13,74 @@
*/
public class RestrictionConnectiveDescr extends RestrictionDescr {
- private static final long serialVersionUID = 400L;
- public final static int AND = 0;
- public final static int OR = 1;
+ private static final long serialVersionUID = 400L;
- private int connective;
- private List restrictions;
+ public final static RestrictionConnectiveType AND = RestrictionConnectiveType.AND;
+ public final static RestrictionConnectiveType OR = RestrictionConnectiveType.OR;
- public RestrictionConnectiveDescr(final int connective) {
+ private RestrictionConnectiveType connective;
+ private List<RestrictionDescr> restrictions;
+
+ public RestrictionConnectiveDescr(final RestrictionConnectiveType connective) {
super();
this.connective = connective;
- this.restrictions = Collections.EMPTY_LIST;
+ this.restrictions = Collections.emptyList();
}
- public int getConnective() {
+ public RestrictionConnectiveType getConnective() {
return this.connective;
}
-
- public void addRestriction( RestrictionDescr restriction ) {
- if( this.restrictions == Collections.EMPTY_LIST ) {
- this.restrictions = new ArrayList();
+
+ public void addRestriction(RestrictionDescr restriction) {
+ if ( this.restrictions == Collections.EMPTY_LIST ) {
+ this.restrictions = new ArrayList<RestrictionDescr>();
}
this.restrictions.add( restriction );
}
-
- public void addOrMerge( RestrictionDescr restriction ) {
- if(( restriction instanceof RestrictionConnectiveDescr ) &&
- ((RestrictionConnectiveDescr)restriction).connective == this.connective ) {
- if( this.restrictions == Collections.EMPTY_LIST ) {
- this.restrictions = new ArrayList();
+
+ public void addOrMerge(RestrictionDescr restriction) {
+ if ( (restriction instanceof RestrictionConnectiveDescr) && ((RestrictionConnectiveDescr) restriction).connective == this.connective ) {
+ if ( this.restrictions == Collections.EMPTY_LIST ) {
+ this.restrictions = new ArrayList<RestrictionDescr>();
}
- this.restrictions.addAll( ((RestrictionConnectiveDescr)restriction).getRestrictions() );
+ this.restrictions.addAll( ((RestrictionConnectiveDescr) restriction).getRestrictions() );
} else {
this.addRestriction( restriction );
}
}
-
- public List getRestrictions() {
+
+ public List<RestrictionDescr> getRestrictions() {
return this.restrictions;
}
-
+
public String toString() {
- final String connectiveStr = this.connective == OR ? " || " : " && ";
final StringBuffer buf = new StringBuffer();
buf.append( "( " );
- for( Iterator it = this.restrictions.iterator(); it.hasNext(); ) {
+ for ( Iterator it = this.restrictions.iterator(); it.hasNext(); ) {
buf.append( it.next().toString() );
- if( it.hasNext() ) {
- buf.append( connectiveStr );
+ if ( it.hasNext() ) {
+ buf.append( this.connective.toString() );
}
}
buf.append( " )" );
return buf.toString();
}
+
+ /**
+ * The connective types that can be used for a restriction
+ *
+ * @author etirelli
+ */
+ public static enum RestrictionConnectiveType {
+ AND {
+ public String toString() {
+ return "&&";
+ }
+ },
+ OR {
+ public String toString() {
+ return "||";
+ }
+ };
+ }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ReturnValueRestrictionDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ReturnValueRestrictionDescr.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/ReturnValueRestrictionDescr.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,24 +16,42 @@
* limitations under the License.
*/
-public class ReturnValueRestrictionDescr extends RestrictionDescr {
- /**
- *
- */
+public class ReturnValueRestrictionDescr extends EvaluatorBasedRestrictionDescr {
+
private static final long serialVersionUID = 400L;
- private String evaluator;
private Object content;
private String[] declarations;
-
private String classMethodName;
- public ReturnValueRestrictionDescr(final String evaluator) {
- this.evaluator = evaluator;
+ public ReturnValueRestrictionDescr(final String evaluator ) {
+ super( evaluator,
+ false,
+ null );
}
+ public ReturnValueRestrictionDescr(final String evaluator,
+ final Object content ) {
+ super( evaluator,
+ false,
+ null );
+ this.content = content;
+ }
+
+ public ReturnValueRestrictionDescr(final String evaluator,
+ final boolean isNegated,
+ final String parameterText ) {
+ super( evaluator,
+ isNegated,
+ parameterText );
+ }
+
public ReturnValueRestrictionDescr(final String evaluator,
+ final boolean isNegated,
+ final String parameterText,
final Object content) {
- this.evaluator = evaluator;
+ super( evaluator,
+ isNegated,
+ parameterText );
this.content = content;
}
@@ -45,10 +63,6 @@
this.classMethodName = classMethodName;
}
- public String getEvaluator() {
- return this.evaluator;
- }
-
public Object getContent() {
return this.content;
}
@@ -66,6 +80,6 @@
}
public String toString() {
- return "[ReturnValue: " + this.evaluator + " " + this.content + "]";
+ return "[ReturnValue: " + super.toString() + " " + this.content + "]";
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/VariableRestrictionDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/VariableRestrictionDescr.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/lang/descr/VariableRestrictionDescr.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,29 +16,34 @@
* limitations under the License.
*/
-public class VariableRestrictionDescr extends RestrictionDescr {
- /**
- *
- */
+public class VariableRestrictionDescr extends EvaluatorBasedRestrictionDescr {
+
private static final long serialVersionUID = 400L;
- private String evaluator;
- private String declarationIdentifier;
public VariableRestrictionDescr(final String evaluator,
- final String identifier) {
- this.declarationIdentifier = identifier;
- this.evaluator = evaluator;
+ final String identifier ) {
+ super( evaluator,
+ false,
+ null );
+ this.setText( identifier );
}
- public String getEvaluator() {
- return this.evaluator;
+ public VariableRestrictionDescr(final String evaluator,
+ final boolean isNegated,
+ final String parameterText,
+ final String identifier ) {
+ super( evaluator,
+ isNegated,
+ parameterText );
+ this.setText( identifier );
}
public String getIdentifier() {
- return this.declarationIdentifier;
+ return this.getText();
}
public String toString() {
- return "[VariableRestriction: " + evaluator + " " + declarationIdentifier + " ]";
+ return "[VariableRestriction: " + super.toString() + " " + this.getText() + " ]";
}
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PackageBuildContext.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PackageBuildContext.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PackageBuildContext.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -17,27 +17,16 @@
package org.drools.rule.builder;
import java.util.ArrayList;
-import java.util.Calendar;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Stack;
-import org.drools.base.evaluators.DateFactory;
import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectConfiguration;
import org.drools.compiler.DialectRegistry;
import org.drools.compiler.PackageBuilderConfiguration;
-import org.drools.lang.descr.AttributeDescr;
import org.drools.lang.descr.BaseDescr;
-import org.drools.lang.descr.QueryDescr;
-import org.drools.lang.descr.RuleDescr;
import org.drools.rule.Dialectable;
import org.drools.rule.Package;
-import org.drools.rule.Query;
-import org.drools.rule.Rule;
-import org.drools.spi.DeclarationScopeResolver;
/**
* A context for the current build
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/PatternBuilder.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -25,7 +25,7 @@
import org.drools.base.ClassObjectType;
import org.drools.base.FieldFactory;
import org.drools.base.ValueType;
-import org.drools.base.evaluators.Operator;
+import org.drools.base.evaluators.EvaluatorDefinition;
import org.drools.compiler.Dialect;
import org.drools.compiler.DescrBuildError;
import org.drools.facttemplates.FactTemplate;
@@ -107,9 +107,9 @@
if ( patternDescr.getObjectType() == null || patternDescr.getObjectType().equals( "" ) ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- patternDescr,
- null,
- "ObjectType not correctly defined" ) );
+ patternDescr,
+ null,
+ "ObjectType not correctly defined" ) );
return null;
}
@@ -122,12 +122,14 @@
} else {
try {
final Class userProvidedClass = context.getDialect().getTypeResolver().resolveType( patternDescr.getObjectType() );
- objectType = new ClassObjectType( userProvidedClass );
+ final boolean isEvent = context.getPkg().isEvent( userProvidedClass );
+ objectType = new ClassObjectType( userProvidedClass,
+ isEvent );
} catch ( final ClassNotFoundException e ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- patternDescr,
- null,
- "Unable to resolve ObjectType '" + patternDescr.getObjectType() + "'" ) );
+ patternDescr,
+ null,
+ "Unable to resolve ObjectType '" + patternDescr.getObjectType() + "'" ) );
return null;
}
}
@@ -138,16 +140,16 @@
if ( context.getDeclarationResolver().isDuplicated( patternDescr.getIdentifier() ) ) {
// This declaration already exists, so throw an Exception
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- patternDescr,
- null,
- "Duplicate declaration for variable '" + patternDescr.getIdentifier() + "' in the rule '" + context.getRule().getName() + "'" ) );
+ patternDescr,
+ null,
+ "Duplicate declaration for variable '" + patternDescr.getIdentifier() + "' in the rule '" + context.getRule().getName() + "'" ) );
}
pattern = new Pattern( context.getNextPatternId(),
0, // offset is 0 by default
objectType,
patternDescr.getIdentifier(),
- patternDescr.isInternalFact());
+ patternDescr.isInternalFact() );
} else {
pattern = new Pattern( context.getNextPatternId(),
0, // offset is 0 by default
@@ -228,9 +230,9 @@
}
} else {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- (BaseDescr) constraint,
- null,
- "This is a bug: unable to build constraint descriptor: '" + constraint + "' in rule '" + context.getRule().getName() + "'" ) );
+ (BaseDescr) constraint,
+ null,
+ "This is a bug: unable to build constraint descriptor: '" + constraint + "' in rule '" + context.getRule().getName() + "'" ) );
}
}
@@ -274,7 +276,7 @@
fieldName,
false );
if ( extractor == null ) {
- if( fieldConstraintDescr.getFieldName().startsWith( "this." ) ) {
+ if ( fieldConstraintDescr.getFieldName().startsWith( "this." ) ) {
// it may still be MVEL special syntax, like map key syntax, so try eval
rewriteToEval( context,
pattern,
@@ -285,9 +287,9 @@
return;
} else {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- fieldConstraintDescr,
- null,
- "Unable to create Field Extractor for '" + fieldName + "' of '"+pattern.getObjectType().toString()+"' in rule '"+context.getRule().getName()+"'" ) );
+ fieldConstraintDescr,
+ null,
+ "Unable to create Field Extractor for '" + fieldName + "' of '" + pattern.getObjectType().toString() + "' in rule '" + context.getRule().getName() + "'" ) );
return;
}
}
@@ -318,9 +320,9 @@
(ReturnValueRestriction) restriction );
} else {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- fieldConstraintDescr,
- null,
- "This is a bug: Unkown restriction type '" + restriction.getClass() + "' for pattern '"+pattern.getObjectType().toString()+"' in rule '"+context.getRule().getName()+"'" ) );
+ fieldConstraintDescr,
+ null,
+ "This is a bug: Unkown restriction type '" + restriction.getClass() + "' for pattern '" + pattern.getObjectType().toString() + "' in rule '" + context.getRule().getName() + "'" ) );
}
if ( container == null ) {
@@ -377,15 +379,15 @@
} else {
restrictions[index] = buildRestriction( context,
- pattern,
- extractor,
- fieldConstraintDescr,
- restrictionDescr );
- if( restrictions[index] == null ) {
+ pattern,
+ extractor,
+ fieldConstraintDescr,
+ restrictionDescr );
+ if ( restrictions[index] == null ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- fieldConstraintDescr,
- null,
- "Unable to create restriction '" + restrictionDescr.toString() + "' for field '"+ fieldConstraintDescr.getFieldName() +"' in the rule '" + context.getRule().getName() + "'" ) );
+ fieldConstraintDescr,
+ null,
+ "Unable to create restriction '" + restrictionDescr.toString() + "' for field '" + fieldConstraintDescr.getFieldName() + "' in the rule '" + context.getRule().getName() + "'" ) );
}
index++;
}
@@ -399,9 +401,10 @@
composite = new OrCompositeRestriction( restrictions );
} else {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- fieldConstraintDescr,
- null,
- "This is a bug: Impossible to create a composite restriction for connective: " + top.getConnective()+ "' for field '"+ fieldConstraintDescr.getFieldName() +"' in the rule '" + context.getRule().getName() + "'" ) );
+ fieldConstraintDescr,
+ null,
+ "This is a bug: Impossible to create a composite restriction for connective: " + top.getConnective() + "' for field '" + fieldConstraintDescr.getFieldName() + "' in the rule '"
+ + context.getRule().getName() + "'" ) );
}
return composite;
@@ -409,9 +412,9 @@
return restrictions[0];
}
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- fieldConstraintDescr,
- null,
- "This is a bug: trying to create a restriction for an empty restriction list for field '"+ fieldConstraintDescr.getFieldName() +"' in the rule '" + context.getRule().getName() + "'" ) );
+ fieldConstraintDescr,
+ null,
+ "This is a bug: trying to create a restriction for an empty restriction list for field '" + fieldConstraintDescr.getFieldName() + "' in the rule '" + context.getRule().getName() + "'" ) );
return null;
}
@@ -422,9 +425,9 @@
if ( context.getDeclarationResolver().isDuplicated( fieldBindingDescr.getIdentifier() ) ) {
// This declaration already exists, so throw an Exception
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- fieldBindingDescr,
- null,
- "Duplicate declaration for variable '" + fieldBindingDescr.getIdentifier() + "' in the rule '" + context.getRule().getName() + "'" ) );
+ fieldBindingDescr,
+ null,
+ "Duplicate declaration for variable '" + fieldBindingDescr.getIdentifier() + "' in the rule '" + context.getRule().getName() + "'" ) );
return;
}
@@ -597,9 +600,9 @@
final VariableRestrictionDescr variableRestrictionDescr) {
if ( variableRestrictionDescr.getIdentifier() == null || variableRestrictionDescr.getIdentifier().equals( "" ) ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- variableRestrictionDescr,
- null,
- "Identifier not defined for binding field '" + fieldConstraintDescr.getFieldName() + "'" ) );
+ variableRestrictionDescr,
+ null,
+ "Identifier not defined for binding field '" + fieldConstraintDescr.getFieldName() + "'" ) );
return null;
}
@@ -615,9 +618,9 @@
declaration = implicit;
} else {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- variableRestrictionDescr,
- null,
- "Unable to return Declaration for identifier '" + variableRestrictionDescr.getIdentifier() + "'" ) );
+ variableRestrictionDescr,
+ null,
+ "Unable to return Declaration for identifier '" + variableRestrictionDescr.getIdentifier() + "'" ) );
return null;
}
}
@@ -625,7 +628,9 @@
final Evaluator evaluator = getEvaluator( context,
variableRestrictionDescr,
extractor.getValueType(),
- variableRestrictionDescr.getEvaluator() );
+ variableRestrictionDescr.getEvaluator(),
+ variableRestrictionDescr.isNegated(),
+ variableRestrictionDescr.getParameterText() );
if ( evaluator == null ) {
return null;
}
@@ -645,9 +650,9 @@
extractor.getValueType() );
} catch ( final Exception e ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- literalRestrictionDescr,
- e,
- "Unable to create a Field value of type '" + extractor.getValueType() + "' and value '" + literalRestrictionDescr.getText() + "'" ) );
+ literalRestrictionDescr,
+ e,
+ "Unable to create a Field value of type '" + extractor.getValueType() + "' and value '" + literalRestrictionDescr.getText() + "'" ) );
}
if ( field == null ) {
@@ -657,7 +662,9 @@
final Evaluator evaluator = getEvaluator( context,
literalRestrictionDescr,
extractor.getValueType(),
- literalRestrictionDescr.getEvaluator() );
+ literalRestrictionDescr.getEvaluator(),
+ literalRestrictionDescr.isNegated(),
+ literalRestrictionDescr.getParameterText() );
if ( evaluator == null ) {
return null;
}
@@ -692,19 +699,21 @@
} else {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- qiRestrictionDescr,
- "",
- "Not possible to directly access the property '" + parts[1] + "' of declaration '" + parts[0] + "' since it is not a pattern" ) );
+ qiRestrictionDescr,
+ "",
+ "Not possible to directly access the property '" + parts[1] + "' of declaration '" + parts[0] + "' since it is not a pattern" ) );
return null;
}
}
}
-
- if( implicit != null ) {
+
+ if ( implicit != null ) {
final Evaluator evaluator = getEvaluator( context,
qiRestrictionDescr,
extractor.getValueType(),
- qiRestrictionDescr.getEvaluator() );
+ qiRestrictionDescr.getEvaluator(),
+ qiRestrictionDescr.isNegated(),
+ qiRestrictionDescr.getParameterText() );
if ( evaluator == null ) {
return null;
}
@@ -727,9 +736,9 @@
// nothing to do, as it is not a class name with static field
} catch ( final Exception e ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- qiRestrictionDescr,
- e,
- "Unable to create a Field value of type '" + extractor.getValueType() + "' and value '" + qiRestrictionDescr.getText() + "'" ) );
+ qiRestrictionDescr,
+ e,
+ "Unable to create a Field value of type '" + extractor.getValueType() + "' and value '" + qiRestrictionDescr.getText() + "'" ) );
}
if ( field == null ) {
@@ -739,7 +748,9 @@
final Evaluator evaluator = getEvaluator( context,
qiRestrictionDescr,
extractor.getValueType(),
- qiRestrictionDescr.getEvaluator() );
+ qiRestrictionDescr.getEvaluator(),
+ qiRestrictionDescr.isNegated(),
+ qiRestrictionDescr.getParameterText() );
if ( evaluator == null ) {
return null;
}
@@ -779,7 +790,9 @@
final Evaluator evaluator = getEvaluator( context,
returnValueRestrictionDescr,
extractor.getValueType(),
- returnValueRestrictionDescr.getEvaluator() );
+ returnValueRestrictionDescr.getEvaluator(),
+ returnValueRestrictionDescr.isNegated(),
+ returnValueRestrictionDescr.getParameterText() );
if ( evaluator == null ) {
return null;
}
@@ -826,9 +839,9 @@
} catch ( final RuntimeDroolsException e ) {
if ( reportError ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- descr,
- e,
- "Unable to create Field Extractor for '" + fieldName + "'" ) );
+ descr,
+ e,
+ "Unable to create Field Extractor for '" + fieldName + "'" ) );
}
}
}
@@ -839,15 +852,28 @@
private Evaluator getEvaluator(final RuleBuildContext context,
final BaseDescr descr,
final ValueType valueType,
- final String evaluatorString) {
+ final String evaluatorString,
+ final boolean isNegated,
+ final String parameterText) {
- final Evaluator evaluator = valueType.getEvaluator( Operator.determineOperator( evaluatorString ) );
+ final EvaluatorDefinition def = context.getConfiguration().getEvaluatorRegistry().getEvaluatorDefinition( evaluatorString );
+ if ( def == null ) {
+ context.getErrors().add( new DescrBuildError( context.getParentDescr(),
+ descr,
+ null,
+ "Unable to determine the Evaluator for ID '" + evaluatorString + "'" ) );
+ }
+ final Evaluator evaluator = def.getEvaluator( valueType,
+ evaluatorString,
+ isNegated,
+ parameterText );
+
if ( evaluator == null ) {
context.getErrors().add( new DescrBuildError( context.getParentDescr(),
- descr,
- null,
- "Unable to determine the Evaluator for '" + valueType + "' and '" + evaluatorString + "'" ) );
+ descr,
+ null,
+ "Evaluator '" + (isNegated ? "not " : "") + evaluatorString + "' does not support type '" + valueType ) );
}
return evaluator;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/QueryBuilder.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -33,7 +33,8 @@
ValueType.STRING_TYPE );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
- ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL ),
+ context.getConfiguration().getEvaluatorRegistry().getEvaluator( ValueType.STRING_TYPE,
+ Operator.EQUAL ),
field );
// adds appropriate constraint to the pattern
pattern.addConstraint( constraint );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -24,9 +24,7 @@
import java.util.Map;
import java.util.Stack;
-import org.drools.base.evaluators.DateFactory;
import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectConfiguration;
import org.drools.compiler.DialectRegistry;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.AttributeDescr;
@@ -36,6 +34,7 @@
import org.drools.rule.Query;
import org.drools.rule.Rule;
import org.drools.spi.DeclarationScopeResolver;
+import org.drools.util.DateUtils;
/**
* A context for the current build
@@ -191,11 +190,11 @@
}
} else if ( name.equals( "date-effective" ) ) {
final Calendar cal = Calendar.getInstance();
- cal.setTime( DateFactory.parseDate( attributeDescr.getValue() ) );
+ cal.setTime( DateUtils.parseDate( attributeDescr.getValue() ) );
rule.setDateEffective( cal );
} else if ( name.equals( "date-expires" ) ) {
final Calendar cal = Calendar.getInstance();
- cal.setTime( DateFactory.parseDate( attributeDescr.getValue() ) );
+ cal.setTime( DateUtils.parseDate( attributeDescr.getValue() ) );
rule.setDateExpires( cal );
} else if ( name.equals( "dialect" ) ) {
rule.setDialect( attributeDescr.getValue() );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -48,7 +48,7 @@
pkg.getName() );
vars.put( "imports",
- pkg.getImports() );
+ pkg.getImports().keySet() );
final List staticImports = new LinkedList();
for( Iterator it = pkg.getStaticImports().iterator(); it.hasNext(); ) {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaProcessClassBuilder.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -20,6 +20,7 @@
import org.drools.lang.descr.ProcessDescr;
import org.drools.lang.descr.RuleDescr;
+import org.drools.rule.ImportDeclaration;
import org.drools.rule.builder.ProcessBuildContext;
import org.drools.rule.builder.ProcessClassBuilder;
import org.drools.rule.builder.RuleBuildContext;
@@ -48,8 +49,8 @@
final StringBuffer buffer = new StringBuffer();
buffer.append( "package " + context.getPkg().getName() + ";" + lineSeparator );
- for ( final Iterator it = context.getPkg().getImports().iterator(); it.hasNext(); ) {
- buffer.append( "import " + it.next() + ";" + lineSeparator );
+ for ( ImportDeclaration decl : context.getPkg().getImports().values() ) {
+ buffer.append( "import " + ( decl.isEvent() ? "event " : "" ) + decl.getTarget() + ";" + lineSeparator );
}
for ( final Iterator it = context.getPkg().getStaticImports().iterator(); it.hasNext(); ) {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaRuleClassBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaRuleClassBuilder.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaRuleClassBuilder.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -45,7 +45,7 @@
final StringBuffer buffer = new StringBuffer();
buffer.append( "package " + context.getPkg().getName() + ";" + lineSeparator );
- for ( final Iterator it = context.getPkg().getImports().iterator(); it.hasNext(); ) {
+ for ( final Iterator it = context.getPkg().getImports().keySet().iterator(); it.hasNext(); ) {
buffer.append( "import " + it.next() + ";" + lineSeparator );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/rules/QualifiedIdentifierRestrictionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/rules/QualifiedIdentifierRestrictionHandler.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/rules/QualifiedIdentifierRestrictionHandler.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -17,8 +17,6 @@
*/
import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.ListIterator;
import org.drools.lang.descr.FieldConstraintDescr;
import org.drools.lang.descr.LiteralRestrictionDescr;
@@ -32,7 +30,6 @@
import org.drools.xml.Handler;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
/**
* @author fmeyer
@@ -67,10 +64,16 @@
xmlPackageReader.startConfiguration( localName,
attrs );
- final String evaluator = attrs.getValue( "evaluator" );
+ String evaluator = attrs.getValue( "evaluator" );
emptyAttributeCheck( localName, "evaluator", evaluator, xmlPackageReader );
+ boolean isNegated = evaluator.startsWith( "not " );
+ if( isNegated ) {
+ evaluator = evaluator.substring( 4 );
+ }
final QualifiedIdentifierRestrictionDescr qualifiedIdentifierRestricionDescr = new QualifiedIdentifierRestrictionDescr( evaluator,
+ isNegated,
+ null,
null );
return qualifiedIdentifierRestricionDescr;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools.default.packagebuilder.conf
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools.default.packagebuilder.conf 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools.default.packagebuilder.conf 2007-12-10 18:37:22 UTC (rev 17161)
@@ -10,3 +10,10 @@
drools.accumulate.function.min = org.drools.base.accumulators.MinAccumulateFunction
drools.accumulate.function.count = org.drools.base.accumulators.CountAccumulateFunction
drools.accumulate.function.sum = org.drools.base.accumulators.SumAccumulateFunction
+
+drools.evaluator.after = org.drools.base.evaluators.AfterEvaluatorDefinition
+drools.evaluator.equality = org.drools.base.evaluators.EqualityEvaluatorsDefinition
+drools.evaluator.comparable = org.drools.base.evaluators.ComparableEvaluatorsDefinition
+drools.evaluator.set = org.drools.base.evaluators.SetEvaluatorsDefinition
+drools.evaluator.matches = org.drools.base.evaluators.MatchesEvaluatorsDefinition
+drools.evaluator.soundslike = org.drools.base.evaluators.SoundslikeEvaluatorsDefinition
Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/lang/DRL.g 2007-12-10 18:37:22 UTC (rev 17161)
@@ -223,6 +223,7 @@
statement
: a=rule_attribute { this.packageDescr.addAttribute( a ); }
| function_import_statement
+ | event_import_statement
| import_statement
| global
| function
@@ -230,6 +231,7 @@
| r=rule { this.packageDescr.addRule( $r.rule ); }
| q=query { this.packageDescr.addRule( $q.query ); }
;
+
package_statement returns [String packageName]
@init{
$packageName = null;
@@ -273,7 +275,22 @@
import_name[importDecl] opt_semicolon
;
+event_import_statement
+ @init {
+ ImportDescr importDecl = null;
+ }
+ : IMPORT EVENT
+ {
+ importDecl = factory.createEventImport( );
+ importDecl.setStartCharacter( ((CommonToken)$IMPORT).getStartIndex() );
+ if (packageDescr != null) {
+ packageDescr.addImport( importDecl );
+ }
+ }
+ import_name[importDecl] opt_semicolon
+ ;
+
import_name[ImportDescr importDecl] returns [String name]
@init {
$name = null;
@@ -1337,15 +1354,13 @@
}
}
(
- ( options {backtrack=true;}
- : or_restr_connective[top]
+ or_restr_connective[top]
{
// we must add now as we didn't before
if( $ID != null) {
$base.addDescr( fc );
}
}
- )
|
'->' predicate[$base]
)?
@@ -1368,10 +1383,8 @@
$base.addDescr( fc );
}
}
- ( options {backtrack=true;}
- : or_restr_connective[top]
+ or_restr_connective[top]
)
- )
;
catch[ NoViableAltException nvae ] {
if( input.LT(1) != null ) {
@@ -1394,7 +1407,7 @@
RestrictionConnectiveDescr or = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.OR);
}
:
- and_restr_connective[or]
+ and_restr_connective[or]
(
options {backtrack=true;}
: DOUBLE_PIPE
@@ -1417,7 +1430,7 @@
RestrictionConnectiveDescr and = new RestrictionConnectiveDescr(RestrictionConnectiveDescr.AND);
}
:
- constraint_expression[and]
+ constraint_expression[and]
( options {backtrack=true;}
: t=DOUBLE_AMPER
{
@@ -1437,12 +1450,12 @@
constraint_expression[RestrictionConnectiveDescr base]
:
( compound_operator[$base]
- | simple_operator[$base]
+ | simple_operator[$base]
| LEFT_PAREN
{
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_OPERATOR);
}
- or_restr_connective[$base]
+ or_restr_connective[$base]
RIGHT_PAREN
)
;
@@ -1450,6 +1463,8 @@
simple_operator[RestrictionConnectiveDescr base]
@init {
String op = null;
+ String paramText = null;
+ boolean isNegated = false;
}
:
( t='=='
@@ -1458,29 +1473,31 @@
| t='<'
| t='<='
| t='!='
- | t=CONTAINS
- | n=NOT t=CONTAINS
- | t=EXCLUDES
- | t=MATCHES
- | t=SOUNDSLIKE
- | n=NOT t=MATCHES
- | t=MEMBEROF
- | n=NOT t=MEMBEROF
+ | t=CONTAINS
+ | n=NOT t=CONTAINS
+ | t=EXCLUDES
+ | t=MATCHES
+ | t=SOUNDSLIKE
+ | n=NOT t=MATCHES
+ | t=MEMBEROF
+ | n=NOT t=MEMBEROF
+ | TILDE t=ID param=square_chunk?
+ | n=NOT TILDE t=ID param=square_chunk?
)
{
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_ARGUMENT);
location.setProperty(Location.LOCATION_PROPERTY_OPERATOR, $t.text);
- if( $n != null ) {
- op = "not "+$t.text;
- } else {
- op = $t.text;
- }
+ op = $t.text;
+ isNegated = $n != null;
+ if( param != null ) {
+ paramText = safeSubstring( $param.text, 1, $param.text.length()-1 );
+ }
}
- rd=expression_value[$base, op]
+ rd=expression_value[$base, op, isNegated, paramText]
;
finally {
if ( $rd.rd == null && op != null ) {
- $base.addRestriction( new LiteralRestrictionDescr(op, null) );
+ $base.addRestriction( new LiteralRestrictionDescr(op, false, null) );
}
}
@@ -1507,15 +1524,15 @@
location.setProperty(Location.LOCATION_PROPERTY_OPERATOR, "in");
}
)
- LEFT_PAREN rd=expression_value[group, op]
- ( COMMA rd=expression_value[group, op] )*
+ LEFT_PAREN rd=expression_value[group, op, false, null]
+ ( COMMA rd=expression_value[group, op, false, null] )*
RIGHT_PAREN
{
location.setType(Location.LOCATION_LHS_INSIDE_CONDITION_END);
}
;
-expression_value[RestrictionConnectiveDescr base, String op] returns [RestrictionDescr rd]
+expression_value[RestrictionConnectiveDescr base, String op, boolean isNegated, String paramText] returns [RestrictionDescr rd]
@init {
$rd = null;
}
@@ -1523,18 +1540,18 @@
( ap=accessor_path
{
if( $ap.text.indexOf( '.' ) > -1 || $ap.text.indexOf( '[' ) > -1) {
- $rd = new QualifiedIdentifierRestrictionDescr($op, $ap.text);
+ $rd = new QualifiedIdentifierRestrictionDescr($op, $isNegated, $paramText, $ap.text);
} else {
- $rd = new VariableRestrictionDescr($op, $ap.text);
+ $rd = new VariableRestrictionDescr($op, $isNegated, $paramText, $ap.text);
}
}
| lc=literal_constraint
{
- $rd = new LiteralRestrictionDescr($op, $lc.text, $lc.type );
+ $rd = new LiteralRestrictionDescr($op, $isNegated, $paramText, $lc.text, $lc.type );
}
| rvc=paren_chunk
{
- $rd = new ReturnValueRestrictionDescr($op, safeSubstring( $rvc.text, 1, $rvc.text.length()-1) );
+ $rd = new ReturnValueRestrictionDescr($op, $isNegated, $paramText, safeSubstring( $rvc.text, 1, $rvc.text.length()-1) );
}
)
{
@@ -1664,6 +1681,7 @@
| FUNCTION
| GLOBAL
| IMPORT
+ | EVENT
| RULE
| QUERY
| TEMPLATE
@@ -1677,12 +1695,11 @@
| ACTION
| REVERSE
| RESULT
- | CONTAINS
- | EXCLUDES
+ | CONTAINS
+ | EXCLUDES
| MEMBEROF
| MATCHES
| SOUNDSLIKE
-// | NULL
| WHEN
| THEN
| END
@@ -1753,6 +1770,8 @@
FUNCTION : 'function';
+EVENT : 'event';
+
GLOBAL : 'global';
RULE : 'rule';
@@ -1817,17 +1836,17 @@
AND : 'and';
CONTAINS
- : 'contains';
-
+ : 'contains';
+
EXCLUDES
- : 'excludes';
-
+ : 'excludes';
+
MEMBEROF
- : 'memberOf';
+ : 'memberOf';
-MATCHES : 'matches';
+MATCHES : 'matches';
-SOUNDSLIKE : 'soundslike';
+SOUNDSLIKE : 'soundslike';
IN : 'in';
@@ -1889,6 +1908,8 @@
: '||'
;
+TILDE : '~';
+
SH_STYLE_SINGLE_LINE_COMMENT
: '#' ( options{greedy=false;} : .)* EOL /* ('\r')? '\n' */
{ $channel=HIDDEN; setText("//"+getText().substring(1));}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/OrderEvent.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/OrderEvent.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/OrderEvent.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/OrderEvent.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Oct 17, 2007
+ */
+package org.drools;
+
+/**
+ * A simple order event POJO
+ *
+ * @author etirelli
+ */
+public class OrderEvent {
+
+ private String id;
+ private String customer;
+ private double total;
+
+ public OrderEvent(String id,
+ String customer,
+ double total) {
+ super();
+ this.id = id;
+ this.customer = customer;
+ this.total = total;
+ }
+
+ public String getCustomer() {
+ return customer;
+ }
+
+ public void setCustomer(String customer) {
+ this.customer = customer;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public double getTotal() {
+ return total;
+ }
+
+ public void setTotal(double total) {
+ this.total = total;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/StockTick.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/StockTick.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/StockTick.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/StockTick.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,52 @@
+package org.drools;
+
+public class StockTick {
+ private long seq;
+ private String company;
+ private double price;
+ private long time;
+
+ public StockTick() {
+ }
+
+ public StockTick(long seq,
+ String company,
+ double price,
+ long time) {
+ super();
+ this.seq = seq;
+ this.company = company;
+ this.price = price;
+ this.time = time;
+ }
+
+ public String getCompany() {
+ return company;
+ }
+ public void setCompany(String company) {
+ this.company = company;
+ }
+ public double getPrice() {
+ return price;
+ }
+ public void setPrice(double price) {
+ this.price = price;
+ }
+ public long getSeq() {
+ return seq;
+ }
+ public void setSeq(long seq) {
+ this.seq = seq;
+ }
+ public long getTime() {
+ return time;
+ }
+ public void setTime(long time) {
+ this.time = time;
+ }
+
+ public String toString() {
+ return "StockTick( "+this.seq+" : " +this.company +" : "+ this.price +" )";
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,268 @@
+package org.drools.integrationtests;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.drools.ClockType;
+import org.drools.OrderEvent;
+import org.drools.RuleBase;
+import org.drools.RuleBaseConfiguration;
+import org.drools.RuleBaseFactory;
+import org.drools.TemporalSession;
+import org.drools.StockTick;
+import org.drools.WorkingMemory;
+import org.drools.common.EventFactHandle;
+import org.drools.common.InternalFactHandle;
+import org.drools.compiler.DrlParser;
+import org.drools.compiler.DroolsParserException;
+import org.drools.compiler.PackageBuilder;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.rule.Package;
+import org.drools.temporal.SessionPseudoClock;
+
+public class CepEspTest extends TestCase {
+ protected RuleBase getRuleBase() throws Exception {
+
+ return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+ null );
+ }
+
+ protected RuleBase getRuleBase(final RuleBaseConfiguration config) throws Exception {
+
+ return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+ config );
+ }
+
+ private RuleBase loadRuleBase(final Reader reader) throws IOException,
+ DroolsParserException,
+ Exception {
+ final DrlParser parser = new DrlParser();
+ final PackageDescr packageDescr = parser.parse( reader );
+ if ( parser.hasErrors() ) {
+ System.out.println( parser.getErrors() );
+ Assert.fail( "Error messages in parser, need to sort this our (or else collect error messages)" );
+ }
+ // pre build the package
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackage( packageDescr );
+ final Package pkg = builder.getPackage();
+
+ // add the package to a rulebase
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ // load up the rulebase
+ return ruleBase;
+ }
+
+ public void testEventAssertion() throws Exception {
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_SimpleEventAssertion.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+
+ final WorkingMemory wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
+ final List results = new ArrayList();
+
+ wm.setGlobal( "results",
+ results );
+
+ StockTick tick1 = new StockTick( 1,
+ "DROO",
+ 50,
+ System.currentTimeMillis() );
+ StockTick tick2 = new StockTick( 2,
+ "ACME",
+ 10,
+ System.currentTimeMillis() );
+ StockTick tick3 = new StockTick( 3,
+ "ACME",
+ 10,
+ System.currentTimeMillis() );
+ StockTick tick4 = new StockTick( 4,
+ "DROO",
+ 50,
+ System.currentTimeMillis() );
+
+ InternalFactHandle handle1 = (InternalFactHandle) wm.insert( tick1 );
+ InternalFactHandle handle2 = (InternalFactHandle) wm.insert( tick2 );
+ InternalFactHandle handle3 = (InternalFactHandle) wm.insert( tick3 );
+ InternalFactHandle handle4 = (InternalFactHandle) wm.insert( tick4 );
+
+ assertNotNull( handle1 );
+ assertNotNull( handle2 );
+ assertNotNull( handle3 );
+ assertNotNull( handle4 );
+
+ assertTrue( handle1.isEvent() );
+ assertTrue( handle2.isEvent() );
+ assertTrue( handle3.isEvent() );
+ assertTrue( handle4.isEvent() );
+
+ wm.fireAllRules();
+
+ assertEquals( 2,
+ results.size() );
+
+ }
+
+ public void testTimeRelationalOperators() throws Exception {
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_TimeRelationalOperators.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+
+ final TemporalSession<SessionPseudoClock> wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
+ final SessionPseudoClock clock = wm.getSessionClock();
+
+ clock.setStartupTime( 1000 );
+ final List results = new ArrayList();
+
+ wm.setGlobal( "results",
+ results );
+
+ StockTick tick1 = new StockTick( 1,
+ "DROO",
+ 50,
+ System.currentTimeMillis() );
+ StockTick tick2 = new StockTick( 2,
+ "ACME",
+ 10,
+ System.currentTimeMillis() );
+ StockTick tick3 = new StockTick( 3,
+ "ACME",
+ 10,
+ System.currentTimeMillis() );
+ StockTick tick4 = new StockTick( 4,
+ "DROO",
+ 50,
+ System.currentTimeMillis() );
+
+ InternalFactHandle handle1 = (InternalFactHandle) wm.insert( tick1 );
+ clock.advanceTime( 4 );
+ InternalFactHandle handle2 = (InternalFactHandle) wm.insert( tick2 );
+ clock.advanceTime( 4 );
+ InternalFactHandle handle3 = (InternalFactHandle) wm.insert( tick3 );
+ clock.advanceTime( 4 );
+ InternalFactHandle handle4 = (InternalFactHandle) wm.insert( tick4 );
+
+ assertNotNull( handle1 );
+ assertNotNull( handle2 );
+ assertNotNull( handle3 );
+ assertNotNull( handle4 );
+
+ assertTrue( handle1.isEvent() );
+ assertTrue( handle2.isEvent() );
+ assertTrue( handle3.isEvent() );
+ assertTrue( handle4.isEvent() );
+
+ wm.fireAllRules();
+
+ assertEquals( 1,
+ results.size() );
+ assertEquals( tick3,
+ results.get( 0 ) );
+
+ }
+
+ public void testSimpleTimeWindow() throws Exception {
+ // read in the source
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CEP_SimpleTimeWindow.drl" ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+
+ final TemporalSession<SessionPseudoClock> wm = ruleBase.newTemporalSession( ClockType.PSEUDO_CLOCK );
+ final List results = new ArrayList();
+
+ wm.setGlobal( "results",
+ results );
+
+ // how to initialize the clock?
+ // how to configure the clock?
+ SessionPseudoClock clock = wm.getSessionClock();
+
+ clock.advanceTime( 10000 ); // 10 seconds
+ EventFactHandle handle1 = (EventFactHandle) wm.insert( new OrderEvent( "1",
+ "customer A",
+ 70 ) );
+ assertEquals( 10000,
+ handle1.getStartTimestamp() );
+ assertEquals( 0,
+ handle1.getDuration() );
+
+ wm.fireAllRules();
+
+ clock.advanceTime( 10000 ); // 10 seconds
+ EventFactHandle handle2 = (EventFactHandle) wm.insert( new OrderEvent( "2",
+ "customer A",
+ 60 ) );
+ assertEquals( 20000,
+ handle2.getStartTimestamp() );
+ assertEquals( 0,
+ handle2.getDuration() );
+
+ wm.fireAllRules();
+
+ clock.advanceTime( 10000 ); // 10 seconds
+ EventFactHandle handle3 = (EventFactHandle) wm.insert( new OrderEvent( "3",
+ "customer A",
+ 50 ) );
+ assertEquals( 30000,
+ handle3.getStartTimestamp() );
+ assertEquals( 0,
+ handle3.getDuration() );
+
+ wm.fireAllRules();
+
+ clock.advanceTime( 10000 ); // 10 seconds
+ EventFactHandle handle4 = (EventFactHandle) wm.insert( new OrderEvent( "4",
+ "customer A",
+ 30 ) );
+ assertEquals( 40000,
+ handle4.getStartTimestamp() );
+ assertEquals( 0,
+ handle4.getDuration() );
+
+ wm.fireAllRules();
+
+ clock.advanceTime( 10000 ); // 10 seconds
+ EventFactHandle handle5 = (EventFactHandle) wm.insert( new OrderEvent( "5",
+ "customer A",
+ 70 ) );
+ assertEquals( 50000,
+ handle5.getStartTimestamp() );
+ assertEquals( 0,
+ handle5.getDuration() );
+
+ wm.fireAllRules();
+
+ clock.advanceTime( 10000 ); // 10 seconds
+ EventFactHandle handle6 = (EventFactHandle) wm.insert( new OrderEvent( "6",
+ "customer A",
+ 80 ) );
+ assertEquals( 60000,
+ handle6.getStartTimestamp() );
+ assertEquals( 0,
+ handle6.getDuration() );
+
+ wm.fireAllRules();
+
+ }
+
+ // public void testTransactionCorrelation() throws Exception {
+ // // read in the source
+ // final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_TransactionCorrelation.drl" ) );
+ // final RuleBase ruleBase = loadRuleBase( reader );
+ //
+ // final WorkingMemory wm = ruleBase.newStatefulSession();
+ // final List results = new ArrayList();
+ //
+ // wm.setGlobal( "results",
+ // results );
+ //
+ //
+ // }
+
+}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MVELTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -19,13 +19,13 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
-import org.drools.base.evaluators.DateFactory;
import org.drools.common.DroolsObjectInputStream;
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
import org.drools.lang.descr.PackageDescr;
import org.drools.rule.Package;
+import org.drools.util.DateUtils;
import org.mvel.MVEL;
public class MVELTest extends TestCase {
@@ -67,7 +67,7 @@
assertEquals( "hello world", list2.get(0));
- Date dt = DateFactory.parseDate( "10-Jul-1974" );
+ Date dt = DateUtils.parseDate( "10-Jul-1974" );
assertEquals(dt, c.getUsedBy());
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator)
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/AbstractEventListener.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/AbstractEventListener.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/AbstractEventListener.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,32 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator;
-
-import org.drools.WorkingMemory;
-
-
-/**
- * @author Matthias Groch
- *
- */
-public abstract class AbstractEventListener {
-
- WorkingMemory wm;
-
- /**
- * @param wm
- */
- public AbstractEventListener(WorkingMemory wm) {
- this.wm = wm;
- }
-
- public void addEventToWM (Event ev){
- wm.insert(ev);
- wm.fireAllRules();
- }
-
- // send generated event and execute corresponding actions
- public abstract void generatedEventSent(Event e);
-
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/AbstractEventListener.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/AbstractEventListener.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/AbstractEventListener.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/AbstractEventListener.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator;
+
+import org.drools.WorkingMemory;
+
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public abstract class AbstractEventListener {
+
+ WorkingMemory wm;
+
+ /**
+ * @param wm
+ */
+ public AbstractEventListener(WorkingMemory wm) {
+ this.wm = wm;
+ }
+
+ public void addEventToWM (Event ev){
+ wm.insert(ev);
+ wm.fireAllRules();
+ }
+
+ // send generated event and execute corresponding actions
+ public abstract void generatedEventSent(Event e);
+
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/Event.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/Event.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/Event.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,163 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Matthias Groch
- *
- */
-public class Event implements Cloneable{
-
- public enum EventType {CUSTOM, PRODUCTION, STATUSCHANGED, HEARTBEAT, FAILURE};
-
- private EventType eventId;
- private String parentId;
- private Map<String,String> parameters;
- private long startTime, endTime;
-
- public Event() {
- this.parameters = new HashMap <String, String>();
- }
-
- /**
- * @param eventId The name of the event.
- * @param parentId The id of the corresponding site, resource, ...
- */
- public Event(EventType eventId, String parentId) {
- this();
- this.eventId = eventId;
- this.parentId = parentId;
- }
-
- /**
- * @param eventId The name of the event.
- * @param parentId The id of the corresponding site, resource, ...
- * @param start The start instance of the event.
- * @param end The end instance of the event.
- */
- public Event(EventType eventId, String parentId, long start, long end) {
- this(eventId, parentId);
- this.startTime = start;
- this.endTime = end;
- }
-
- /**
- * @return the event id
- */
- public EventType getEventId() {
- return this.eventId;
- }
-
- /**
- * @param eventId the event name to set
- */
- public void setEventType(EventType eventId) {
- this.eventId = eventId;
- }
-
- /**
- * @return the endTime
- */
- public long getEndTime() {
- return endTime;
- }
-
- /**
- * @param endTime the endTime to set
- *//*
- public void setEndTime(Calendar endTime) {
- this.endTime = (Calendar)endTime.clone();
- }*/
-
- /**
- * @return the startTime
- */
- public long getStartTime() {
- return startTime;
- }
-
- /**
- * @param startTime the startTime to set
- *//*
- public void setStartTime(Calendar startTime) {
- this.startTime = (Calendar)startTime.clone();
- }*/
-
- /**
- * @param startTime the startTime to set
- * @param endTime the endTime to set
- */
- public void setTimes(long startTime, long endTime) {
- this.startTime = startTime;
- this.endTime = endTime;
- }
-
- /**
- * @param startTime the startTime to set
- * @param endTime the endTime to set
- */
- // used for primitive events where start end end time are equal
- public void setTimes(long startAndEndTime) {
- this.startTime = startAndEndTime;
- this.endTime = startAndEndTime;
- }
-
- /**
- * @return the parentId
- */
- public String getParentId() {
- return parentId;
- }
-
- /**
- * @param ressourceId the ressourceId to set
- */
- public void setParentId(String parentId) {
- this.parentId = parentId;
- }
-
- /**
- * @return the parameters
- */
- public Map<String, String> getParameters() {
- return parameters;
- }
-
- /**
- * @param parameter name of the parameter
- * @return value of the specified parameter
- */
- public String getParamValue(String parameter) {
- return parameters.get(parameter);
- }
-
- /**
- * @param parameters the parameters to set
- */
- public void addParameters(Map<String, String> parameters) {
- this.parameters.putAll(parameters);
- }
-
- /**
- * @param paramName the name of the added parameter to set
- * @param paramValue the value of the added parameter to set
- */
- public void addParameter(String paramName, String paramValue) {
- this.parameters.put(paramName, paramValue);
- }
-
- public Object clone(){
- try
- {
- return super.clone();
- }
- catch ( CloneNotSupportedException e ) {
- // this shouldnt happen, since we are Cloneable
- throw new InternalError();
- }
- }
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/Event.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/Event.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/Event.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/Event.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,163 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class Event implements Cloneable{
+
+ public enum EventType {CUSTOM, PRODUCTION, STATUSCHANGED, HEARTBEAT, FAILURE};
+
+ private EventType eventId;
+ private String parentId;
+ private Map<String,String> parameters;
+ private long startTime, endTime;
+
+ public Event() {
+ this.parameters = new HashMap <String, String>();
+ }
+
+ /**
+ * @param eventId The name of the event.
+ * @param parentId The id of the corresponding site, resource, ...
+ */
+ public Event(EventType eventId, String parentId) {
+ this();
+ this.eventId = eventId;
+ this.parentId = parentId;
+ }
+
+ /**
+ * @param eventId The name of the event.
+ * @param parentId The id of the corresponding site, resource, ...
+ * @param start The start instance of the event.
+ * @param end The end instance of the event.
+ */
+ public Event(EventType eventId, String parentId, long start, long end) {
+ this(eventId, parentId);
+ this.startTime = start;
+ this.endTime = end;
+ }
+
+ /**
+ * @return the event id
+ */
+ public EventType getEventId() {
+ return this.eventId;
+ }
+
+ /**
+ * @param eventId the event name to set
+ */
+ public void setEventType(EventType eventId) {
+ this.eventId = eventId;
+ }
+
+ /**
+ * @return the endTime
+ */
+ public long getEndTime() {
+ return endTime;
+ }
+
+ /**
+ * @param endTime the endTime to set
+ *//*
+ public void setEndTime(Calendar endTime) {
+ this.endTime = (Calendar)endTime.clone();
+ }*/
+
+ /**
+ * @return the startTime
+ */
+ public long getStartTime() {
+ return startTime;
+ }
+
+ /**
+ * @param startTime the startTime to set
+ *//*
+ public void setStartTime(Calendar startTime) {
+ this.startTime = (Calendar)startTime.clone();
+ }*/
+
+ /**
+ * @param startTime the startTime to set
+ * @param endTime the endTime to set
+ */
+ public void setTimes(long startTime, long endTime) {
+ this.startTime = startTime;
+ this.endTime = endTime;
+ }
+
+ /**
+ * @param startTime the startTime to set
+ * @param endTime the endTime to set
+ */
+ // used for primitive events where start end end time are equal
+ public void setTimes(long startAndEndTime) {
+ this.startTime = startAndEndTime;
+ this.endTime = startAndEndTime;
+ }
+
+ /**
+ * @return the parentId
+ */
+ public String getParentId() {
+ return parentId;
+ }
+
+ /**
+ * @param ressourceId the ressourceId to set
+ */
+ public void setParentId(String parentId) {
+ this.parentId = parentId;
+ }
+
+ /**
+ * @return the parameters
+ */
+ public Map<String, String> getParameters() {
+ return parameters;
+ }
+
+ /**
+ * @param parameter name of the parameter
+ * @return value of the specified parameter
+ */
+ public String getParamValue(String parameter) {
+ return parameters.get(parameter);
+ }
+
+ /**
+ * @param parameters the parameters to set
+ */
+ public void addParameters(Map<String, String> parameters) {
+ this.parameters.putAll(parameters);
+ }
+
+ /**
+ * @param paramName the name of the added parameter to set
+ * @param paramValue the value of the added parameter to set
+ */
+ public void addParameter(String paramName, String paramValue) {
+ this.parameters.put(paramName, paramValue);
+ }
+
+ public Object clone(){
+ try
+ {
+ return super.clone();
+ }
+ catch ( CloneNotSupportedException e ) {
+ // this shouldnt happen, since we are Cloneable
+ throw new InternalError();
+ }
+ }
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/PseudoSessionClock.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/PseudoSessionClock.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/PseudoSessionClock.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,65 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator;
-
-
-public class PseudoSessionClock
- {
-
- private long timer;
-
- public PseudoSessionClock() {
- this.timer = 0;
- }
-
- /* (non-Javadoc)
- * @see org.drools.temporal.SessionClock#getCurrentTime()
- */
- public long getCurrentTime() {
- return this.timer;
- }
-
- public long advanceTime( long millisecs ) {
- this.timer += millisecs;
- return this.timer;
- }
-
- public long setTime( long timer ) {
- this.timer = timer;
- return this.timer;
- }
-
- // using current system time as reference
- public long calcFuturePointInTime (long timeToAdd){
- return this.timer+timeToAdd;
- }
-
- // ------------------------------------------------------------------------------------
- // static convenience methods
-
- // using an arbitrary starting point as reference
- public static long calcFuturePointInTime (long currentTime, long timeToAdd){
- return currentTime+timeToAdd;
- }
-
- // convert seconds to milliseconds
- public static long timeInSeconds (long timeInSecs){
- return timeInSecs*1000;
- }
-
- // convert seconds to milliseconds
- public static long timeInMinutes (long timeInMins){
- return timeInSeconds(timeInMins)*60;
- }
-
- // convert seconds to milliseconds
- public static long timeInHours (long timeInHrs){
- return timeInMinutes(timeInHrs)*60;
- }
-
- // convert time given as hours, minutes, seconds, milliseconds to milliseconds
- public static long timeinHMSM (long hours, long mins, long secs, long msecs){
- return timeInHours(hours) + timeInMinutes(mins) + timeInSeconds(secs) + msecs;
- }
- }
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/PseudoSessionClock.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/PseudoSessionClock.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/PseudoSessionClock.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/PseudoSessionClock.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,65 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator;
+
+
+public class PseudoSessionClock
+ {
+
+ private long timer;
+
+ public PseudoSessionClock() {
+ this.timer = 0;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.temporal.SessionClock#getCurrentTime()
+ */
+ public long getCurrentTime() {
+ return this.timer;
+ }
+
+ public long advanceTime( long millisecs ) {
+ this.timer += millisecs;
+ return this.timer;
+ }
+
+ public long setTime( long timer ) {
+ this.timer = timer;
+ return this.timer;
+ }
+
+ // using current system time as reference
+ public long calcFuturePointInTime (long timeToAdd){
+ return this.timer+timeToAdd;
+ }
+
+ // ------------------------------------------------------------------------------------
+ // static convenience methods
+
+ // using an arbitrary starting point as reference
+ public static long calcFuturePointInTime (long currentTime, long timeToAdd){
+ return currentTime+timeToAdd;
+ }
+
+ // convert seconds to milliseconds
+ public static long timeInSeconds (long timeInSecs){
+ return timeInSecs*1000;
+ }
+
+ // convert seconds to milliseconds
+ public static long timeInMinutes (long timeInMins){
+ return timeInSeconds(timeInMins)*60;
+ }
+
+ // convert seconds to milliseconds
+ public static long timeInHours (long timeInHrs){
+ return timeInMinutes(timeInHrs)*60;
+ }
+
+ // convert time given as hours, minutes, seconds, milliseconds to milliseconds
+ public static long timeinHMSM (long hours, long mins, long secs, long msecs){
+ return timeInHours(hours) + timeInMinutes(mins) + timeInSeconds(secs) + msecs;
+ }
+ }
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGenerator.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGenerator.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGenerator.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,238 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator;
-
-/**
- * @author Matthias Groch
- *
- */
-
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Random;
-
-import org.drools.FactHandle;
-import org.drools.WorkingMemory;
-
-
-
-public class SimpleEventGenerator {
-
- private WorkingMemory wm;
- private long generationEndTime;
- private static AbstractEventListener sendListener;
- private boolean endInfinite;
- private int eventSourceIdCounter;
- private Map<String, Integer> eventSourceIds;
- private LinkedList<EventOccurrence> nextEventSource;
- private PseudoSessionClock myClock;
- FactHandle clockHandle;
-
- /**
- * @param wm
- */
- public SimpleEventGenerator(WorkingMemory wm, AbstractEventListener l) {
- this (wm, l, 0);
- }
-
- /**
- * @param wm
- * @param generationDuration
- *
- */
- public SimpleEventGenerator(WorkingMemory wm, AbstractEventListener l, long generationDuration) {
- this.wm = wm;
- this.sendListener = l;
- // add session clock to working memory
- this.myClock = new PseudoSessionClock();
- this.clockHandle = wm.insert(myClock);
-
- this.generationEndTime = this.myClock.calcFuturePointInTime(generationDuration);
- this.endInfinite = (generationDuration == 0);
- this.eventSourceIdCounter = 0;
- this.eventSourceIds = new HashMap<String, Integer>();
- this.nextEventSource = new LinkedList<EventOccurrence>();
- }
-
- /**
- * @return the endInfinite
- */
- public boolean isEndInfinite() {
- return endInfinite;
- }
-
- // add source which will generate events from current clock time on, possibly forever (i.e. no boundaries)
- public EventOccurrence addEventSource(String id, Event ev, long minOccur, long avgOccur){
- return addEventSource (id, ev, minOccur, avgOccur, 0, 0);
- }
-
- // add source which will generate events from current clock time on, but only maxItems instances at the most AND not exceeding the time specified by maxDuration
- public EventOccurrence addEventSource(String id, Event ev, long minOccur, long avgOccur, long maxDuration, int maxItems){
- if (!eventSourceIds.containsKey(id)){
- this.eventSourceIds.put(id, new Integer(eventSourceIdCounter++));
- EventOccurrence evOcc = new EventOccurrence(id, ev, minOccur, avgOccur, this.myClock.getCurrentTime(), maxDuration, maxItems);
- this.nextEventSource.add (evOcc);
- return evOcc;
- }
- return null;
- }
-
- // add source which will generate events from the given start time on, possibly forever (i.e. no boundaries)
- public EventOccurrence addDelayedEventSource(String id, Event ev, long minOccur, long avgOccur, long startTime){
- return addDelayedEventSource (id, ev, minOccur, avgOccur, startTime, 0, 0);
- }
-
- // add source which will generate events from the given start time on, but only maxItems instances at the most AND not exceeding the time specified by maxDuration
- public EventOccurrence addDelayedEventSource(String id, Event ev, long minOccur, long avgOccur, long startTime, long maxDuration, int maxItems){
- if (!eventSourceIds.containsKey(id)){
- this.eventSourceIds.put(id, new Integer(eventSourceIdCounter++));
- EventOccurrence evOcc = new EventOccurrence(id, ev, minOccur, avgOccur, startTime, maxDuration, maxItems);
- this.nextEventSource.add (evOcc);
- return evOcc;
- }
- return null;
- }
-
- public void removeEventSource(String id){
- Integer hashValue = eventSourceIds.get(id);
- if (hashValue != null){
- this.nextEventSource.remove(hashValue.intValue());
- this.eventSourceIds.remove(id);
- this.eventSourceIdCounter--;
- }
- }
-
- public static void sendGeneratedEvent(Event ev){
- sendListener.generatedEventSent(ev);
- }
-
-
- public void generate() {
- EventOccurrence currentEGT;
- Event currentEvent;
-
- //sort all events according to their first occurrence
- Collections.sort(nextEventSource, new EventGenerationTimeComparator());
-
- // simulate ongoing simulation time and upcoming events
- while (!nextEventSource.isEmpty()) {
-
- // get next event generation time from queue
- currentEGT = nextEventSource.removeFirst();
- currentEvent = (Event)currentEGT.getEvent().clone();
-
- // advance clock to time of currentEGT
- myClock.setTime(currentEGT.getNextOccurrenceTime());
-
- // send event corresponding to currentEGT
- sendGeneratedEvent(currentEvent);
- //System.out.println ("Sender "+currentEGT.getEventSenderId() + ": Sent "+currentEvent.getEventId()+" event for parent id " + currentEvent.getParentId() + " at " + Tools.formattedDate(currentEGT.getNextOccurrenceTime()));
-
- //update clock in working memory in order being able to process time sensitive rules
- wm.update(clockHandle, myClock);
-
- // determine new event generation time for this event type
- boolean occIsValid = currentEGT.calculateNextEventOccurrence();
- // add the new generation time to the right position in the queue,
- // but only if the generated event met its local restrictions plus
- // it is going to occur within the global time boundaries (or there are no such boundaries, respectively)
- if (occIsValid && (isEndInfinite() || currentEGT.getNextOccurrenceTime() < this.generationEndTime)) {
- int index = Collections.binarySearch(nextEventSource, currentEGT, new EventGenerationTimeComparator());
- if (index < 0)
- nextEventSource.add(-index-1, currentEGT);
- }
- //session.out.print ("\nQueue nach Bearbeitung: ");
- //for (int i = 0; i < nextEventSource.size(); i++)
- // session.out.print (Tools.formattedDate(nextEventSource.get(i).getGenerationTime())+"\""+nextEventSource.get(i).getEventSenderId()+"; ");
-
- };
-
- //System.out.println ("\nSending of messages finished");
- }
-
-}
-
-class EventOccurrence{
-
- private static Random myRandom = new Random();;
-
- private String eventSenderId;
- private Event event;
- private long evDeviation, evMinDur;
- private int itemCounter, maxItems;
- private long latestEnd;
- private boolean infinite;
-
- public EventOccurrence(String eventSenderId, Event ev, long evMinDur, long avgOccur, long earliestStart, long maxDuration, int maxItems) {
- this.eventSenderId = eventSenderId;
- this.evMinDur = evMinDur;
- this.evDeviation = 2*(avgOccur-evMinDur);
-
- this.event = ev;
- this.event.setTimes(earliestStart);
- this.latestEnd = earliestStart+maxDuration;
- this.maxItems = maxItems;
- this.itemCounter = 0;
- this.infinite = maxDuration<=0;
- calculateNextEventOccurrence();
- }
-
- // returns true if event source has no boundaries or all restrictions (i.e. a generation duration or max. number of event instances) are met, false otherwise
- public boolean calculateNextEventOccurrence (){
- this.event.setTimes(this.event.getEndTime()+myRandom.nextInt((int)this.evDeviation)+this.evMinDur);
- if (maxItems <=0){
- if (isInfinite())
- return true;
- else return event.getEndTime()<this.latestEnd;
- }
- else {
- this.itemCounter++;
- if (this.itemCounter>this.maxItems)
- return false;
- if (isInfinite())
- return true;
- else return (event.getEndTime()<this.latestEnd);
- }
- }
-
- /**
- * @return the infinite
- */
- private boolean isInfinite() {
- return infinite;
- }
-
- /**
- * @return the eventSenderId
- */
- public String getEventSenderId() {
- return eventSenderId;
- }
-
- /**
- * @return the time
- */
- public long getNextOccurrenceTime() {
- return this.event.getEndTime();
- }
-
- /**
- * @return the event
- */
- public Event getEvent() {
- return event;
- }
-
-}
-
-class EventGenerationTimeComparator implements Comparator<EventOccurrence>{
-
- public int compare(EventOccurrence o1, EventOccurrence o2) {
- return (int)(o1.getNextOccurrenceTime()-o2.getNextOccurrenceTime());
- }
-
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGenerator.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGenerator.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGenerator.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGenerator.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,238 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator;
+
+/**
+ * @author Matthias Groch
+ *
+ */
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Random;
+
+import org.drools.FactHandle;
+import org.drools.WorkingMemory;
+
+
+
+public class SimpleEventGenerator {
+
+ private WorkingMemory wm;
+ private long generationEndTime;
+ private static AbstractEventListener sendListener;
+ private boolean endInfinite;
+ private int eventSourceIdCounter;
+ private Map<String, Integer> eventSourceIds;
+ private LinkedList<EventOccurrence> nextEventSource;
+ private PseudoSessionClock myClock;
+ FactHandle clockHandle;
+
+ /**
+ * @param wm
+ */
+ public SimpleEventGenerator(WorkingMemory wm, AbstractEventListener l) {
+ this (wm, l, 0);
+ }
+
+ /**
+ * @param wm
+ * @param generationDuration
+ *
+ */
+ public SimpleEventGenerator(WorkingMemory wm, AbstractEventListener l, long generationDuration) {
+ this.wm = wm;
+ this.sendListener = l;
+ // add session clock to working memory
+ this.myClock = new PseudoSessionClock();
+ this.clockHandle = wm.insert(myClock);
+
+ this.generationEndTime = this.myClock.calcFuturePointInTime(generationDuration);
+ this.endInfinite = (generationDuration == 0);
+ this.eventSourceIdCounter = 0;
+ this.eventSourceIds = new HashMap<String, Integer>();
+ this.nextEventSource = new LinkedList<EventOccurrence>();
+ }
+
+ /**
+ * @return the endInfinite
+ */
+ public boolean isEndInfinite() {
+ return endInfinite;
+ }
+
+ // add source which will generate events from current clock time on, possibly forever (i.e. no boundaries)
+ public EventOccurrence addEventSource(String id, Event ev, long minOccur, long avgOccur){
+ return addEventSource (id, ev, minOccur, avgOccur, 0, 0);
+ }
+
+ // add source which will generate events from current clock time on, but only maxItems instances at the most AND not exceeding the time specified by maxDuration
+ public EventOccurrence addEventSource(String id, Event ev, long minOccur, long avgOccur, long maxDuration, int maxItems){
+ if (!eventSourceIds.containsKey(id)){
+ this.eventSourceIds.put(id, new Integer(eventSourceIdCounter++));
+ EventOccurrence evOcc = new EventOccurrence(id, ev, minOccur, avgOccur, this.myClock.getCurrentTime(), maxDuration, maxItems);
+ this.nextEventSource.add (evOcc);
+ return evOcc;
+ }
+ return null;
+ }
+
+ // add source which will generate events from the given start time on, possibly forever (i.e. no boundaries)
+ public EventOccurrence addDelayedEventSource(String id, Event ev, long minOccur, long avgOccur, long startTime){
+ return addDelayedEventSource (id, ev, minOccur, avgOccur, startTime, 0, 0);
+ }
+
+ // add source which will generate events from the given start time on, but only maxItems instances at the most AND not exceeding the time specified by maxDuration
+ public EventOccurrence addDelayedEventSource(String id, Event ev, long minOccur, long avgOccur, long startTime, long maxDuration, int maxItems){
+ if (!eventSourceIds.containsKey(id)){
+ this.eventSourceIds.put(id, new Integer(eventSourceIdCounter++));
+ EventOccurrence evOcc = new EventOccurrence(id, ev, minOccur, avgOccur, startTime, maxDuration, maxItems);
+ this.nextEventSource.add (evOcc);
+ return evOcc;
+ }
+ return null;
+ }
+
+ public void removeEventSource(String id){
+ Integer hashValue = eventSourceIds.get(id);
+ if (hashValue != null){
+ this.nextEventSource.remove(hashValue.intValue());
+ this.eventSourceIds.remove(id);
+ this.eventSourceIdCounter--;
+ }
+ }
+
+ public static void sendGeneratedEvent(Event ev){
+ sendListener.generatedEventSent(ev);
+ }
+
+
+ public void generate() {
+ EventOccurrence currentEGT;
+ Event currentEvent;
+
+ //sort all events according to their first occurrence
+ Collections.sort(nextEventSource, new EventGenerationTimeComparator());
+
+ // simulate ongoing simulation time and upcoming events
+ while (!nextEventSource.isEmpty()) {
+
+ // get next event generation time from queue
+ currentEGT = nextEventSource.removeFirst();
+ currentEvent = (Event)currentEGT.getEvent().clone();
+
+ // advance clock to time of currentEGT
+ myClock.setTime(currentEGT.getNextOccurrenceTime());
+
+ // send event corresponding to currentEGT
+ sendGeneratedEvent(currentEvent);
+ //System.out.println ("Sender "+currentEGT.getEventSenderId() + ": Sent "+currentEvent.getEventId()+" event for parent id " + currentEvent.getParentId() + " at " + Tools.formattedDate(currentEGT.getNextOccurrenceTime()));
+
+ //update clock in working memory in order being able to process time sensitive rules
+ wm.update(clockHandle, myClock);
+
+ // determine new event generation time for this event type
+ boolean occIsValid = currentEGT.calculateNextEventOccurrence();
+ // add the new generation time to the right position in the queue,
+ // but only if the generated event met its local restrictions plus
+ // it is going to occur within the global time boundaries (or there are no such boundaries, respectively)
+ if (occIsValid && (isEndInfinite() || currentEGT.getNextOccurrenceTime() < this.generationEndTime)) {
+ int index = Collections.binarySearch(nextEventSource, currentEGT, new EventGenerationTimeComparator());
+ if (index < 0)
+ nextEventSource.add(-index-1, currentEGT);
+ }
+ //session.out.print ("\nQueue nach Bearbeitung: ");
+ //for (int i = 0; i < nextEventSource.size(); i++)
+ // session.out.print (Tools.formattedDate(nextEventSource.get(i).getGenerationTime())+"\""+nextEventSource.get(i).getEventSenderId()+"; ");
+
+ };
+
+ //System.out.println ("\nSending of messages finished");
+ }
+
+}
+
+class EventOccurrence{
+
+ private static Random myRandom = new Random();;
+
+ private String eventSenderId;
+ private Event event;
+ private long evDeviation, evMinDur;
+ private int itemCounter, maxItems;
+ private long latestEnd;
+ private boolean infinite;
+
+ public EventOccurrence(String eventSenderId, Event ev, long evMinDur, long avgOccur, long earliestStart, long maxDuration, int maxItems) {
+ this.eventSenderId = eventSenderId;
+ this.evMinDur = evMinDur;
+ this.evDeviation = 2*(avgOccur-evMinDur);
+
+ this.event = ev;
+ this.event.setTimes(earliestStart);
+ this.latestEnd = earliestStart+maxDuration;
+ this.maxItems = maxItems;
+ this.itemCounter = 0;
+ this.infinite = maxDuration<=0;
+ calculateNextEventOccurrence();
+ }
+
+ // returns true if event source has no boundaries or all restrictions (i.e. a generation duration or max. number of event instances) are met, false otherwise
+ public boolean calculateNextEventOccurrence (){
+ this.event.setTimes(this.event.getEndTime()+myRandom.nextInt((int)this.evDeviation)+this.evMinDur);
+ if (maxItems <=0){
+ if (isInfinite())
+ return true;
+ else return event.getEndTime()<this.latestEnd;
+ }
+ else {
+ this.itemCounter++;
+ if (this.itemCounter>this.maxItems)
+ return false;
+ if (isInfinite())
+ return true;
+ else return (event.getEndTime()<this.latestEnd);
+ }
+ }
+
+ /**
+ * @return the infinite
+ */
+ private boolean isInfinite() {
+ return infinite;
+ }
+
+ /**
+ * @return the eventSenderId
+ */
+ public String getEventSenderId() {
+ return eventSenderId;
+ }
+
+ /**
+ * @return the time
+ */
+ public long getNextOccurrenceTime() {
+ return this.event.getEndTime();
+ }
+
+ /**
+ * @return the event
+ */
+ public Event getEvent() {
+ return event;
+ }
+
+}
+
+class EventGenerationTimeComparator implements Comparator<EventOccurrence>{
+
+ public int compare(EventOccurrence o1, EventOccurrence o2) {
+ return (int)(o1.getNextOccurrenceTime()-o2.getNextOccurrenceTime());
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGeneratorTest.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGeneratorTest.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGeneratorTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,168 +0,0 @@
-package org.drools.integrationtests.eventgenerator;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.WorkingMemory;
-import org.drools.compiler.DrlParser;
-import org.drools.compiler.DroolsParserException;
-import org.drools.compiler.PackageBuilder;
-import org.drools.integrationtests.eventgenerator.Event.EventType;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.rule.Package;
-
-
-public class SimpleEventGeneratorTest extends TestCase {
-
- private final static String TEST_RULE_FILE = "test_eventGenerator.drl";
-
- protected RuleBase getRuleBase() throws Exception {
-
- return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
- null );
- }
-
- private RuleBase loadRuleBase(final Reader reader) throws IOException,
- DroolsParserException,
- Exception {
- final DrlParser parser = new DrlParser();
- final PackageDescr packageDescr = parser.parse( reader );
- if ( parser.hasErrors() ) {
- System.out.println( parser.getErrors() );
- Assert.fail( "Error messages in parser, need to sort this our (or else collect error messages)" );
- }
- // pre build the package
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackage( packageDescr );
- final Package pkg = builder.getPackage();
-
- // add the package to a rulebase
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- // load up the rulebase
- return ruleBase;
- }
-
- public void testEventGenerationMaxItems() throws DroolsParserException, IOException, Exception{
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
- final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final SimpleEventGenerator myGenerator;
-
- // create unrestricted event generator
- myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
- // generate 10 events, starting from the session clock
- myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), 0, 10);
- myGenerator.generate();
- assertEquals(wm.getQueryResults("all inserted events").size(), 10);
- }
-
- public void testEventGenerationMaxTime() throws DroolsParserException, IOException, Exception{
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
- final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final SimpleEventGenerator myGenerator;
-
- // create unrestricted event generator
- myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
- // generate events for 1 min, starting from the session clock
- myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(1), 0);
- myGenerator.generate();
- assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with generation time < 1 min").size());
- }
-
- public void testEventGenerationMaxTimeAndMaxItems() throws DroolsParserException, IOException, Exception{
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
- final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final SimpleEventGenerator myGenerator;
-
- // create unrestricted event generator
- myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
- // generate at most 10 events not exceeding 1 min, starting from the session clock
- myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(1), 10);
- myGenerator.generate();
- assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with generation time < 1 min").size());
- assertTrue(wm.getQueryResults("all inserted events with generation time < 1 min").size()<=10);
- }
-
- public void testEventGenerationDelayedMaxItems() throws DroolsParserException, IOException, Exception{
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
- final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final SimpleEventGenerator myGenerator;
-
- // create unrestricted event generator
- myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
- // generate 10 events, delayed by 2 minutes from start session clock
- myGenerator.addDelayedEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(2), 0, 10);
- myGenerator.generate();
- assertEquals(wm.getQueryResults("all inserted events").size(), 10);
- }
-
- public void testEventGenerationDelayedMaxTime() throws DroolsParserException, IOException, Exception{
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
- final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final SimpleEventGenerator myGenerator;
-
- // create unrestricted event generator
- myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
- // generate events for 1 min, delayed by 2 minutes from start session clock
- myGenerator.addDelayedEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(2), PseudoSessionClock.timeInMinutes(1), 0);
- myGenerator.generate();
- assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with 2 min < generation time < 3 min").size());
- }
-
- public void testEventGenerationDelayedMaxTimeAndMaxItems() throws DroolsParserException, IOException, Exception{
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
- final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final SimpleEventGenerator myGenerator;
-
- // create unrestricted event generator
- myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
- // generate at most 10 events not exceeding 1 min, delayed by 2 minutes from start session clock
- myGenerator.addDelayedEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(2), PseudoSessionClock.timeInMinutes(1), 10);
- myGenerator.generate();
- assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with 2 min < generation time < 3 min").size());
- assertTrue(wm.getQueryResults("all inserted events with 2 min < generation time < 3 min").size()<=10);
- }
-
- public void testEventGenerationGlobalMaxTime() throws DroolsParserException, IOException, Exception{
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
- final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final SimpleEventGenerator myGenerator;
-
- // create unrestricted event generator
- myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm), PseudoSessionClock.timeInMinutes(1));
- // generate events for 1 min, starting from the session clock
- myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(3), 0);
- myGenerator.generate();
- assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with generation time < 1 min").size());
- }
-
- public void testEventGenerationMultipleSources() throws DroolsParserException, IOException, Exception{
- final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
- final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final SimpleEventGenerator myGenerator;
-
- // create unrestricted event generator
- myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
- // generate 15 events with parent resource A and 20 events with parent resource B
- myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, "resA"), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), 0, 15);
- myGenerator.addEventSource("Conveyor2", new Event(EventType.CUSTOM, "resB"), PseudoSessionClock.timeInSeconds(3), PseudoSessionClock.timeInSeconds(5), 0, 20);
- myGenerator.generate();
- assertEquals(wm.getQueryResults("all inserted events with parent resource A").size(), 15);
- assertEquals(wm.getQueryResults("all inserted events with parent resource B").size(), 20);
- }
-
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGeneratorTest.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGeneratorTest.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGeneratorTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventGeneratorTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,168 @@
+package org.drools.integrationtests.eventgenerator;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.compiler.DrlParser;
+import org.drools.compiler.DroolsParserException;
+import org.drools.compiler.PackageBuilder;
+import org.drools.integrationtests.eventgenerator.Event.EventType;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.rule.Package;
+
+
+public class SimpleEventGeneratorTest extends TestCase {
+
+ private final static String TEST_RULE_FILE = "test_eventGenerator.drl";
+
+ protected RuleBase getRuleBase() throws Exception {
+
+ return RuleBaseFactory.newRuleBase( RuleBase.RETEOO,
+ null );
+ }
+
+ private RuleBase loadRuleBase(final Reader reader) throws IOException,
+ DroolsParserException,
+ Exception {
+ final DrlParser parser = new DrlParser();
+ final PackageDescr packageDescr = parser.parse( reader );
+ if ( parser.hasErrors() ) {
+ System.out.println( parser.getErrors() );
+ Assert.fail( "Error messages in parser, need to sort this our (or else collect error messages)" );
+ }
+ // pre build the package
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackage( packageDescr );
+ final Package pkg = builder.getPackage();
+
+ // add the package to a rulebase
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ // load up the rulebase
+ return ruleBase;
+ }
+
+ public void testEventGenerationMaxItems() throws DroolsParserException, IOException, Exception{
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final SimpleEventGenerator myGenerator;
+
+ // create unrestricted event generator
+ myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
+ // generate 10 events, starting from the session clock
+ myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), 0, 10);
+ myGenerator.generate();
+ assertEquals(wm.getQueryResults("all inserted events").size(), 10);
+ }
+
+ public void testEventGenerationMaxTime() throws DroolsParserException, IOException, Exception{
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final SimpleEventGenerator myGenerator;
+
+ // create unrestricted event generator
+ myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
+ // generate events for 1 min, starting from the session clock
+ myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(1), 0);
+ myGenerator.generate();
+ assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with generation time < 1 min").size());
+ }
+
+ public void testEventGenerationMaxTimeAndMaxItems() throws DroolsParserException, IOException, Exception{
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final SimpleEventGenerator myGenerator;
+
+ // create unrestricted event generator
+ myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
+ // generate at most 10 events not exceeding 1 min, starting from the session clock
+ myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(1), 10);
+ myGenerator.generate();
+ assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with generation time < 1 min").size());
+ assertTrue(wm.getQueryResults("all inserted events with generation time < 1 min").size()<=10);
+ }
+
+ public void testEventGenerationDelayedMaxItems() throws DroolsParserException, IOException, Exception{
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final SimpleEventGenerator myGenerator;
+
+ // create unrestricted event generator
+ myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
+ // generate 10 events, delayed by 2 minutes from start session clock
+ myGenerator.addDelayedEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(2), 0, 10);
+ myGenerator.generate();
+ assertEquals(wm.getQueryResults("all inserted events").size(), 10);
+ }
+
+ public void testEventGenerationDelayedMaxTime() throws DroolsParserException, IOException, Exception{
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final SimpleEventGenerator myGenerator;
+
+ // create unrestricted event generator
+ myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
+ // generate events for 1 min, delayed by 2 minutes from start session clock
+ myGenerator.addDelayedEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(2), PseudoSessionClock.timeInMinutes(1), 0);
+ myGenerator.generate();
+ assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with 2 min < generation time < 3 min").size());
+ }
+
+ public void testEventGenerationDelayedMaxTimeAndMaxItems() throws DroolsParserException, IOException, Exception{
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final SimpleEventGenerator myGenerator;
+
+ // create unrestricted event generator
+ myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
+ // generate at most 10 events not exceeding 1 min, delayed by 2 minutes from start session clock
+ myGenerator.addDelayedEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(2), PseudoSessionClock.timeInMinutes(1), 10);
+ myGenerator.generate();
+ assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with 2 min < generation time < 3 min").size());
+ assertTrue(wm.getQueryResults("all inserted events with 2 min < generation time < 3 min").size()<=10);
+ }
+
+ public void testEventGenerationGlobalMaxTime() throws DroolsParserException, IOException, Exception{
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final SimpleEventGenerator myGenerator;
+
+ // create unrestricted event generator
+ myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm), PseudoSessionClock.timeInMinutes(1));
+ // generate events for 1 min, starting from the session clock
+ myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, null), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), PseudoSessionClock.timeInMinutes(3), 0);
+ myGenerator.generate();
+ assertEquals(wm.getQueryResults("all inserted events").size(), wm.getQueryResults("all inserted events with generation time < 1 min").size());
+ }
+
+ public void testEventGenerationMultipleSources() throws DroolsParserException, IOException, Exception{
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( TEST_RULE_FILE ) );
+ final RuleBase ruleBase = loadRuleBase( reader );
+ final WorkingMemory wm = ruleBase.newStatefulSession();
+ final SimpleEventGenerator myGenerator;
+
+ // create unrestricted event generator
+ myGenerator = new SimpleEventGenerator(wm , new SimpleEventListener(wm));
+ // generate 15 events with parent resource A and 20 events with parent resource B
+ myGenerator.addEventSource("Conveyor1", new Event(EventType.CUSTOM, "resA"), PseudoSessionClock.timeInSeconds(4), PseudoSessionClock.timeInSeconds(6), 0, 15);
+ myGenerator.addEventSource("Conveyor2", new Event(EventType.CUSTOM, "resB"), PseudoSessionClock.timeInSeconds(3), PseudoSessionClock.timeInSeconds(5), 0, 20);
+ myGenerator.generate();
+ assertEquals(wm.getQueryResults("all inserted events with parent resource A").size(), 15);
+ assertEquals(wm.getQueryResults("all inserted events with parent resource B").size(), 20);
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventListener.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventListener.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventListener.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,28 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator;
-
-import org.drools.WorkingMemory;
-
-
-/**
- * @author Matthias Groch
- *
- */
-public class SimpleEventListener extends AbstractEventListener {
-
- public SimpleEventListener(WorkingMemory wm) {
- super(wm);
- // TODO Auto-generated constructor stub
- }
-
- /* (non-Javadoc)
- * @see com.event.AbstractEventListener#generatedEventSent(com.event.Event)
- */
- @Override
- public void generatedEventSent(Event e) {
- addEventToWM(e);
- }
-
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventListener.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventListener.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventListener.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/SimpleEventListener.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,28 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator;
+
+import org.drools.WorkingMemory;
+
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class SimpleEventListener extends AbstractEventListener {
+
+ public SimpleEventListener(WorkingMemory wm) {
+ super(wm);
+ // TODO Auto-generated constructor stub
+ }
+
+ /* (non-Javadoc)
+ * @see com.event.AbstractEventListener#generatedEventSent(com.event.Event)
+ */
+ @Override
+ public void generatedEventSent(Event e) {
+ addEventToWM(e);
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example)
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ExampleScenario.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ExampleScenario.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ExampleScenario.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,129 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator.example;
-
-/**
- * @author Matthias Groch
- *
- */
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.WorkingMemory;
-import org.drools.compiler.DroolsParserException;
-import org.drools.compiler.PackageBuilder;
-import org.drools.integrationtests.eventgenerator.PseudoSessionClock;
-import org.drools.integrationtests.eventgenerator.SimpleEventGenerator;
-import org.drools.integrationtests.eventgenerator.SimpleEventListener;
-import org.drools.rule.Package;
-
-
-public class ExampleScenario {
-
- // constants
- public final static String FILE_NAME_RULES = "../example_scenario.drl";
- //public final static String FILE_NAME_LOGGER = "log/event";
- private static int NUMBER_RESOURCES = 3;
-
- // event occurrence probabilities
- public final static int AVG_OCCUR_PRODUCTION_EVENT = 7000; // average time in milliseconds after which another item is manufactured by one resource; default: 700 ms
- public final static int MIN_OCCUR_PRODUCTION_EVENT = 4000; // minimum time in milliseconds after which another item is manufactured by one resource; default: 700 ms
- public final static int AVG_OCCUR_HEARTBEAT_EVENT = 90000; // average time in milliseconds after which a resource sends another heartbeat; default: 60000 ms
- public final static int MIN_OCCUR_HEARTBEAT_EVENT = 45000; // average time in milliseconds after which a resource sends another heartbeat; default: 60000 ms
- public final static int AVG_OCCUR_ALERT_EVENT = 1800000; // average time in milliseconds after which an alarm is sent; default: 1800000 = 30 mis
- public final static int MIN_OCCUR_ALERT_EVENT = 0; // average time in milliseconds after which an alarm is sent; default: 1800000 = 30 mis
-
- private static WorkingMemory wm;
- //private static WorkingMemoryFileLogger logger;
-
- public static void setup(){
- // read in the source
- Reader source = new InputStreamReader (ExampleScenario.class.getResourceAsStream(FILE_NAME_RULES));
- // Use package builder to build up a rule package.
- // An alternative lower level class called DrlParser can also be used ...
- PackageBuilder builder = new PackageBuilder();
- // this will parse and compile in one step
- // NOTE: There are 2 methods here, the one argument one is for normal DRL.
- try {
- builder.addPackageFromDrl(source);
- } catch (DroolsParserException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- // get the compiled package (which is serializable)
- Package pkg = builder.getPackage();
-
- // add defined object types
- //FactTemplate ftEvent = new FactTemplateImpl();
- //pkg.addFactTemplate(ftEvent);
-
- // add the package to a rulebase (deploy the rule package).
- RuleBase ruleBase = RuleBaseFactory.newRuleBase();
- try {
- ruleBase.addPackage (pkg);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- wm = ruleBase.newStatefulSession();
- // create a new Working Memory Logger, that logs to file.
- //logger = new WorkingMemoryFileLogger(wm);
- // an event.log file is created in the log dir (which must exist)
- // in the working directory
- //logger.setFileName(FILE_NAME_LOGGER);
- }
-
- public static final void main (String[] args) {
-
- setup();
-
- System.out.println("Waiting for messages...");
- System.out.println("Press [return] to quit\n");
-
- ArrayList<Resource> resources = new ArrayList<Resource>();
-
- //
- SimpleEventGenerator myGenerator = new SimpleEventGenerator(wm, new SimpleEventListener(wm), PseudoSessionClock.timeInMinutes(15));
-
- //create fab resources and add them to working memory
- for (int i = 0; i < NUMBER_RESOURCES; i++){
-
- Resource res = new Resource("mach"+i);
- resources.add(res);
- wm.insert(res.getOpStatus());
-
- SlidingWindow sw = new SlidingWindow(0, res.getId(), PseudoSessionClock.timeInMinutes(10), PseudoSessionClock.timeInMinutes(2));
- //GlobalWorkingMemory.getInstance().insert(new Event(Event.SLIDING_WINDOW, res.getId(), systemTime, systemTime));
- wm.insert(sw);
-
- // add eventSenders to EventGenerator
- myGenerator.addEventSource("Conveyor"+i, new ProductionEvent(res.getId()), MIN_OCCUR_PRODUCTION_EVENT, AVG_OCCUR_PRODUCTION_EVENT, 0, 0);
- }
-
- // start generating events
- myGenerator.generate();
-
- BufferedReader waiter = new BufferedReader(new InputStreamReader(System.in));
- try {
- waiter.readLine();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- // stop logging
- //logger.writeToDisk();
- //System.out.println("Application terminated - Audit log written to disk");
-
- }
-
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ExampleScenario.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ExampleScenario.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ExampleScenario.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ExampleScenario.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,129 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator.example;
+
+/**
+ * @author Matthias Groch
+ *
+ */
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.compiler.DroolsParserException;
+import org.drools.compiler.PackageBuilder;
+import org.drools.integrationtests.eventgenerator.PseudoSessionClock;
+import org.drools.integrationtests.eventgenerator.SimpleEventGenerator;
+import org.drools.integrationtests.eventgenerator.SimpleEventListener;
+import org.drools.rule.Package;
+
+
+public class ExampleScenario {
+
+ // constants
+ public final static String FILE_NAME_RULES = "../example_scenario.drl";
+ //public final static String FILE_NAME_LOGGER = "log/event";
+ private static int NUMBER_RESOURCES = 3;
+
+ // event occurrence probabilities
+ public final static int AVG_OCCUR_PRODUCTION_EVENT = 7000; // average time in milliseconds after which another item is manufactured by one resource; default: 700 ms
+ public final static int MIN_OCCUR_PRODUCTION_EVENT = 4000; // minimum time in milliseconds after which another item is manufactured by one resource; default: 700 ms
+ public final static int AVG_OCCUR_HEARTBEAT_EVENT = 90000; // average time in milliseconds after which a resource sends another heartbeat; default: 60000 ms
+ public final static int MIN_OCCUR_HEARTBEAT_EVENT = 45000; // average time in milliseconds after which a resource sends another heartbeat; default: 60000 ms
+ public final static int AVG_OCCUR_ALERT_EVENT = 1800000; // average time in milliseconds after which an alarm is sent; default: 1800000 = 30 mis
+ public final static int MIN_OCCUR_ALERT_EVENT = 0; // average time in milliseconds after which an alarm is sent; default: 1800000 = 30 mis
+
+ private static WorkingMemory wm;
+ //private static WorkingMemoryFileLogger logger;
+
+ public static void setup(){
+ // read in the source
+ Reader source = new InputStreamReader (ExampleScenario.class.getResourceAsStream(FILE_NAME_RULES));
+ // Use package builder to build up a rule package.
+ // An alternative lower level class called DrlParser can also be used ...
+ PackageBuilder builder = new PackageBuilder();
+ // this will parse and compile in one step
+ // NOTE: There are 2 methods here, the one argument one is for normal DRL.
+ try {
+ builder.addPackageFromDrl(source);
+ } catch (DroolsParserException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ // get the compiled package (which is serializable)
+ Package pkg = builder.getPackage();
+
+ // add defined object types
+ //FactTemplate ftEvent = new FactTemplateImpl();
+ //pkg.addFactTemplate(ftEvent);
+
+ // add the package to a rulebase (deploy the rule package).
+ RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ try {
+ ruleBase.addPackage (pkg);
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ wm = ruleBase.newStatefulSession();
+ // create a new Working Memory Logger, that logs to file.
+ //logger = new WorkingMemoryFileLogger(wm);
+ // an event.log file is created in the log dir (which must exist)
+ // in the working directory
+ //logger.setFileName(FILE_NAME_LOGGER);
+ }
+
+ public static final void main (String[] args) {
+
+ setup();
+
+ System.out.println("Waiting for messages...");
+ System.out.println("Press [return] to quit\n");
+
+ ArrayList<Resource> resources = new ArrayList<Resource>();
+
+ //
+ SimpleEventGenerator myGenerator = new SimpleEventGenerator(wm, new SimpleEventListener(wm), PseudoSessionClock.timeInMinutes(15));
+
+ //create fab resources and add them to working memory
+ for (int i = 0; i < NUMBER_RESOURCES; i++){
+
+ Resource res = new Resource("mach"+i);
+ resources.add(res);
+ wm.insert(res.getOpStatus());
+
+ SlidingWindow sw = new SlidingWindow(0, res.getId(), PseudoSessionClock.timeInMinutes(10), PseudoSessionClock.timeInMinutes(2));
+ //GlobalWorkingMemory.getInstance().insert(new Event(Event.SLIDING_WINDOW, res.getId(), systemTime, systemTime));
+ wm.insert(sw);
+
+ // add eventSenders to EventGenerator
+ myGenerator.addEventSource("Conveyor"+i, new ProductionEvent(res.getId()), MIN_OCCUR_PRODUCTION_EVENT, AVG_OCCUR_PRODUCTION_EVENT, 0, 0);
+ }
+
+ // start generating events
+ myGenerator.generate();
+
+ BufferedReader waiter = new BufferedReader(new InputStreamReader(System.in));
+ try {
+ waiter.readLine();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ // stop logging
+ //logger.writeToDisk();
+ //System.out.println("Application terminated - Audit log written to disk");
+
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/FailureEvent.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/FailureEvent.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/FailureEvent.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,33 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator.example;
-
-import org.drools.integrationtests.eventgenerator.Event;
-
-/**
- * @author Matthias Groch
- *
- */
-public class FailureEvent extends Event {
-
- /**
- * Special constructor for a failure event
- * @param parentId The id of the corresponding site, resource, ...
- */
- public FailureEvent(String parentId) {
- super(EventType.FAILURE, parentId);
- }
-
- /**
- * Special constructor for a faliure event
- * @param parentId The id of the corresponding site, resource, ...
- * @param start The start instance of the event.
- * @param end The end instance of the event.
- * @param parameters The event parameters.
- */
- public FailureEvent(String parentId, long start, long end) {
- super(EventType.FAILURE, parentId, start, end);
- }
-
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/FailureEvent.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/FailureEvent.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/FailureEvent.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/FailureEvent.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator.example;
+
+import org.drools.integrationtests.eventgenerator.Event;
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class FailureEvent extends Event {
+
+ /**
+ * Special constructor for a failure event
+ * @param parentId The id of the corresponding site, resource, ...
+ */
+ public FailureEvent(String parentId) {
+ super(EventType.FAILURE, parentId);
+ }
+
+ /**
+ * Special constructor for a faliure event
+ * @param parentId The id of the corresponding site, resource, ...
+ * @param start The start instance of the event.
+ * @param end The end instance of the event.
+ * @param parameters The event parameters.
+ */
+ public FailureEvent(String parentId, long start, long end) {
+ super(EventType.FAILURE, parentId, start, end);
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/HeartbeatEvent.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/HeartbeatEvent.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/HeartbeatEvent.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,33 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator.example;
-
-import org.drools.integrationtests.eventgenerator.Event;
-
-
-/**
- * @author Matthias Groch
- *
- */
-public class HeartbeatEvent extends Event {
-
- /**
- * Special constructor for a heartbeat event
- * @param parentId The id of the corresponding site, resource, ...
- */
- public HeartbeatEvent(String parentId) {
- super(EventType.HEARTBEAT, parentId);
- }
-
- /**
- * Special constructor for a heartbeat event
- * @param parentId The id of the corresponding site, resource, ...
- * @param start The start instance of the event.
- * @param end The end instance of the event.
- * @param parameters The event parameters.
- */
- public HeartbeatEvent(String parentId, long start, long end) {
- super(EventType.HEARTBEAT, parentId, start, end);
- }
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/HeartbeatEvent.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/HeartbeatEvent.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/HeartbeatEvent.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/HeartbeatEvent.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator.example;
+
+import org.drools.integrationtests.eventgenerator.Event;
+
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class HeartbeatEvent extends Event {
+
+ /**
+ * Special constructor for a heartbeat event
+ * @param parentId The id of the corresponding site, resource, ...
+ */
+ public HeartbeatEvent(String parentId) {
+ super(EventType.HEARTBEAT, parentId);
+ }
+
+ /**
+ * Special constructor for a heartbeat event
+ * @param parentId The id of the corresponding site, resource, ...
+ * @param start The start instance of the event.
+ * @param end The end instance of the event.
+ * @param parameters The event parameters.
+ */
+ public HeartbeatEvent(String parentId, long start, long end) {
+ super(EventType.HEARTBEAT, parentId, start, end);
+ }
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ProductionEvent.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ProductionEvent.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ProductionEvent.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,32 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator.example;
-
-import org.drools.integrationtests.eventgenerator.Event;
-
-/**
- * @author Matthias Groch
- *
- */
-public class ProductionEvent extends Event {
-
- /**
- * Special constructor for a production event
- * @param parentId The id of the corresponding site, resource, ...
- */
- public ProductionEvent(String parentId) {
- super(EventType.PRODUCTION, parentId);
- }
-
- /**
- * Special constructor for a production event
- * @param parentId The id of the corresponding site, resource, ...
- * @param start The start instance of the event.
- * @param end The end instance of the event.
- * @param parameters The event parameters.
- */
- public ProductionEvent(String parentId, long start, long end) {
- super(EventType.PRODUCTION, parentId, start, end);
- }
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ProductionEvent.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ProductionEvent.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ProductionEvent.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/ProductionEvent.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator.example;
+
+import org.drools.integrationtests.eventgenerator.Event;
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class ProductionEvent extends Event {
+
+ /**
+ * Special constructor for a production event
+ * @param parentId The id of the corresponding site, resource, ...
+ */
+ public ProductionEvent(String parentId) {
+ super(EventType.PRODUCTION, parentId);
+ }
+
+ /**
+ * Special constructor for a production event
+ * @param parentId The id of the corresponding site, resource, ...
+ * @param start The start instance of the event.
+ * @param end The end instance of the event.
+ * @param parameters The event parameters.
+ */
+ public ProductionEvent(String parentId, long start, long end) {
+ super(EventType.PRODUCTION, parentId, start, end);
+ }
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Resource.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Resource.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Resource.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,121 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator.example;
-
-import java.util.Calendar;
-
-/**
- * @author Matthias Groch
- *
- */
-public class Resource {
-
- public static final String[] OPERATIONAL_STATUS_VALUES = {"RED", "YELLOW", "GREEN"};
-
- public static final int STATUS_RED = 0;
- public static final int STATUS_YELLOW = 1;
- public static final int STATUS_GREEN = 2;
-
- private static int idCounter = 0;
-
- private String id;
- private String name;
- private double pressure, temperature;
- private Calendar lastHeartBeat;
- private Status opStatus;
-
- public Resource(String name) {
- this.id = String.valueOf(idCounter++);
- this.name = name;
- this.pressure = 0;
- this.temperature = 0;
- this.lastHeartBeat = null;
- this.opStatus = new Status(Status.OPERATIONAL, this.id, OPERATIONAL_STATUS_VALUES, STATUS_RED);
- }
-
- /**
- * @return the id
- */
- public String getId() {
- return id;
- }
-
- /**
- * @param id the id to set
- */
- public void setId(String id) {
- this.id = id;
- }
-
- /**
- * @return the resource type
- */
- public String getName() {
- return name;
- }
-
- /**
- * @param type the resource type to set
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * @return the opStatus
- */
- public Status getOpStatus() {
- return opStatus;
- }
-
- /**
- * @param opStatus the opStatus to set
- */
- public void setOpStatus(Status status) {
- this.opStatus = status;
- }
-
- /**
- * @return the pressure
- */
- public double getPressure() {
- return pressure;
- }
-
- /**
- * @param pressure the pressure to set
- */
- public void setPressure(double pressure) {
- this.pressure = pressure;
- }
-
- /**
- * @return the temperature
- */
- public double getTemperature() {
- return temperature;
- }
-
- /**
- * @param temperature the temperature to set
- */
- public void setTemperature(double temperature) {
- this.temperature = temperature;
- }
-
- /**
- * @return the lastHeartBeat
- */
- public Calendar getLastHeartBeat() {
- return lastHeartBeat;
- }
-
- /**
- * @param lastHeartBeat the lastHeartBeat to set
- */
- public void setLastHeartBeat(Calendar lastHeartBeat) {
- this.lastHeartBeat = lastHeartBeat;
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Resource.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Resource.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Resource.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Resource.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,121 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator.example;
+
+import java.util.Calendar;
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class Resource {
+
+ public static final String[] OPERATIONAL_STATUS_VALUES = {"RED", "YELLOW", "GREEN"};
+
+ public static final int STATUS_RED = 0;
+ public static final int STATUS_YELLOW = 1;
+ public static final int STATUS_GREEN = 2;
+
+ private static int idCounter = 0;
+
+ private String id;
+ private String name;
+ private double pressure, temperature;
+ private Calendar lastHeartBeat;
+ private Status opStatus;
+
+ public Resource(String name) {
+ this.id = String.valueOf(idCounter++);
+ this.name = name;
+ this.pressure = 0;
+ this.temperature = 0;
+ this.lastHeartBeat = null;
+ this.opStatus = new Status(Status.OPERATIONAL, this.id, OPERATIONAL_STATUS_VALUES, STATUS_RED);
+ }
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the resource type
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param type the resource type to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * @return the opStatus
+ */
+ public Status getOpStatus() {
+ return opStatus;
+ }
+
+ /**
+ * @param opStatus the opStatus to set
+ */
+ public void setOpStatus(Status status) {
+ this.opStatus = status;
+ }
+
+ /**
+ * @return the pressure
+ */
+ public double getPressure() {
+ return pressure;
+ }
+
+ /**
+ * @param pressure the pressure to set
+ */
+ public void setPressure(double pressure) {
+ this.pressure = pressure;
+ }
+
+ /**
+ * @return the temperature
+ */
+ public double getTemperature() {
+ return temperature;
+ }
+
+ /**
+ * @param temperature the temperature to set
+ */
+ public void setTemperature(double temperature) {
+ this.temperature = temperature;
+ }
+
+ /**
+ * @return the lastHeartBeat
+ */
+ public Calendar getLastHeartBeat() {
+ return lastHeartBeat;
+ }
+
+ /**
+ * @param lastHeartBeat the lastHeartBeat to set
+ */
+ public void setLastHeartBeat(Calendar lastHeartBeat) {
+ this.lastHeartBeat = lastHeartBeat;
+ }
+
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/SlidingWindow.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/SlidingWindow.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/SlidingWindow.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,312 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator.example;
-
-/**
- * @author Matthias Groch
- *
- */
-public class SlidingWindow {
-
- // Sliding window states names
- public static final String[] SW_STATES = {"Default", "Collecting", "Evaluating", "Advancing"};
-
- public static final int DEFAULT = 0;
- public static final int COLLECT = 1;
- public static final int EVALUATE = 2;
- public static final int ADVANCE = 3;
-
- private static int idCounter = 0;
-
- private int id, state;
- private boolean readyToEvaluate;
- private String parentId;
- private long windowStart, windowEnd, lastUpdate;
- private long windowLength, windowShift;
- //private List<Event> eventsInWindow;
- int numberEvents;
- /*private int defectiveFridgesCount, defectiveFreezersCount;
- private int workingFridgesCount, workingFreezersCount;*/
-
- public SlidingWindow(long wStart, String parentId, long windowLength, long windowShift) {
- this.id = idCounter++;
- this.readyToEvaluate = false;
- this.state = DEFAULT;
- this.parentId = parentId;
- this.windowStart = wStart;
- this.windowEnd = this.windowStart + windowLength;
- this.lastUpdate = wStart;
- this.windowLength = windowLength;
- this.windowShift = windowShift;
- //this.eventsInWindow = new ArrayList<Event>();
- this.numberEvents = 0;
- //System.out.println ("Sliding window "+this.id+" expires at "+Tools.formattedDate(this.windowEnd));
- }
-
- /**
- * @return the id
- */
- public String getId() {
- return "sw"+id;
- }
-
- public long getWindowStart() {
- return windowStart;
- }
-
- public void setWindowStart(long start) {
- this.windowStart = start;
- }
-
- public long getWindowEnd() {
- return windowEnd;
- }
-
- public void setWindowEnd(long end) {
- this.windowEnd = end;
- }
-
- /**
- * @return the windowLength
- */
- public long getWindowLength() {
- return windowLength;
- }
-
- /**
- * @param windowLength the windowLength to set
- */
- public void setWindowLength(int windowLength) {
- this.windowLength = windowLength;
- }
-
- /**
- * @return the shift
- */
- public long getWindowShift() {
- return windowShift;
- }
-
- /**
- * @param shift the shift to set
- */
- public void setShift(int windowShift) {
- this.windowShift = windowShift;
- }
-
- /**
- * @return the numberEvents
- */
- public int getNumberEvents() {
- return numberEvents;
- }
-
- /**
- * @param numberEvents the numberEvents to set
- */
- public void setNumberEvents(int numberEvents) {
- this.numberEvents = numberEvents;
- }
-
-/* *//**
- * @return the eventsInWindow
- *//*
- public int getNumberEventsInWindow() {
- return this.eventsInWindow.size();
- }
-
- *//**
- * @return the eventsInWindow
- *//*
- public List<Event> getEventsInWindow() {
- return eventsInWindow;
- }
-
- *//**
- * @param eventsInWindow the eventsInWindow to set
- *//*
- public void setEventsInWindow(List<Event> eventsInWindow) {
- this.eventsInWindow = eventsInWindow;
- }
-
- *//**
- * @param additionalEventsInWindow the additional events in window to add
- *//*
- public void addEventsInWindow(List<Event> additionalEventsInWindow) {
- this.eventsInWindow.addAll(additionalEventsInWindow);
- }
-
- *//**
- * @param expiredEventsInWindow the events in window to remove
- *//*
- public void removeEventsInWindow(List<Event> expiredEventsInWindow) {
- this.eventsInWindow.removeAll(expiredEventsInWindow);
- }*/
-
- /**
- * @return the parentId
- */
- public String getParentId() {
- return parentId;
- }
-
- /**
- * @param parentId the parentId to set
- */
- public void setParentId(String parentId) {
- this.parentId = parentId;
- }
-
- /**
- * Advances the sliding window
- */
- public void advance() {
- this.windowStart += this.windowShift;
- this.windowEnd += this.windowShift;
- //System.out.println ("Sliding window "+this.getId()+" is reset to "+Tools.formattedInterval(this.windowStart, this.windowEnd));
- }
-
- /**
- * @return the lastUpdate
- */
- public long getLastUpdate() {
- return lastUpdate;
- }
-
- /**
- * @param lastUpdate the lastUpdate to set
- */
- public void setLastUpdate(long lastUpdate) {
- this.lastUpdate = lastUpdate;
- }
-
- /**
- * @return the state
- */
- public int getState() {
- return state;
- }
-
- /**
- * @param state the state to set
- */
- public void setState(int state) {
- this.state = state;
- }
-
- /**
- * @return the readyForAction
- */
- public boolean isReadyToEvaluate() {
- return readyToEvaluate;
- }
-
- /**
- * @param readyForAction the readyForAction to set
- */
- public void setReadyToEvaluate(boolean readyToEvaluate) {
- this.readyToEvaluate = readyToEvaluate;
- }
-
- /**
- * @return the workingFreezersCount
- *//*
- public int getWorkingFreezersCount() {
- return workingFreezersCount;
- }
-
- *//**
- * @param workingFreezersCount the workingFreezersCount to set
- *//*
- public void setWorkingFreezersCount(int workingFreezersCount) {
- this.workingFreezersCount = workingFreezersCount;
- }
-
- *//**
- * @return the workingFridgesCount
- *//*
- public int getWorkingFridgesCount() {
- return workingFridgesCount;
- }
-
- *//**
- * @param workingFridgesCount the workingFridgesCount to set
- *//*
- public void setWorkingFridgesCount(int workingFridgesCount) {
- this.workingFridgesCount = workingFridgesCount;
- }
-
- public int getDefectiveFridgesCount() {
- return defectiveFridgesCount;
- }
-
- public void setDefectiveFridgesCount(int defectiveFridgesCount) {
- this.defectiveFridgesCount = defectiveFridgesCount;
- }
-
- public int getDefectiveFreezersCount() {
- return defectiveFreezersCount;
- }
-
- public void setDefectiveFreezersCount(int defectiveFreezersCount) {
- this.defectiveFreezersCount = defectiveFreezersCount;
- }
-
- public int getWorkingDevicesCount() {
- return workingFridgesCount+workingFreezersCount;
- }
-
- public int getDefectiveDevicesCount() {
- return defectiveFridgesCount+defectiveFreezersCount;
- }
-
- public int getOverallFridgesCount() {
- return getWorkingFridgesCount()+getDefectiveFridgesCount();
- }
-
- public int getOverallFreezersCount() {
- return getWorkingFreezersCount()+getDefectiveFreezersCount();
- }
-
- public int getOverallDevicesCount() {
- return getWorkingDevicesCount()+getDefectiveDevicesCount();
- }
-
- public double getWorkingFridgesRatio() {
- if (getOverallFridgesCount() == 0)
- return 0;
- return (double)getWorkingFridgesCount()/getOverallFridgesCount();
- }
-
- public double getDefectiveFridgesRatio() {
- if (getOverallFridgesCount() == 0)
- return 0;
- return (double)getDefectiveFridgesCount()/getOverallFridgesCount();
- }
-
- public double getWorkingFreezersRatio() {
- if (getOverallFreezersCount() == 0)
- return 0;
- return (double)getWorkingFreezersCount()/getOverallFreezersCount();
- }
-
- public double getDefectiveFreezersRatio() {
- if (getOverallFreezersCount() == 0)
- return 0;
- return (double)getDefectiveFreezersCount()/getOverallFreezersCount();
- }
-
- public double getWorkingDevicesRatio() {
- if (getOverallDevicesCount() == 0)
- return 0;
- return (double)getWorkingDevicesCount()/getOverallDevicesCount();
- }
-
- public double getDefectiveDevicesRatio() {
- if (getOverallDevicesCount() == 0)
- return 0;
- return (double)getDefectiveDevicesCount()/getOverallDevicesCount();
- }*/
-
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/SlidingWindow.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/SlidingWindow.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/SlidingWindow.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/SlidingWindow.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,312 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator.example;
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class SlidingWindow {
+
+ // Sliding window states names
+ public static final String[] SW_STATES = {"Default", "Collecting", "Evaluating", "Advancing"};
+
+ public static final int DEFAULT = 0;
+ public static final int COLLECT = 1;
+ public static final int EVALUATE = 2;
+ public static final int ADVANCE = 3;
+
+ private static int idCounter = 0;
+
+ private int id, state;
+ private boolean readyToEvaluate;
+ private String parentId;
+ private long windowStart, windowEnd, lastUpdate;
+ private long windowLength, windowShift;
+ //private List<Event> eventsInWindow;
+ int numberEvents;
+ /*private int defectiveFridgesCount, defectiveFreezersCount;
+ private int workingFridgesCount, workingFreezersCount;*/
+
+ public SlidingWindow(long wStart, String parentId, long windowLength, long windowShift) {
+ this.id = idCounter++;
+ this.readyToEvaluate = false;
+ this.state = DEFAULT;
+ this.parentId = parentId;
+ this.windowStart = wStart;
+ this.windowEnd = this.windowStart + windowLength;
+ this.lastUpdate = wStart;
+ this.windowLength = windowLength;
+ this.windowShift = windowShift;
+ //this.eventsInWindow = new ArrayList<Event>();
+ this.numberEvents = 0;
+ //System.out.println ("Sliding window "+this.id+" expires at "+Tools.formattedDate(this.windowEnd));
+ }
+
+ /**
+ * @return the id
+ */
+ public String getId() {
+ return "sw"+id;
+ }
+
+ public long getWindowStart() {
+ return windowStart;
+ }
+
+ public void setWindowStart(long start) {
+ this.windowStart = start;
+ }
+
+ public long getWindowEnd() {
+ return windowEnd;
+ }
+
+ public void setWindowEnd(long end) {
+ this.windowEnd = end;
+ }
+
+ /**
+ * @return the windowLength
+ */
+ public long getWindowLength() {
+ return windowLength;
+ }
+
+ /**
+ * @param windowLength the windowLength to set
+ */
+ public void setWindowLength(int windowLength) {
+ this.windowLength = windowLength;
+ }
+
+ /**
+ * @return the shift
+ */
+ public long getWindowShift() {
+ return windowShift;
+ }
+
+ /**
+ * @param shift the shift to set
+ */
+ public void setShift(int windowShift) {
+ this.windowShift = windowShift;
+ }
+
+ /**
+ * @return the numberEvents
+ */
+ public int getNumberEvents() {
+ return numberEvents;
+ }
+
+ /**
+ * @param numberEvents the numberEvents to set
+ */
+ public void setNumberEvents(int numberEvents) {
+ this.numberEvents = numberEvents;
+ }
+
+/* *//**
+ * @return the eventsInWindow
+ *//*
+ public int getNumberEventsInWindow() {
+ return this.eventsInWindow.size();
+ }
+
+ *//**
+ * @return the eventsInWindow
+ *//*
+ public List<Event> getEventsInWindow() {
+ return eventsInWindow;
+ }
+
+ *//**
+ * @param eventsInWindow the eventsInWindow to set
+ *//*
+ public void setEventsInWindow(List<Event> eventsInWindow) {
+ this.eventsInWindow = eventsInWindow;
+ }
+
+ *//**
+ * @param additionalEventsInWindow the additional events in window to add
+ *//*
+ public void addEventsInWindow(List<Event> additionalEventsInWindow) {
+ this.eventsInWindow.addAll(additionalEventsInWindow);
+ }
+
+ *//**
+ * @param expiredEventsInWindow the events in window to remove
+ *//*
+ public void removeEventsInWindow(List<Event> expiredEventsInWindow) {
+ this.eventsInWindow.removeAll(expiredEventsInWindow);
+ }*/
+
+ /**
+ * @return the parentId
+ */
+ public String getParentId() {
+ return parentId;
+ }
+
+ /**
+ * @param parentId the parentId to set
+ */
+ public void setParentId(String parentId) {
+ this.parentId = parentId;
+ }
+
+ /**
+ * Advances the sliding window
+ */
+ public void advance() {
+ this.windowStart += this.windowShift;
+ this.windowEnd += this.windowShift;
+ //System.out.println ("Sliding window "+this.getId()+" is reset to "+Tools.formattedInterval(this.windowStart, this.windowEnd));
+ }
+
+ /**
+ * @return the lastUpdate
+ */
+ public long getLastUpdate() {
+ return lastUpdate;
+ }
+
+ /**
+ * @param lastUpdate the lastUpdate to set
+ */
+ public void setLastUpdate(long lastUpdate) {
+ this.lastUpdate = lastUpdate;
+ }
+
+ /**
+ * @return the state
+ */
+ public int getState() {
+ return state;
+ }
+
+ /**
+ * @param state the state to set
+ */
+ public void setState(int state) {
+ this.state = state;
+ }
+
+ /**
+ * @return the readyForAction
+ */
+ public boolean isReadyToEvaluate() {
+ return readyToEvaluate;
+ }
+
+ /**
+ * @param readyForAction the readyForAction to set
+ */
+ public void setReadyToEvaluate(boolean readyToEvaluate) {
+ this.readyToEvaluate = readyToEvaluate;
+ }
+
+ /**
+ * @return the workingFreezersCount
+ *//*
+ public int getWorkingFreezersCount() {
+ return workingFreezersCount;
+ }
+
+ *//**
+ * @param workingFreezersCount the workingFreezersCount to set
+ *//*
+ public void setWorkingFreezersCount(int workingFreezersCount) {
+ this.workingFreezersCount = workingFreezersCount;
+ }
+
+ *//**
+ * @return the workingFridgesCount
+ *//*
+ public int getWorkingFridgesCount() {
+ return workingFridgesCount;
+ }
+
+ *//**
+ * @param workingFridgesCount the workingFridgesCount to set
+ *//*
+ public void setWorkingFridgesCount(int workingFridgesCount) {
+ this.workingFridgesCount = workingFridgesCount;
+ }
+
+ public int getDefectiveFridgesCount() {
+ return defectiveFridgesCount;
+ }
+
+ public void setDefectiveFridgesCount(int defectiveFridgesCount) {
+ this.defectiveFridgesCount = defectiveFridgesCount;
+ }
+
+ public int getDefectiveFreezersCount() {
+ return defectiveFreezersCount;
+ }
+
+ public void setDefectiveFreezersCount(int defectiveFreezersCount) {
+ this.defectiveFreezersCount = defectiveFreezersCount;
+ }
+
+ public int getWorkingDevicesCount() {
+ return workingFridgesCount+workingFreezersCount;
+ }
+
+ public int getDefectiveDevicesCount() {
+ return defectiveFridgesCount+defectiveFreezersCount;
+ }
+
+ public int getOverallFridgesCount() {
+ return getWorkingFridgesCount()+getDefectiveFridgesCount();
+ }
+
+ public int getOverallFreezersCount() {
+ return getWorkingFreezersCount()+getDefectiveFreezersCount();
+ }
+
+ public int getOverallDevicesCount() {
+ return getWorkingDevicesCount()+getDefectiveDevicesCount();
+ }
+
+ public double getWorkingFridgesRatio() {
+ if (getOverallFridgesCount() == 0)
+ return 0;
+ return (double)getWorkingFridgesCount()/getOverallFridgesCount();
+ }
+
+ public double getDefectiveFridgesRatio() {
+ if (getOverallFridgesCount() == 0)
+ return 0;
+ return (double)getDefectiveFridgesCount()/getOverallFridgesCount();
+ }
+
+ public double getWorkingFreezersRatio() {
+ if (getOverallFreezersCount() == 0)
+ return 0;
+ return (double)getWorkingFreezersCount()/getOverallFreezersCount();
+ }
+
+ public double getDefectiveFreezersRatio() {
+ if (getOverallFreezersCount() == 0)
+ return 0;
+ return (double)getDefectiveFreezersCount()/getOverallFreezersCount();
+ }
+
+ public double getWorkingDevicesRatio() {
+ if (getOverallDevicesCount() == 0)
+ return 0;
+ return (double)getWorkingDevicesCount()/getOverallDevicesCount();
+ }
+
+ public double getDefectiveDevicesRatio() {
+ if (getOverallDevicesCount() == 0)
+ return 0;
+ return (double)getDefectiveDevicesCount()/getOverallDevicesCount();
+ }*/
+
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Status.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Status.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Status.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,149 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator.example;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-
-/**
- * @author Matthias Groch
- *
- */
-public class Status {
-
- // Status names
- public static final String[] STATUS_NAMES = {"Operational status"};
-
- public static final int OPERATIONAL = 0;
-
- ////////////////////////////////////////////////////////////////////
-
- private int id;
- private String resourceId;
- private List<String> valueList;
- private int currentValue;
- private long hasValueSince;
-
- /**
- * @param id The status name.
- * @param resourceId The id of the corresponding resource.
- */
- public Status(int id, String resourceId) {
- this.id = id;
- this.resourceId = resourceId;
- this.valueList = new ArrayList<String>();
- this.hasValueSince = 0;
- }
-
- /**
- * @param id The status name.
- * @param resourceId The id of the corresponding resource.
- * @param currentValue current value of the status.
- */
- public Status(int id, String resourceId, int currentValue) {
- this (id, resourceId);
- this.currentValue = currentValue;
- }
-
- /**
- * @param id The status name.
- * @param resourceId The id of the corresponding resource.
- * @param valueList The values this status can have.
- * @param currentValue current value of the status.
- */
- public Status(int id, String resourceId, String[] valueList, int currentValue) {
- this (id, resourceId, currentValue);
- this.addValues(valueList);
- }
-
- /**
- * @return the status id
- */
- public int getId() {
- return this.id;
- }
-
- /**
- * @param name the status id to set
- */
- public void setId(int id) {
- this.id = id;
- }
-
- /**
- * @return the resourceId
- */
- public String getResourceId() {
- return resourceId;
- }
-
- /**
- * @param resourceId the resourceId to set
- */
- public void setResourceId(String resourceId) {
- this.resourceId = resourceId;
- }
-
- /**
- * @return the currentValue
- */
- public int getCurrentValue() {
- return currentValue;
- }
-
- /**
- * @param currentValue the currentValue to set
- */
- public void setCurrentValue(int currentValue, long sinceWhen) {
- this.currentValue = currentValue;
- this.hasValueSince = sinceWhen;
- }
-
- /**
- * @param oldValue the oldValue to set
- * @param newValue the newValue to set
- */
- public void switchCurrentValue(int oldValue, int newValue, long sinceWhen) {
- if (this.currentValue == oldValue)
- this.setCurrentValue(newValue, sinceWhen);
- }
-
- /**
- * @param oldValue the oldValue to set
- * @param newValue the newValue to set
- */
- public void switchCurrentValue(String oldValue, String newValue, long sinceWhen) {
- this.switchCurrentValue (Integer.parseInt(oldValue), Integer.parseInt(newValue), sinceWhen);
- }
-
- /**
- * @param currentValue the currentValue to set
- *//*
- public void setCurrentValue(int currentValue) {
- setCurrentValue (currentValue, (Calendar)Calendar.getInstance().clone());
- }*/
-
- /**
- * @return the valueList
- */
- public String[] getValueList() {
- return (String[]) valueList.toArray();
- }
-
- /**
- * @param valueList the valueList to set
- */
- public void addValues(String[] valueList) {
- this.valueList.addAll(Arrays.asList(valueList));
- }
-
- /**
- * @return the hasValueSince
- */
- public long getHasValueSince() {
- return hasValueSince;
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Status.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Status.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Status.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Status.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,149 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator.example;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class Status {
+
+ // Status names
+ public static final String[] STATUS_NAMES = {"Operational status"};
+
+ public static final int OPERATIONAL = 0;
+
+ ////////////////////////////////////////////////////////////////////
+
+ private int id;
+ private String resourceId;
+ private List<String> valueList;
+ private int currentValue;
+ private long hasValueSince;
+
+ /**
+ * @param id The status name.
+ * @param resourceId The id of the corresponding resource.
+ */
+ public Status(int id, String resourceId) {
+ this.id = id;
+ this.resourceId = resourceId;
+ this.valueList = new ArrayList<String>();
+ this.hasValueSince = 0;
+ }
+
+ /**
+ * @param id The status name.
+ * @param resourceId The id of the corresponding resource.
+ * @param currentValue current value of the status.
+ */
+ public Status(int id, String resourceId, int currentValue) {
+ this (id, resourceId);
+ this.currentValue = currentValue;
+ }
+
+ /**
+ * @param id The status name.
+ * @param resourceId The id of the corresponding resource.
+ * @param valueList The values this status can have.
+ * @param currentValue current value of the status.
+ */
+ public Status(int id, String resourceId, String[] valueList, int currentValue) {
+ this (id, resourceId, currentValue);
+ this.addValues(valueList);
+ }
+
+ /**
+ * @return the status id
+ */
+ public int getId() {
+ return this.id;
+ }
+
+ /**
+ * @param name the status id to set
+ */
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the resourceId
+ */
+ public String getResourceId() {
+ return resourceId;
+ }
+
+ /**
+ * @param resourceId the resourceId to set
+ */
+ public void setResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ }
+
+ /**
+ * @return the currentValue
+ */
+ public int getCurrentValue() {
+ return currentValue;
+ }
+
+ /**
+ * @param currentValue the currentValue to set
+ */
+ public void setCurrentValue(int currentValue, long sinceWhen) {
+ this.currentValue = currentValue;
+ this.hasValueSince = sinceWhen;
+ }
+
+ /**
+ * @param oldValue the oldValue to set
+ * @param newValue the newValue to set
+ */
+ public void switchCurrentValue(int oldValue, int newValue, long sinceWhen) {
+ if (this.currentValue == oldValue)
+ this.setCurrentValue(newValue, sinceWhen);
+ }
+
+ /**
+ * @param oldValue the oldValue to set
+ * @param newValue the newValue to set
+ */
+ public void switchCurrentValue(String oldValue, String newValue, long sinceWhen) {
+ this.switchCurrentValue (Integer.parseInt(oldValue), Integer.parseInt(newValue), sinceWhen);
+ }
+
+ /**
+ * @param currentValue the currentValue to set
+ *//*
+ public void setCurrentValue(int currentValue) {
+ setCurrentValue (currentValue, (Calendar)Calendar.getInstance().clone());
+ }*/
+
+ /**
+ * @return the valueList
+ */
+ public String[] getValueList() {
+ return (String[]) valueList.toArray();
+ }
+
+ /**
+ * @param valueList the valueList to set
+ */
+ public void addValues(String[] valueList) {
+ this.valueList.addAll(Arrays.asList(valueList));
+ }
+
+ /**
+ * @return the hasValueSince
+ */
+ public long getHasValueSince() {
+ return hasValueSince;
+ }
+
+}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/StatusChangedEvent.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/StatusChangedEvent.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/StatusChangedEvent.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,78 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator.example;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.drools.integrationtests.eventgenerator.Event;
-
-/**
- * @author Matthias Groch
- *
- */
-public class StatusChangedEvent extends Event {
-
- public static final String[] PROPERTY_FIELD_NAMES = {"OldValue", "NewValue"};
-
- public static final int OLD_VALUE = 0;
- public static final int NEW_VALUE = 1;
-
- /**
- * Special constructor for a statusChanged event
- * @param parentId The id of the corresponding site, resource, ...
- */
- public StatusChangedEvent(String parentId, int oldValue, int newValue) {
- super(EventType.STATUSCHANGED, parentId);
- addParameters(createStatusChangedParameters(oldValue, newValue));
- }
-
- /**
- * Special constructor for a statusChanged event
- * @param parentId The id of the corresponding site, resource, ...
- * @param start The start instance of the event.
- * @param end The end instance of the event.
- * @param parameters The event parameters.
- */
- public StatusChangedEvent(String parentId, long start, long end) {
- super(EventType.STATUSCHANGED, parentId, start, end);
- }
-
- /**
- * Special constructor for a statusChanged event
- * @param parentId The id of the corresponding site, resource, ...
- * @param start The start instance of the event.
- * @param end The end instance of the event.
- * @param parameters The event parameters.
- */
- public StatusChangedEvent(String parentId, int oldValue, int newValue, long start, long end) {
- super(EventType.STATUSCHANGED, parentId, start, end);
- addParameters(createStatusChangedParameters(oldValue, newValue));
- }
-
- private static Map<String, String> createStatusChangedParameters(int oldValue, int newValue){
- Map<String, String> params = new HashMap<String, String>();
- params.put(PROPERTY_FIELD_NAMES[OLD_VALUE], String.valueOf(oldValue));
- params.put(PROPERTY_FIELD_NAMES[NEW_VALUE], String.valueOf(newValue));
- return params;
- }
-
- /**
- * @return value of the oldValue parameter if such a parameter exists, null otherwise
- */
- public String getParamOldValue() {
- if (this.getParameters().containsKey(PROPERTY_FIELD_NAMES[OLD_VALUE]))
- return this.getParamValue(PROPERTY_FIELD_NAMES[OLD_VALUE]);
- return null;
- }
-
- /**
- * @return value of the newValue parameter if such a parameter exists, null otherwise
- */
- public String getParamNewValue() {
- if (this.getParameters().containsKey(PROPERTY_FIELD_NAMES[NEW_VALUE]))
- return this.getParamValue(PROPERTY_FIELD_NAMES[NEW_VALUE]);
- return null;
- }
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/StatusChangedEvent.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/StatusChangedEvent.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/StatusChangedEvent.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/StatusChangedEvent.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,78 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator.example;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.integrationtests.eventgenerator.Event;
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class StatusChangedEvent extends Event {
+
+ public static final String[] PROPERTY_FIELD_NAMES = {"OldValue", "NewValue"};
+
+ public static final int OLD_VALUE = 0;
+ public static final int NEW_VALUE = 1;
+
+ /**
+ * Special constructor for a statusChanged event
+ * @param parentId The id of the corresponding site, resource, ...
+ */
+ public StatusChangedEvent(String parentId, int oldValue, int newValue) {
+ super(EventType.STATUSCHANGED, parentId);
+ addParameters(createStatusChangedParameters(oldValue, newValue));
+ }
+
+ /**
+ * Special constructor for a statusChanged event
+ * @param parentId The id of the corresponding site, resource, ...
+ * @param start The start instance of the event.
+ * @param end The end instance of the event.
+ * @param parameters The event parameters.
+ */
+ public StatusChangedEvent(String parentId, long start, long end) {
+ super(EventType.STATUSCHANGED, parentId, start, end);
+ }
+
+ /**
+ * Special constructor for a statusChanged event
+ * @param parentId The id of the corresponding site, resource, ...
+ * @param start The start instance of the event.
+ * @param end The end instance of the event.
+ * @param parameters The event parameters.
+ */
+ public StatusChangedEvent(String parentId, int oldValue, int newValue, long start, long end) {
+ super(EventType.STATUSCHANGED, parentId, start, end);
+ addParameters(createStatusChangedParameters(oldValue, newValue));
+ }
+
+ private static Map<String, String> createStatusChangedParameters(int oldValue, int newValue){
+ Map<String, String> params = new HashMap<String, String>();
+ params.put(PROPERTY_FIELD_NAMES[OLD_VALUE], String.valueOf(oldValue));
+ params.put(PROPERTY_FIELD_NAMES[NEW_VALUE], String.valueOf(newValue));
+ return params;
+ }
+
+ /**
+ * @return value of the oldValue parameter if such a parameter exists, null otherwise
+ */
+ public String getParamOldValue() {
+ if (this.getParameters().containsKey(PROPERTY_FIELD_NAMES[OLD_VALUE]))
+ return this.getParamValue(PROPERTY_FIELD_NAMES[OLD_VALUE]);
+ return null;
+ }
+
+ /**
+ * @return value of the newValue parameter if such a parameter exists, null otherwise
+ */
+ public String getParamNewValue() {
+ if (this.getParameters().containsKey(PROPERTY_FIELD_NAMES[NEW_VALUE]))
+ return this.getParamValue(PROPERTY_FIELD_NAMES[NEW_VALUE]);
+ return null;
+ }
+}
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Tools.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Tools.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Tools.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,41 +0,0 @@
-/**
- *
- */
-package org.drools.integrationtests.eventgenerator.example;
-
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-
-/**
- * @author Matthias Groch
- *
- */
-public class Tools {
-
- // Utitlity functions for console output
- public static String formattedDate (Calendar date){
- return
- ((date.get(Calendar.HOUR_OF_DAY) < 10)? "0" : "") + date.get(Calendar.HOUR_OF_DAY) + ":" +
- ((date.get(Calendar.MINUTE) < 10)? "0" : "") + date.get(Calendar.MINUTE) + ":" +
- ((date.get(Calendar.SECOND) < 10)? "0" : "") + date.get(Calendar.SECOND) + "." +
- ((date.get(Calendar.MILLISECOND) < 10)? "0" : "") + ((date.get(Calendar.MILLISECOND) < 100)? "0" : "") + date.get(Calendar.MILLISECOND);
- }
-
- public static String formattedDate (long dateInMillis){
- Calendar date = new GregorianCalendar();
- date.setTimeInMillis(dateInMillis);
- return formattedDate(date);
- }
-
- public static String formattedInterval(Calendar start, Calendar end){
- return "["+Tools.formattedDate(start)+".."+Tools.formattedDate(end)+"]";
- }
-
- public static String formattedInterval(long start, long end){
- return "["+Tools.formattedDate(start)+".."+Tools.formattedDate(end)+"]";
- }
-
- public static void drawLine(){
- System.out.println("----------------------------------------------------------------------------------------------------------------------------------");
- }
-}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Tools.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Tools.java)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Tools.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/eventgenerator/example/Tools.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,41 @@
+/**
+ *
+ */
+package org.drools.integrationtests.eventgenerator.example;
+
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
+/**
+ * @author Matthias Groch
+ *
+ */
+public class Tools {
+
+ // Utitlity functions for console output
+ public static String formattedDate (Calendar date){
+ return
+ ((date.get(Calendar.HOUR_OF_DAY) < 10)? "0" : "") + date.get(Calendar.HOUR_OF_DAY) + ":" +
+ ((date.get(Calendar.MINUTE) < 10)? "0" : "") + date.get(Calendar.MINUTE) + ":" +
+ ((date.get(Calendar.SECOND) < 10)? "0" : "") + date.get(Calendar.SECOND) + "." +
+ ((date.get(Calendar.MILLISECOND) < 10)? "0" : "") + ((date.get(Calendar.MILLISECOND) < 100)? "0" : "") + date.get(Calendar.MILLISECOND);
+ }
+
+ public static String formattedDate (long dateInMillis){
+ Calendar date = new GregorianCalendar();
+ date.setTimeInMillis(dateInMillis);
+ return formattedDate(date);
+ }
+
+ public static String formattedInterval(Calendar start, Calendar end){
+ return "["+Tools.formattedDate(start)+".."+Tools.formattedDate(end)+"]";
+ }
+
+ public static String formattedInterval(long start, long end){
+ return "["+Tools.formattedDate(start)+".."+Tools.formattedDate(end)+"]";
+ }
+
+ public static void drawLine(){
+ System.out.println("----------------------------------------------------------------------------------------------------------------------------------");
+ }
+}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/lang/RuleParserTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -101,8 +101,9 @@
final DrlParser parser = new DrlParser();
final PackageDescr pkg = parser.parse( new StringReader( source ) );
assertFalse( parser.hasErrors() );
- assertEquals( "foo.bar.baz", pkg.getName() );
- }
+ assertEquals( "foo.bar.baz",
+ pkg.getName() );
+ }
public void testCompilationUnit() throws Exception {
final String source = "package foo; import com.foo.Bar; import com.foo.Baz;";
@@ -2579,6 +2580,7 @@
assertEquals( "memberOf",
restr.getEvaluator() );
+ assertFalse( restr.isNegated() );
assertEquals( "$cities",
restr.getIdentifier() );
}
@@ -2603,8 +2605,9 @@
FieldConstraintDescr fieldConstr = (FieldConstraintDescr) pat.getConstraint().getDescrs().get( 0 );
VariableRestrictionDescr restr = (VariableRestrictionDescr) fieldConstr.getRestrictions().get( 0 );
- assertEquals( "not memberOf",
+ assertEquals( "memberOf",
restr.getEvaluator() );
+ assertTrue( restr.isNegated() );
assertEquals( "$cities",
restr.getIdentifier() );
}
@@ -3164,8 +3167,9 @@
FieldConstraintDescr fieldConstr = (FieldConstraintDescr) pat.getConstraint().getDescrs().get( 0 );
VariableRestrictionDescr restr = (VariableRestrictionDescr) fieldConstr.getRestrictions().get( 0 );
- assertEquals( "not contains",
+ assertEquals( "contains",
restr.getEvaluator() );
+ assertTrue( restr.isNegated() );
assertEquals( "$city",
restr.getIdentifier() );
}
@@ -3188,8 +3192,9 @@
FieldConstraintDescr fieldConstr = (FieldConstraintDescr) pat.getConstraint().getDescrs().get( 0 );
LiteralRestrictionDescr restr = (LiteralRestrictionDescr) fieldConstr.getRestrictions().get( 0 );
- assertEquals( "not matches",
+ assertEquals( "matches",
restr.getEvaluator() );
+ assertTrue( restr.isNegated() );
assertEquals( "[abc]*",
restr.getText() );
}
@@ -3391,8 +3396,9 @@
FieldConstraintDescr fieldConstr = (FieldConstraintDescr) pat.getConstraint().getDescrs().get( 0 );
QualifiedIdentifierRestrictionDescr restr = (QualifiedIdentifierRestrictionDescr) fieldConstr.getRestrictions().get( 0 );
- assertEquals( "not matches",
+ assertEquals( "matches",
restr.getEvaluator() );
+ assertTrue( restr.isNegated() );
assertEquals( "$c.property",
restr.getText() );
}
@@ -3592,6 +3598,125 @@
}
}
+ public void testPluggableOperators() throws Exception {
+ final DRLParser parser = parseResource( "pluggable_operators.drl" );
+ parser.compilation_unit();
+
+ assertFalse( "Parser should not have raised errors: " + parser.getErrorMessages().toString(),
+ parser.hasErrors() );
+
+ final PackageDescr pack = parser.getPackageDescr();
+ assertEquals( 1,
+ pack.getRules().size() );
+ final RuleDescr rule = (RuleDescr) pack.getRules().get( 0 );
+ assertEquals( 5,
+ rule.getLhs().getDescrs().size() );
+
+ final PatternDescr eventA = (PatternDescr) rule.getLhs().getDescrs().get( 0 );
+ assertEquals( "$a",
+ eventA.getIdentifier() );
+ assertEquals( "EventA",
+ eventA.getObjectType() );
+
+ final PatternDescr eventB = (PatternDescr) rule.getLhs().getDescrs().get( 1 );
+ assertEquals( "$b",
+ eventB.getIdentifier() );
+ assertEquals( "EventB",
+ eventB.getObjectType() );
+ assertEquals( 1,
+ eventB.getConstraint().getDescrs().size() );
+ final FieldConstraintDescr fcdB = (FieldConstraintDescr) eventB.getConstraint().getDescrs().get( 0 );
+ assertEquals( 1,
+ fcdB.getRestrictions().size() );
+ assertTrue( fcdB.getRestrictions().get( 0 ) instanceof VariableRestrictionDescr );
+ final VariableRestrictionDescr rb = (VariableRestrictionDescr) fcdB.getRestrictions().get( 0 );
+ assertEquals( "after",
+ rb.getEvaluator() );
+ assertEquals( "$a",
+ rb.getText() );
+ assertEquals( "1,10",
+ rb.getParameterText() );
+ assertFalse( rb.isNegated() );
+
+ final PatternDescr eventC = (PatternDescr) rule.getLhs().getDescrs().get( 2 );
+ assertEquals( "$c",
+ eventC.getIdentifier() );
+ assertEquals( "EventC",
+ eventC.getObjectType() );
+ assertEquals( 1,
+ eventC.getConstraint().getDescrs().size() );
+ final FieldConstraintDescr fcdC = (FieldConstraintDescr) eventC.getConstraint().getDescrs().get( 0 );
+ assertEquals( 1,
+ fcdC.getRestrictions().size() );
+ assertTrue( fcdC.getRestrictions().get( 0 ) instanceof VariableRestrictionDescr );
+ final VariableRestrictionDescr rc = (VariableRestrictionDescr) fcdC.getRestrictions().get( 0 );
+ assertEquals( "finishes",
+ rc.getEvaluator() );
+ assertEquals( "$b",
+ rc.getText() );
+ assertNull( rc.getParameterText() );
+ assertFalse( rc.isNegated() );
+
+ final PatternDescr eventD = (PatternDescr) rule.getLhs().getDescrs().get( 3 );
+ assertEquals( "$d",
+ eventD.getIdentifier() );
+ assertEquals( "EventD",
+ eventD.getObjectType() );
+ assertEquals( 1,
+ eventD.getConstraint().getDescrs().size() );
+ final FieldConstraintDescr fcdD = (FieldConstraintDescr) eventD.getConstraint().getDescrs().get( 0 );
+ assertEquals( 1,
+ fcdD.getRestrictions().size() );
+ assertTrue( fcdD.getRestrictions().get( 0 ) instanceof VariableRestrictionDescr );
+ final VariableRestrictionDescr rd = (VariableRestrictionDescr) fcdD.getRestrictions().get( 0 );
+ assertEquals( "starts",
+ rd.getEvaluator() );
+ assertEquals( "$a",
+ rd.getText() );
+ assertNull( rd.getParameterText() );
+ assertTrue( rd.isNegated() );
+
+ final PatternDescr eventE = (PatternDescr) rule.getLhs().getDescrs().get( 4 );
+ assertEquals( "$e",
+ eventE.getIdentifier() );
+ assertEquals( "EventE",
+ eventE.getObjectType() );
+ assertEquals( 1,
+ eventE.getConstraint().getDescrs().size() );
+ final FieldConstraintDescr fcdE = (FieldConstraintDescr) eventE.getConstraint().getDescrs().get( 0 );
+ assertEquals( 1,
+ fcdE.getRestrictions().size() );
+ assertTrue( fcdE.getRestrictions().get( 0 ) instanceof VariableRestrictionDescr );
+ final VariableRestrictionDescr re = (VariableRestrictionDescr) fcdE.getRestrictions().get( 0 );
+ assertEquals( "before",
+ re.getEvaluator() );
+ assertEquals( "$b",
+ re.getText() );
+ assertEquals( "1, 10",
+ re.getParameterText() );
+ assertTrue( re.isNegated() );
+ }
+
+ public void testEventImport() throws Exception {
+ final DRLParser parser = parseResource( "import_event.drl" );
+ parser.compilation_unit();
+
+ assertFalse( "Parser should not raise errors: " + parser.getErrorMessages().toString(),
+ parser.hasErrors() );
+
+ final PackageDescr pack = parser.getPackageDescr();
+
+ final List imports = pack.getImports();
+
+ assertEquals( 1,
+ imports.size() );
+
+ final ImportDescr descr = (ImportDescr) imports.get( 0 );
+
+ assertTrue( descr.isEvent() );
+
+ }
+
private DRLParser parse(final String text) throws Exception {
this.parser = newParser( newTokenStream( newLexer( newCharStream( text ) ) ) );
return this.parser;
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -14,7 +14,6 @@
import org.drools.base.ClassObjectType;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
-import org.drools.compiler.DialectConfiguration;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.PredicateDescr;
@@ -105,20 +104,21 @@
final Cheese cheddar = new Cheese( "cheddar",
10 );
final InternalFactHandle f0 = (InternalFactHandle) wm.insert( cheddar );
+ final InternalFactHandle f1 = (InternalFactHandle) wm.insert( stilton );
final ReteTuple tuple = new ReteTuple( f0 );
final PredicateContextEntry predicateContext = new PredicateContextEntry();
predicateContext.leftTuple = tuple;
assertTrue( predicate.isAllowedCachedLeft( predicateContext,
- stilton ) );
+ f1 ) );
cheddar.setPrice( 9 );
wm.update( f0,
cheddar );
assertFalse( predicate.isAllowedCachedLeft( predicateContext,
- stilton ) );
+ f1 ) );
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,7 +16,6 @@
import org.drools.base.evaluators.Operator;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
-import org.drools.compiler.DialectConfiguration;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.ReturnValueRestrictionDescr;
@@ -29,7 +28,7 @@
import org.drools.spi.FieldExtractor;
public class MVELReturnValueBuilderTest extends TestCase {
-
+
private ClassFieldExtractorCache cache;
public void setUp() {
@@ -42,18 +41,19 @@
PackageBuilder pkgBuilder = new PackageBuilder( pkg );
final PackageBuilderConfiguration conf = pkgBuilder.getPackageBuilderConfiguration();
- MVELDialect mvelDialect = ( MVELDialect ) pkgBuilder.getDialectRegistry().getDialect( "mvel" );
+ MVELDialect mvelDialect = (MVELDialect) pkgBuilder.getDialectRegistry().getDialect( "mvel" );
final InstrumentedBuildContent context = new InstrumentedBuildContent( conf,
pkg,
ruleDescr,
pkgBuilder.getDialectRegistry(),
mvelDialect );
-
+
final InstrumentedDeclarationScopeResolver declarationResolver = new InstrumentedDeclarationScopeResolver();
- final FieldExtractor extractor = cache.getExtractor( Cheese.class, "price",
- getClass().getClassLoader() );
-
+ final FieldExtractor extractor = cache.getExtractor( Cheese.class,
+ "price",
+ getClass().getClassLoader() );
+
final Pattern patternA = new Pattern( 0,
new ClassObjectType( int.class ) );
@@ -92,7 +92,8 @@
previousDeclarations,
localDeclarations,
requiredGlobals,
- ValueType.PINTEGER_TYPE.getEvaluator( Operator.EQUAL ) );
+ context.getConfiguration().getEvaluatorRegistry().getEvaluator( ValueType.PINTEGER_TYPE,
+ Operator.EQUAL ) );
builder.build( context,
usedIdentifiers,
@@ -118,14 +119,17 @@
final Cheese brie = new Cheese( "brie",
20 );
+ final InternalFactHandle f2 = (InternalFactHandle) wm.insert( brie );
+
assertTrue( returnValue.isAllowed( extractor,
- brie,
+ f2,
tuple,
wm ) );
brie.setPrice( 18 );
+ wm.update( f2, brie );
assertFalse( returnValue.isAllowed( extractor,
- brie,
+ f2,
tuple,
wm ) );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockRuleBase.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockRuleBase.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -4,9 +4,11 @@
import java.io.InputStream;
import java.util.List;
+import org.drools.ClockType;
import org.drools.RuleBase;
import org.drools.StatefulSession;
import org.drools.StatelessSession;
+import org.drools.TemporalSession;
import org.drools.event.RuleBaseEventListener;
import org.drools.rule.Package;
@@ -114,4 +116,15 @@
}
+ public TemporalSession newTemporalSession(ClockType clockType) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public TemporalSession newTemporalSession(boolean keepReference,
+ ClockType clockType) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/MockWorkingMemory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -27,6 +27,7 @@
import org.drools.event.WorkingMemoryEventListener;
import org.drools.event.WorkingMemoryEventSupport;
import org.drools.reteoo.LIANodePropagation;
+import org.drools.reteoo.ObjectTypeConf;
import org.drools.rule.Rule;
import org.drools.rule.TimeMachine;
import org.drools.ruleflow.common.instance.ProcessInstance;
@@ -413,4 +414,14 @@
return null;
}
+ public ObjectTypeConf getObjectTypeConf(Object object) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Map<Object, ObjectTypeConf> getObjectTypeConfMap() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/testframework/ScenarioRunnerTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -27,648 +27,882 @@
public class ScenarioRunnerTest extends RuleUnit {
- public void testPopulateFacts() throws Exception {
- Scenario sc = new Scenario();
- List facts = ls(
- new FactData("Cheese", "c1", ls(
- new FieldData("type", "cheddar"),
- new FieldData("price", "42") ), false),
- new FactData("Person", "p1", ls(
- new FieldData("name", "mic"),
- new FieldData("age", "=30 + 3") ), false) );
+ public void testPopulateFacts() throws Exception {
+ Scenario sc = new Scenario();
+ List facts = ls( new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "type",
+ "cheddar" ),
+ new FieldData( "price",
+ "42" ) ),
+ false ),
+ new FactData( "Person",
+ "p1",
+ ls( new FieldData( "name",
+ "mic" ),
+ new FieldData( "age",
+ "=30 + 3" ) ),
+ false ) );
- sc.fixtures.addAll(facts);
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
- resolver.addImport("org.drools.Person");
- ScenarioRunner runner = new ScenarioRunner(sc, resolver,
- new MockWorkingMemory());
+ sc.fixtures.addAll( facts );
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
+ resolver.addImport( "org.drools.Person" );
+ ScenarioRunner runner = new ScenarioRunner( sc,
+ resolver,
+ new MockWorkingMemory() );
- assertTrue(runner.populatedData.containsKey("c1"));
- assertTrue(runner.populatedData.containsKey("p1"));
+ assertTrue( runner.populatedData.containsKey( "c1" ) );
+ assertTrue( runner.populatedData.containsKey( "p1" ) );
- Cheese c = (Cheese) runner.populatedData.get("c1");
- assertEquals("cheddar", c.getType());
- assertEquals(42, c.getPrice());
+ Cheese c = (Cheese) runner.populatedData.get( "c1" );
+ assertEquals( "cheddar",
+ c.getType() );
+ assertEquals( 42,
+ c.getPrice() );
- Person p = (Person) runner.populatedData.get("p1");
- assertEquals("mic", p.getName());
- assertEquals(33, p.getAge());
+ Person p = (Person) runner.populatedData.get( "p1" );
+ assertEquals( "mic",
+ p.getName() );
+ assertEquals( 33,
+ p.getAge() );
- }
+ }
- public void testPopulateFactsWithExpressions() throws Exception {
- Scenario sc = new Scenario();
- List facts = ls(
- new FactData("Cheese", "c1", ls(
- new FieldData("type", "cheddar"),
- new FieldData("price", "42") ), false),
- new FactData("Cheese", "c2", ls(
- new FieldData("type", "= c1.type")), false) );
+ public void testPopulateFactsWithExpressions() throws Exception {
+ Scenario sc = new Scenario();
+ List facts = ls( new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "type",
+ "cheddar" ),
+ new FieldData( "price",
+ "42" ) ),
+ false ),
+ new FactData( "Cheese",
+ "c2",
+ ls( new FieldData( "type",
+ "= c1.type" ) ),
+ false ) );
- sc.fixtures.addAll(facts);
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
+ sc.fixtures.addAll( facts );
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
- ScenarioRunner runner = new ScenarioRunner(sc, resolver,
- new MockWorkingMemory());
+ ScenarioRunner runner = new ScenarioRunner( sc,
+ resolver,
+ new MockWorkingMemory() );
- assertTrue(runner.populatedData.containsKey("c1"));
- assertTrue(runner.populatedData.containsKey("c2"));
+ assertTrue( runner.populatedData.containsKey( "c1" ) );
+ assertTrue( runner.populatedData.containsKey( "c2" ) );
- Cheese c = (Cheese) runner.populatedData.get("c1");
- assertEquals("cheddar", c.getType());
- assertEquals(42, c.getPrice());
+ Cheese c = (Cheese) runner.populatedData.get( "c1" );
+ assertEquals( "cheddar",
+ c.getType() );
+ assertEquals( 42,
+ c.getPrice() );
- Cheese c2 = (Cheese) runner.populatedData.get("c2");
- assertEquals(c.getType(), c2.getType());
+ Cheese c2 = (Cheese) runner.populatedData.get( "c2" );
+ assertEquals( c.getType(),
+ c2.getType() );
- }
+ }
+ public void testPopulateNoData() throws Exception {
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
+ ScenarioRunner run = new ScenarioRunner( new Scenario(),
+ resolver,
+ new MockWorkingMemory() );
+ run.populatedData.clear();
+ Cheese c = new Cheese();
+ c.setType( "whee" );
+ c.setPrice( 1 );
+ run.populatedData.put( "x",
+ c );
- public void testPopulateNoData() throws Exception {
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
- ScenarioRunner run = new ScenarioRunner(new Scenario(), resolver, new MockWorkingMemory());
- run.populatedData.clear();
- Cheese c = new Cheese();
- c.setType("whee");
- c.setPrice(1);
- run.populatedData.put("x", c);
+ assertEquals( 1,
+ c.getPrice() );
- assertEquals(1, c.getPrice());
+ FactData fd = new FactData( "Cheese",
+ "x",
+ ls( new FieldData( "type",
+ "" ),
+ new FieldData( "price",
+ "42" ) ),
+ false );
- FactData fd = new FactData("Cheese", "x", ls(new FieldData("type", ""), new FieldData("price", "42")), false);
+ run.populateFields( fd,
+ run.populatedData,
+ c );
+ assertEquals( "whee",
+ c.getType() );
+ assertEquals( 42,
+ c.getPrice() );
+ }
- run.populateFields(fd, run.populatedData, c);
- assertEquals("whee", c.getType());
- assertEquals(42, c.getPrice());
- }
+ public void testVerifyFacts() throws Exception {
+ ScenarioRunner runner = new ScenarioRunner( new Scenario(),
+ null,
+ new MockWorkingMemory() );
+ Cheese f1 = new Cheese( "cheddar",
+ 42 );
+ runner.populatedData.put( "f1",
+ f1 );
+ Person f2 = new Person( "michael",
+ 33 );
+ runner.populatedData.put( "f2",
+ f2 );
- public void testVerifyFacts() throws Exception {
+ // test all true
+ VerifyFact vf = new VerifyFact();
+ vf.name = "f1";
+ vf.fieldValues = ls( new VerifyField( "type",
+ "cheddar",
+ "==" ),
+ new VerifyField( "price",
+ "42",
+ "==" ) );
- ScenarioRunner runner = new ScenarioRunner(new Scenario(), null,
- new MockWorkingMemory());
- Cheese f1 = new Cheese("cheddar", 42);
- runner.populatedData.put("f1", f1);
+ runner.verify( vf );
+ for ( int i = 0; i < vf.fieldValues.size(); i++ ) {
+ assertTrue( ((VerifyField) vf.fieldValues.get( i )).successResult );
+ }
- Person f2 = new Person("michael", 33);
- runner.populatedData.put("f2", f2);
+ vf = new VerifyFact();
+ vf.name = "f2";
+ vf.fieldValues = ls( new VerifyField( "name",
+ "michael",
+ "==" ),
+ new VerifyField( "age",
+ "33",
+ "==" ) );
- // test all true
- VerifyFact vf = new VerifyFact();
- vf.name = "f1";
- vf.fieldValues = ls(
- new VerifyField("type", "cheddar", "=="),
- new VerifyField("price", "42", "==") );
+ runner.verify( vf );
+ for ( int i = 0; i < vf.fieldValues.size(); i++ ) {
+ assertTrue( ((VerifyField) vf.fieldValues.get( i )).successResult );
+ }
- runner.verify(vf);
- for (int i = 0; i < vf.fieldValues.size(); i++) {
- assertTrue(( (VerifyField)vf.fieldValues.get(i)).successResult);
- }
+ // test one false
+ vf = new VerifyFact();
+ vf.name = "f2";
+ vf.fieldValues = ls( new VerifyField( "name",
+ "mark",
+ "==" ),
+ new VerifyField( "age",
+ "33",
+ "==" ) );
- vf = new VerifyFact();
- vf.name = "f2";
- vf.fieldValues = ls(
- new VerifyField("name", "michael", "=="),
- new VerifyField("age", "33", "==") );
+ runner.verify( vf );
+ assertFalse( ((VerifyField) vf.fieldValues.get( 0 )).successResult );
+ assertTrue( ((VerifyField) vf.fieldValues.get( 1 )).successResult );
- runner.verify(vf);
- for (int i = 0; i < vf.fieldValues.size(); i++) {
- assertTrue(((VerifyField)vf.fieldValues.get(i)).successResult);
- }
+ assertEquals( "michael",
+ ((VerifyField) vf.fieldValues.get( 0 )).actualResult );
+ assertEquals( "mark",
+ ((VerifyField) vf.fieldValues.get( 0 )).expected );
- // test one false
- vf = new VerifyFact();
- vf.name = "f2";
- vf.fieldValues = ls(new VerifyField("name", "mark", "=="),
- new VerifyField("age", "33", "==") );
+ // test 2 false
+ vf = new VerifyFact();
+ vf.name = "f2";
+ vf.fieldValues = ls( new VerifyField( "name",
+ "mark",
+ "==" ),
+ new VerifyField( "age",
+ "32",
+ "==" ) );
- runner.verify(vf);
- assertFalse(((VerifyField)vf.fieldValues.get(0)).successResult);
- assertTrue(( (VerifyField)vf.fieldValues.get(1)).successResult);
+ runner.verify( vf );
+ assertFalse( ((VerifyField) vf.fieldValues.get( 0 )).successResult );
+ assertFalse( ((VerifyField) vf.fieldValues.get( 1 )).successResult );
- assertEquals("michael", ((VerifyField)vf.fieldValues.get(0)).actualResult);
- assertEquals("mark", ((VerifyField)vf.fieldValues.get(0)).expected);
+ assertEquals( "michael",
+ ((VerifyField) vf.fieldValues.get( 0 )).actualResult );
+ assertEquals( "mark",
+ ((VerifyField) vf.fieldValues.get( 0 )).expected );
- // test 2 false
- vf = new VerifyFact();
- vf.name = "f2";
- vf.fieldValues = ls( new VerifyField("name", "mark", "=="),
- new VerifyField("age", "32", "==") );
+ assertEquals( "33",
+ ((VerifyField) vf.fieldValues.get( 1 )).actualResult );
+ assertEquals( "32",
+ ((VerifyField) vf.fieldValues.get( 1 )).expected );
- runner.verify(vf);
- assertFalse(((VerifyField)vf.fieldValues.get(0)).successResult);
- assertFalse(((VerifyField)vf.fieldValues.get(1)).successResult);
+ }
- assertEquals("michael", ((VerifyField)vf.fieldValues.get(0)).actualResult);
- assertEquals("mark", ((VerifyField)vf.fieldValues.get(0)).expected);
+ public void testVerifyFactsWithOperator() throws Exception {
+ ScenarioRunner runner = new ScenarioRunner( new Scenario(),
+ null,
+ new MockWorkingMemory() );
+ Cheese f1 = new Cheese( "cheddar",
+ 42 );
+ runner.populatedData.put( "f1",
+ f1 );
- assertEquals("33", ((VerifyField)vf.fieldValues.get(1)).actualResult);
- assertEquals("32", ((VerifyField)vf.fieldValues.get(1)).expected);
+ // test all true
+ VerifyFact vf = new VerifyFact();
+ vf.name = "f1";
+ vf.fieldValues = ls( new VerifyField( "type",
+ "cheddar",
+ "==" ),
+ new VerifyField( "price",
+ "4777",
+ "!=" ) );
+ runner.verify( vf );
+ for ( int i = 0; i < vf.fieldValues.size(); i++ ) {
+ assertTrue( ((VerifyField) vf.fieldValues.get( i )).successResult );
+ }
- }
+ vf = new VerifyFact();
+ vf.name = "f1";
+ vf.fieldValues = ls( new VerifyField( "type",
+ "cheddar",
+ "!=" ) );
+ runner.verify( vf );
+ assertFalse( ((VerifyField) vf.fieldValues.get( 0 )).successResult );
- public void testVerifyFactsWithOperator() throws Exception {
- ScenarioRunner runner = new ScenarioRunner(new Scenario(), null,
- new MockWorkingMemory());
- Cheese f1 = new Cheese("cheddar", 42);
- runner.populatedData.put("f1", f1);
+ }
- // test all true
- VerifyFact vf = new VerifyFact();
- vf.name = "f1";
- vf.fieldValues = ls(
- new VerifyField("type", "cheddar", "=="),
- new VerifyField("price", "4777", "!=") );
- runner.verify(vf);
- for (int i = 0; i < vf.fieldValues.size(); i++) {
- assertTrue(((VerifyField)vf.fieldValues.get(i)).successResult);
- }
+ public void testVerifyFactsWithExpression() throws Exception {
+ ScenarioRunner runner = new ScenarioRunner( new Scenario(),
+ null,
+ new MockWorkingMemory() );
+ Cheese f1 = new Cheese( "cheddar",
+ 42 );
+ runner.populatedData.put( "f1",
+ f1 );
+ f1.setPrice( 42 );
+ // test all true
+ VerifyFact vf = new VerifyFact();
+ vf.name = "f1";
+ vf.fieldValues = ls( new VerifyField( "price",
+ "= 40 + 2",
+ "==" ) );
+ runner.verify( vf );
- vf = new VerifyFact();
- vf.name = "f1";
- vf.fieldValues = ls(
- new VerifyField("type", "cheddar", "!="));
- runner.verify(vf);
- assertFalse(((VerifyField)vf.fieldValues.get(0)).successResult);
+ assertTrue( ((VerifyField) vf.fieldValues.get( 0 )).successResult );
+ }
- }
+ public void testVerifyFactExplanation() throws Exception {
+ ScenarioRunner runner = new ScenarioRunner( new Scenario(),
+ null,
+ new MockWorkingMemory() );
+ Cheese f1 = new Cheese();
+ f1.setType( null );
+ runner.populatedData.put( "f1",
+ f1 );
- public void testVerifyFactsWithExpression() throws Exception {
- ScenarioRunner runner = new ScenarioRunner(new Scenario(), null,
- new MockWorkingMemory());
- Cheese f1 = new Cheese("cheddar", 42);
- runner.populatedData.put("f1", f1);
- f1.setPrice(42);
- // test all true
- VerifyFact vf = new VerifyFact();
- vf.name = "f1";
- vf.fieldValues = ls(
- new VerifyField("price", "= 40 + 2", "==") );
- runner.verify(vf);
+ VerifyFact vf = new VerifyFact();
+ vf.name = "f1";
+ vf.fieldValues.add( new VerifyField( "type",
+ "boo",
+ "!=" ) );
- assertTrue(((VerifyField)vf.fieldValues.get(0)).successResult);
- }
+ runner.verify( vf );
+ VerifyField vfl = (VerifyField) vf.fieldValues.get( 0 );
+ assertEquals( "[f1] field [type] was not [boo].",
+ vfl.explanation );
- public void testVerifyFactExplanation() throws Exception {
- ScenarioRunner runner = new ScenarioRunner(new Scenario(), null,
- new MockWorkingMemory());
- Cheese f1 = new Cheese();
- f1.setType(null);
- runner.populatedData.put("f1", f1);
+ }
- VerifyFact vf = new VerifyFact();
- vf.name = "f1";
- vf.fieldValues.add(new VerifyField("type", "boo", "!="));
+ public void testVerifyFieldAndActualIsNull() throws Exception {
+ ScenarioRunner runner = new ScenarioRunner( new Scenario(),
+ null,
+ new MockWorkingMemory() );
+ Cheese f1 = new Cheese();
+ f1.setType( null );
+ runner.populatedData.put( "f1",
+ f1 );
- runner.verify(vf);
- VerifyField vfl = (VerifyField) vf.fieldValues.get(0);
- assertEquals("[f1] field [type] was not [boo].", vfl.explanation);
+ VerifyFact vf = new VerifyFact();
+ vf.name = "f1";
+ vf.fieldValues.add( new VerifyField( "type",
+ "boo",
+ "==" ) );
+ runner.verify( vf );
+ VerifyField vfl = (VerifyField) vf.fieldValues.get( 0 );
- }
+ assertEquals( "[f1] field [type] was [] expected [boo].",
+ vfl.explanation );
+ assertEquals( "boo",
+ vfl.expected );
+ assertEquals( "",
+ vfl.actualResult );
- public void testVerifyFieldAndActualIsNull() throws Exception {
- ScenarioRunner runner = new ScenarioRunner(new Scenario(), null,
- new MockWorkingMemory());
- Cheese f1 = new Cheese();
- f1.setType(null);
- runner.populatedData.put("f1", f1);
+ }
- VerifyFact vf = new VerifyFact();
- vf.name = "f1";
- vf.fieldValues.add(new VerifyField("type", "boo", "=="));
+ public void testDummyRunNoRules() throws Exception {
+ Scenario sc = new Scenario();
+ FactData[] facts = new FactData[]{new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "type",
+ "cheddar" ),
+ new FieldData( "price",
+ "42" ) ),
+ false )};
- runner.verify(vf);
- VerifyField vfl = (VerifyField) vf.fieldValues.get(0);
+ VerifyFact[] assertions = new VerifyFact[]{new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "cheddar",
+ "==" ),
+ new VerifyField( "price",
+ "42",
+ "==" ) ) )};
- assertEquals("[f1] field [type] was [] expected [boo].", vfl.explanation);
- assertEquals("boo", vfl.expected);
- assertEquals("", vfl.actualResult);
+ sc.fixtures.addAll( Arrays.asList( facts ) );
+ sc.fixtures.addAll( Arrays.asList( assertions ) );
- }
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
- public void testDummyRunNoRules() throws Exception {
- Scenario sc = new Scenario();
- FactData[] facts = new FactData[] { new FactData("Cheese", "c1",
- ls( new FieldData("type", "cheddar"),
- new FieldData("price", "42") ), false) };
+ MockWorkingMemory wm = new MockWorkingMemory();
+ ScenarioRunner runner = new ScenarioRunner( sc,
+ resolver,
+ wm );
+ assertEquals( 1,
+ wm.facts.size() );
+ assertEquals( runner.populatedData.get( "c1" ),
+ wm.facts.get( 0 ) );
- VerifyFact[] assertions = new VerifyFact[] { new VerifyFact("c1",
- ls( new VerifyField("type", "cheddar", "=="),
- new VerifyField("price", "42", "==") )) };
+ assertTrue( runner.populatedData.containsKey( "c1" ) );
+ VerifyFact vf = (VerifyFact) assertions[0];
+ for ( int i = 0; i < vf.fieldValues.size(); i++ ) {
+ assertTrue( ((VerifyField) vf.fieldValues.get( i )).successResult );
+ }
- sc.fixtures.addAll(Arrays.asList(facts));
- sc.fixtures.addAll(Arrays.asList(assertions));
+ }
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
+ public void testCountVerification() throws Exception {
- MockWorkingMemory wm = new MockWorkingMemory();
- ScenarioRunner runner = new ScenarioRunner(sc, resolver, wm);
- assertEquals(1, wm.facts.size());
- assertEquals(runner.populatedData.get("c1"), wm.facts.get(0));
+ Map<String, Integer> firingCounts = new HashMap<String, Integer>();
+ firingCounts.put( "foo",
+ 2 );
+ firingCounts.put( "bar",
+ 1 );
+ // and baz, we leave out
- assertTrue(runner.populatedData.containsKey("c1"));
- VerifyFact vf = (VerifyFact) assertions[0];
- for (int i = 0; i < vf.fieldValues.size(); i++) {
- assertTrue(((VerifyField)vf.fieldValues.get(i)).successResult);
- }
+ ScenarioRunner runner = new ScenarioRunner( new Scenario(),
+ null,
+ new MockWorkingMemory() );
+ VerifyRuleFired v = new VerifyRuleFired();
+ v.ruleName = "foo";
+ v.expectedFire = true;
+ runner.verify( v,
+ firingCounts );
+ assertTrue( v.successResult );
+ assertEquals( 2,
+ v.actualResult.intValue() );
- }
+ v = new VerifyRuleFired();
+ v.ruleName = "foo";
+ v.expectedFire = false;
+ runner.verify( v,
+ firingCounts );
+ assertFalse( v.successResult );
+ assertEquals( 2,
+ v.actualResult.intValue() );
+ assertNotNull( v.explanation );
- public void testCountVerification() throws Exception {
+ v = new VerifyRuleFired();
+ v.ruleName = "foo";
+ v.expectedCount = 2;
- Map<String, Integer> firingCounts = new HashMap<String, Integer>();
- firingCounts.put("foo", 2);
- firingCounts.put("bar", 1);
- // and baz, we leave out
+ runner.verify( v,
+ firingCounts );
+ assertTrue( v.successResult );
+ assertEquals( 2,
+ v.actualResult.intValue() );
- ScenarioRunner runner = new ScenarioRunner(new Scenario(), null,
- new MockWorkingMemory());
- VerifyRuleFired v = new VerifyRuleFired();
- v.ruleName = "foo";
- v.expectedFire = true;
- runner.verify(v, firingCounts);
- assertTrue(v.successResult);
- assertEquals(2, v.actualResult.intValue());
+ }
- v = new VerifyRuleFired();
- v.ruleName = "foo";
- v.expectedFire = false;
- runner.verify(v, firingCounts);
- assertFalse(v.successResult);
- assertEquals(2, v.actualResult.intValue());
- assertNotNull(v.explanation);
+ public void testTestingEventListener() throws Exception {
+ Scenario sc = new Scenario();
+ sc.rules.add( "foo" );
+ sc.rules.add( "bar" );
+ ExecutionTrace ext = new ExecutionTrace();
- v = new VerifyRuleFired();
- v.ruleName = "foo";
- v.expectedCount = 2;
+ sc.fixtures.add( ext );
- runner.verify(v, firingCounts);
- assertTrue(v.successResult);
- assertEquals(2, v.actualResult.intValue());
+ MockWorkingMemory wm = new MockWorkingMemory();
+ ScenarioRunner run = new ScenarioRunner( sc,
+ null,
+ wm );
+ assertEquals( wm,
+ run.workingMemory );
+ assertNotNull( wm.agendaEventListener );
+ assertTrue( wm.agendaEventListener instanceof TestingEventListener );
+ TestingEventListener lnr = (TestingEventListener) wm.agendaEventListener;
+ assertEquals( 2,
+ sc.rules.size() );
+ assertTrue( sc.rules.contains( "foo" ) );
+ assertTrue( sc.rules.contains( "bar" ) );
+ }
- }
+ public void testWithGlobals() throws Exception {
+ Scenario sc = new Scenario();
+ FactData[] facts = new FactData[]{new FactData( "Cheese",
+ "c2",
+ ls( new FieldData( "type",
+ "stilton" ) ),
+ false )};
+ sc.globals.add( new FactData( "Cheese",
+ "c",
+ ls( new FieldData( "type",
+ "cheddar" ) ),
+ false ) );
+ sc.fixtures.addAll( Arrays.asList( facts ) );
- public void testTestingEventListener() throws Exception {
- Scenario sc = new Scenario();
- sc.rules.add("foo"); sc.rules.add("bar");
- ExecutionTrace ext = new ExecutionTrace();
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
+ MockWorkingMemory wm = new MockWorkingMemory();
+ ScenarioRunner run = new ScenarioRunner( sc,
+ resolver,
+ wm );
+ assertEquals( 1,
+ wm.globals.size() );
+ assertEquals( 1,
+ run.globalData.size() );
+ assertEquals( 1,
+ run.populatedData.size() );
+ assertEquals( 1,
+ wm.facts.size() );
+ Cheese c = (Cheese) wm.globals.get( "c" );
+ assertEquals( "cheddar",
+ c.getType() );
+ Cheese c2 = (Cheese) wm.facts.get( 0 );
+ assertEquals( "stilton",
+ c2.getType() );
+ }
- sc.fixtures.add(ext);
+ @SuppressWarnings("deprecation")
+ // F**** dates in java. What a mess. Someone should die.
+ public void testSimulatedDate() throws Exception {
+ Scenario sc = new Scenario();
+ MockWorkingMemory wm = new MockWorkingMemory();
+ ScenarioRunner run = new ScenarioRunner( sc,
+ null,
+ wm );
+ TimeMachine tm = run.workingMemory.getTimeMachine();
- MockWorkingMemory wm = new MockWorkingMemory();
- ScenarioRunner run = new ScenarioRunner(sc, null, wm);
- assertEquals(wm, run.workingMemory);
- assertNotNull(wm.agendaEventListener);
- assertTrue(wm.agendaEventListener instanceof TestingEventListener);
- TestingEventListener lnr = (TestingEventListener) wm.agendaEventListener;
- assertEquals(2, sc.rules.size());
- assertTrue(sc.rules.contains("foo"));
- assertTrue(sc.rules.contains("bar"));
- }
+ // love you
+ long time = tm.getNow().getTimeInMillis();
- public void testWithGlobals() throws Exception {
- Scenario sc = new Scenario();
- FactData[] facts = new FactData[] {
- new FactData("Cheese", "c2", ls( new FieldData(
- "type", "stilton") ), false) };
- sc.globals.add(new FactData("Cheese", "c", ls( new FieldData(
- "type", "cheddar") ), false));
- sc.fixtures.addAll(Arrays.asList(facts));
+ Thread.sleep( 100 );
+ long future = tm.getNow().getTimeInMillis();
+ assertTrue( future > time );
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
+ ExecutionTrace ext = new ExecutionTrace();
+ ext.scenarioSimulatedDate = new Date( "10-Jul-1974" );
+ sc.fixtures.add( ext );
+ run = new ScenarioRunner( sc,
+ null,
+ wm );
+ tm = run.workingMemory.getTimeMachine();
- MockWorkingMemory wm = new MockWorkingMemory();
- ScenarioRunner run = new ScenarioRunner(sc, resolver, wm);
- assertEquals(1, wm.globals.size());
- assertEquals(1, run.globalData.size());
- assertEquals(1, run.populatedData.size());
- assertEquals(1, wm.facts.size());
+ long expected = ext.scenarioSimulatedDate.getTime();
+ assertEquals( expected,
+ tm.getNow().getTimeInMillis() );
+ Thread.sleep( 50 );
+ assertEquals( expected,
+ tm.getNow().getTimeInMillis() );
- Cheese c = (Cheese) wm.globals.get("c");
- assertEquals("cheddar", c.getType());
- Cheese c2 = (Cheese) wm.facts.get(0);
- assertEquals("stilton", c2.getType());
+ }
- }
+ public void testVerifyRuleFired() throws Exception {
+ ScenarioRunner runner = new ScenarioRunner( new Scenario(),
+ null,
+ new MockWorkingMemory() );
- @SuppressWarnings("deprecation")
- // F**** dates in java. What a mess. Someone should die.
- public void testSimulatedDate() throws Exception {
- Scenario sc = new Scenario();
- MockWorkingMemory wm = new MockWorkingMemory();
- ScenarioRunner run = new ScenarioRunner(sc, null, wm);
- TimeMachine tm = run.workingMemory.getTimeMachine();
+ VerifyRuleFired vr = new VerifyRuleFired( "qqq",
+ 42,
+ null );
+ Map<String, Integer> f = new HashMap<String, Integer>();
+ f.put( "qqq",
+ 42 );
+ f.put( "qaz",
+ 1 );
- // love you
- long time = tm.getNow().getTimeInMillis();
+ runner.verify( vr,
+ f );
+ assertTrue( vr.wasSuccessful() );
+ assertEquals( 42,
+ vr.actualResult.intValue() );
- Thread.sleep(100);
- long future = tm.getNow().getTimeInMillis();
- assertTrue(future > time);
+ vr = new VerifyRuleFired( "qqq",
+ 41,
+ null );
+ runner.verify( vr,
+ f );
+ assertFalse( vr.wasSuccessful() );
+ assertEquals( 42,
+ vr.actualResult.intValue() );
- ExecutionTrace ext = new ExecutionTrace();
- ext.scenarioSimulatedDate = new Date("10-Jul-1974");
- sc.fixtures.add(ext);
- run = new ScenarioRunner(sc, null, wm);
- tm = run.workingMemory.getTimeMachine();
+ vr = new VerifyRuleFired( "qaz",
+ 1,
+ null );
+ runner.verify( vr,
+ f );
+ assertTrue( vr.wasSuccessful() );
+ assertEquals( 1,
+ vr.actualResult.intValue() );
- long expected = ext.scenarioSimulatedDate.getTime();
- assertEquals(expected, tm.getNow().getTimeInMillis());
- Thread.sleep(50);
- assertEquals(expected, tm.getNow().getTimeInMillis());
+ vr = new VerifyRuleFired( "XXX",
+ null,
+ false );
+ runner.verify( vr,
+ f );
+ assertTrue( vr.wasSuccessful() );
+ assertEquals( 0,
+ vr.actualResult.intValue() );
- }
+ vr = new VerifyRuleFired( "qqq",
+ null,
+ true );
+ runner.verify( vr,
+ f );
+ assertTrue( vr.wasSuccessful() );
+ assertEquals( 42,
+ vr.actualResult.intValue() );
- public void testVerifyRuleFired() throws Exception {
- ScenarioRunner runner = new ScenarioRunner(new Scenario(), null,
- new MockWorkingMemory());
+ vr = new VerifyRuleFired( "qqq",
+ null,
+ false );
+ runner.verify( vr,
+ f );
+ assertFalse( vr.wasSuccessful() );
+ assertEquals( 42,
+ vr.actualResult.intValue() );
- VerifyRuleFired vr = new VerifyRuleFired("qqq", 42, null);
- Map<String, Integer> f = new HashMap<String, Integer>();
- f.put("qqq", 42);
- f.put("qaz", 1);
+ }
- runner.verify(vr, f);
- assertTrue(vr.wasSuccessful());
- assertEquals(42, vr.actualResult.intValue());
+ /**
+ * Do a kind of end to end test with some real rules.
+ */
+ public void testIntegrationWithSuccess() throws Exception {
- vr = new VerifyRuleFired("qqq", 41, null);
- runner.verify(vr, f);
- assertFalse(vr.wasSuccessful());
- assertEquals(42, vr.actualResult.intValue());
+ Scenario sc = new Scenario();
+ FactData[] facts = new FactData[]{new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "type",
+ "cheddar" ),
+ new FieldData( "price",
+ "42" ) ),
+ false )
- vr = new VerifyRuleFired("qaz", 1, null);
- runner.verify(vr, f);
- assertTrue(vr.wasSuccessful());
- assertEquals(1, vr.actualResult.intValue());
+ };
+ sc.globals.add( new FactData( "Person",
+ "p",
+ new ArrayList(),
+ false ) );
+ sc.fixtures.addAll( Arrays.asList( facts ) );
- vr = new VerifyRuleFired("XXX", null, false);
- runner.verify(vr, f);
- assertTrue(vr.wasSuccessful());
- assertEquals(0, vr.actualResult.intValue());
+ ExecutionTrace executionTrace = new ExecutionTrace();
- vr = new VerifyRuleFired("qqq", null, true);
- runner.verify(vr, f);
- assertTrue(vr.wasSuccessful());
- assertEquals(42, vr.actualResult.intValue());
+ sc.rules.add( "rule1" );
+ sc.rules.add( "rule2" );
+ sc.inclusive = true;
+ sc.fixtures.add( executionTrace );
- vr = new VerifyRuleFired("qqq", null, false);
- runner.verify(vr, f);
- assertFalse(vr.wasSuccessful());
- assertEquals(42, vr.actualResult.intValue());
+ Expectation[] assertions = new Expectation[5];
+ assertions[0] = new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "cheddar",
+ "==" )
- }
+ ) );
- /**
- * Do a kind of end to end test with some real rules.
- */
- public void testIntegrationWithSuccess() throws Exception {
+ assertions[1] = new VerifyFact( "p",
+ ls( new VerifyField( "name",
+ "rule1",
+ "==" ),
+ new VerifyField( "status",
+ "rule2",
+ "==" ) )
- Scenario sc = new Scenario();
- FactData[] facts = new FactData[] {
- new FactData("Cheese", "c1", ls(
- new FieldData("type", "cheddar"),
- new FieldData("price", "42") ), false)
+ );
- };
- sc.globals.add(new FactData("Person", "p", new ArrayList() , false));
- sc.fixtures.addAll(Arrays.asList(facts));
+ assertions[2] = new VerifyRuleFired( "rule1",
+ 1,
+ null );
+ assertions[3] = new VerifyRuleFired( "rule2",
+ 1,
+ null );
+ assertions[4] = new VerifyRuleFired( "rule3",
+ 1,
+ null );
- ExecutionTrace executionTrace = new ExecutionTrace();
+ sc.fixtures.addAll( Arrays.asList( assertions ) );
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
+ resolver.addImport( "org.drools.Person" );
- sc.rules.add("rule1");
- sc.rules.add("rule2");
- sc.inclusive = true;
- sc.fixtures.add(executionTrace);
+ WorkingMemory wm = getWorkingMemory( "test_rules2.drl" );
- Expectation[] assertions = new Expectation[5];
+ ScenarioRunner run = new ScenarioRunner( sc,
+ resolver,
+ (InternalWorkingMemory) wm );
- assertions[0] = new VerifyFact("c1", ls(
- new VerifyField("type", "cheddar", "==")
+ assertEquals( 3,
+ executionTrace.numberOfRulesFired.intValue() );
- ));
+ assertSame( run.scenario,
+ sc );
- assertions[1] = new VerifyFact("p", ls(
- new VerifyField("name", "rule1", "=="),
- new VerifyField("status", "rule2", "=="))
+ assertTrue( sc.wasSuccessful() );
- );
+ Person p = (Person) run.globalData.get( "p" );
+ assertEquals( "rule1",
+ p.getName() );
+ assertEquals( "rule2",
+ p.getStatus() );
+ assertEquals( 0,
+ p.getAge() );
- assertions[2] = new VerifyRuleFired("rule1", 1, null);
- assertions[3] = new VerifyRuleFired("rule2", 1, null);
- assertions[4] = new VerifyRuleFired("rule3", 1, null);
+ Thread.sleep( 50 );
- sc.fixtures.addAll(Arrays.asList(assertions));
+ assertTrue( (new Date()).after( sc.lastRunResult ) );
+ assertTrue( executionTrace.executionTimeResult != null );
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
- resolver.addImport("org.drools.Person");
+ }
- WorkingMemory wm = getWorkingMemory("test_rules2.drl");
+ public void testIntgerationStateful() throws Exception {
+ Scenario sc = new Scenario();
+ sc.fixtures.add( new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "price",
+ "1" ) ),
+ false ) );
+ ExecutionTrace ex = new ExecutionTrace();
+ sc.fixtures.add( ex );
+ sc.fixtures.add( new FactData( "Cheese",
+ "c2",
+ ls( new FieldData( "price",
+ "2" ) ),
+ false ) );
+ sc.fixtures.add( new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "rule1",
+ "==" ) ) ) );
+ ex = new ExecutionTrace();
+ sc.fixtures.add( ex );
+ sc.fixtures.add( new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "rule2",
+ "==" ) ) ) );
- ScenarioRunner run = new ScenarioRunner(sc, resolver, (InternalWorkingMemory) wm);
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
- assertEquals(3, executionTrace.numberOfRulesFired.intValue());
+ WorkingMemory wm = getWorkingMemory( "test_stateful.drl" );
+ ScenarioRunner run = new ScenarioRunner( sc,
+ resolver,
+ (InternalWorkingMemory) wm );
- assertSame(run.scenario, sc);
+ Cheese c1 = (Cheese) run.populatedData.get( "c1" );
+ Cheese c2 = (Cheese) run.populatedData.get( "c2" );
- assertTrue(sc.wasSuccessful());
+ assertEquals( "rule2",
+ c1.getType() );
+ assertEquals( "rule2",
+ c2.getType() );
- Person p = (Person) run.globalData.get("p");
- assertEquals("rule1", p.getName());
- assertEquals("rule2", p.getStatus());
- assertEquals(0, p.getAge());
+ assertTrue( sc.wasSuccessful() );
- Thread.sleep(50);
+ }
- assertTrue((new Date()).after(sc.lastRunResult));
- assertTrue(executionTrace.executionTimeResult != null);
+ public void testIntegrationWithModify() throws Exception {
+ Scenario sc = new Scenario();
+ sc.fixtures.add( new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "price",
+ "1" ) ),
+ false ) );
- }
+ sc.fixtures.add( new ExecutionTrace() );
- public void testIntgerationStateful() throws Exception {
- Scenario sc = new Scenario();
- sc.fixtures.add(new FactData("Cheese", "c1", ls(new FieldData("price", "1")), false));
- ExecutionTrace ex = new ExecutionTrace();
- sc.fixtures.add(ex);
- sc.fixtures.add(new FactData("Cheese", "c2", ls(new FieldData("price", "2")), false));
- sc.fixtures.add(new VerifyFact("c1", ls(new VerifyField("type", "rule1", "=="))));
- ex = new ExecutionTrace();
- sc.fixtures.add(ex);
- sc.fixtures.add(new VerifyFact("c1", ls(new VerifyField("type", "rule2", "=="))));
+ sc.fixtures.add( new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "rule1",
+ "==" ) ) ) );
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
+ sc.fixtures.add( new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "price",
+ "42" ) ),
+ true ) );
+ sc.fixtures.add( new ExecutionTrace() );
+ sc.fixtures.add( new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "rule3",
+ "==" ) ) ) );
- WorkingMemory wm = getWorkingMemory("test_stateful.drl");
- ScenarioRunner run = new ScenarioRunner(sc, resolver, (InternalWorkingMemory) wm);
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
- Cheese c1 = (Cheese) run.populatedData.get("c1");
- Cheese c2 = (Cheese) run.populatedData.get("c2");
+ WorkingMemory wm = getWorkingMemory( "test_stateful.drl" );
+ ScenarioRunner run = new ScenarioRunner( sc,
+ resolver,
+ (InternalWorkingMemory) wm );
- assertEquals("rule2", c1.getType());
- assertEquals("rule2", c2.getType());
+ Cheese c1 = (Cheese) run.populatedData.get( "c1" );
- assertTrue(sc.wasSuccessful());
+ assertEquals( "rule3",
+ c1.getType() );
+ assertTrue( sc.wasSuccessful() );
+ }
- }
+ public void testIntegrationWithRetract() throws Exception {
+ Scenario sc = new Scenario();
+ sc.fixtures.add( new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "price",
+ "46" ),
+ new FieldData( "type",
+ "XXX" ) ),
+ false ) );
+ sc.fixtures.add( new FactData( "Cheese",
+ "c2",
+ ls( new FieldData( "price",
+ "42" ) ),
+ false ) );
+ sc.fixtures.add( new ExecutionTrace() );
- public void testIntegrationWithModify() throws Exception {
- Scenario sc = new Scenario();
- sc.fixtures.add(new FactData("Cheese", "c1", ls(new FieldData("price", "1")), false));
+ sc.fixtures.add( new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "XXX",
+ "==" ) ) ) );
- sc.fixtures.add(new ExecutionTrace());
+ sc.fixtures.add( new RetractFact( "c2" ) );
+ sc.fixtures.add( new ExecutionTrace() );
- sc.fixtures.add(new VerifyFact("c1", ls(new VerifyField("type", "rule1", "=="))));
+ sc.fixtures.add( new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "rule4",
+ "==" ) ) ) );
- sc.fixtures.add(new FactData("Cheese", "c1", ls(new FieldData("price", "42")), true));
- sc.fixtures.add(new ExecutionTrace());
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
- sc.fixtures.add(new VerifyFact("c1", ls(new VerifyField("type", "rule3", "=="))));
+ WorkingMemory wm = getWorkingMemory( "test_stateful.drl" );
+ ScenarioRunner run = new ScenarioRunner( sc,
+ resolver,
+ (InternalWorkingMemory) wm );
+ Cheese c1 = (Cheese) run.populatedData.get( "c1" );
+ assertEquals( "rule4",
+ c1.getType() );
+ assertFalse( run.populatedData.containsKey( "c2" ) );
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
+ assertTrue( sc.wasSuccessful() );
+ }
+ public void testIntegrationWithFailure() throws Exception {
+ Scenario sc = new Scenario();
+ FactData[] facts = new FactData[]{new FactData( "Cheese",
+ "c1",
+ ls( new FieldData( "type",
+ "cheddar" ),
+ new FieldData( "price",
+ "42" ) ),
+ false )
- WorkingMemory wm = getWorkingMemory("test_stateful.drl");
- ScenarioRunner run = new ScenarioRunner(sc, resolver, (InternalWorkingMemory) wm);
+ };
+ sc.fixtures.addAll( Arrays.asList( facts ) );
+ sc.globals.add( new FactData( "Person",
+ "p",
+ new ArrayList(),
+ false ) );
- Cheese c1 = (Cheese) run.populatedData.get("c1");
+ ExecutionTrace executionTrace = new ExecutionTrace();
+ sc.rules.add( "rule1" );
+ sc.rules.add( "rule2" );
+ sc.inclusive = true;
+ sc.fixtures.add( executionTrace );
+ Expectation[] assertions = new Expectation[5];
- assertEquals("rule3", c1.getType());
+ assertions[0] = new VerifyFact( "c1",
+ ls( new VerifyField( "type",
+ "cheddar",
+ "==" )
+ ) );
- assertTrue(sc.wasSuccessful());
- }
+ assertions[1] = new VerifyFact( "p",
+ ls( new VerifyField( "name",
+ "XXX",
+ "==" ),
+ new VerifyField( "status",
+ "rule2",
+ "==" )
- public void testIntegrationWithRetract() throws Exception {
- Scenario sc = new Scenario();
- sc.fixtures.add(new FactData("Cheese", "c1", ls(new FieldData("price", "46"), new FieldData("type", "XXX")), false));
- sc.fixtures.add(new FactData("Cheese", "c2", ls(new FieldData("price", "42")), false));
- sc.fixtures.add(new ExecutionTrace());
+ ) );
- sc.fixtures.add(new VerifyFact("c1", ls(new VerifyField("type", "XXX", "=="))));
+ assertions[2] = new VerifyRuleFired( "rule1",
+ 1,
+ null );
+ assertions[3] = new VerifyRuleFired( "rule2",
+ 1,
+ null );
+ assertions[4] = new VerifyRuleFired( "rule3",
+ 2,
+ null );
- sc.fixtures.add(new RetractFact("c2"));
- sc.fixtures.add(new ExecutionTrace());
+ sc.fixtures.addAll( Arrays.asList( assertions ) );
- sc.fixtures.add(new VerifyFact("c1", ls(new VerifyField("type", "rule4", "=="))));
+ TypeResolver resolver = new ClassTypeResolver( new HashSet<String>(),
+ Thread.currentThread().getContextClassLoader() );
+ resolver.addImport( "org.drools.Cheese" );
+ resolver.addImport( "org.drools.Person" );
+ WorkingMemory wm = getWorkingMemory( "test_rules2.drl" );
+ ScenarioRunner run = new ScenarioRunner( sc,
+ resolver,
+ (InternalWorkingMemory) wm );
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
+ assertSame( run.scenario,
+ sc );
+ assertFalse( sc.wasSuccessful() );
- WorkingMemory wm = getWorkingMemory("test_stateful.drl");
- ScenarioRunner run = new ScenarioRunner(sc, resolver, (InternalWorkingMemory) wm);
-
- Cheese c1 = (Cheese) run.populatedData.get("c1");
-
- assertEquals("rule4", c1.getType());
- assertFalse(run.populatedData.containsKey("c2"));
-
- assertTrue(sc.wasSuccessful());
- }
-
- public void testIntegrationWithFailure() throws Exception {
- Scenario sc = new Scenario();
- FactData[] facts = new FactData[] {
- new FactData("Cheese", "c1", ls(
- new FieldData("type", "cheddar"),
- new FieldData("price", "42") ), false)
-
- };
- sc.fixtures.addAll(Arrays.asList(facts));
- sc.globals.add(new FactData("Person", "p", new ArrayList() , false));
-
- ExecutionTrace executionTrace = new ExecutionTrace();
- sc.rules.add("rule1");
- sc.rules.add("rule2");
- sc.inclusive = true;
- sc.fixtures.add(executionTrace);
-
- Expectation[] assertions = new Expectation[5];
-
- assertions[0] = new VerifyFact("c1", ls(
- new VerifyField("type", "cheddar", "==")
-
- ));
-
- assertions[1] = new VerifyFact("p", ls(
- new VerifyField("name", "XXX", "=="),
- new VerifyField("status", "rule2", "==")
-
- ));
-
- assertions[2] = new VerifyRuleFired("rule1", 1, null);
- assertions[3] = new VerifyRuleFired("rule2", 1, null);
- assertions[4] = new VerifyRuleFired("rule3", 2, null);
-
- sc.fixtures.addAll(Arrays.asList(assertions));
-
- TypeResolver resolver = new ClassTypeResolver(new HashSet<Object>(),
- Thread.currentThread().getContextClassLoader());
- resolver.addImport("org.drools.Cheese");
- resolver.addImport("org.drools.Person");
-
- WorkingMemory wm = getWorkingMemory("test_rules2.drl");
-
- ScenarioRunner run = new ScenarioRunner(sc, resolver, (InternalWorkingMemory) wm);
-
- assertSame(run.scenario, sc);
-
- assertFalse(sc.wasSuccessful());
-
VerifyFact vf = (VerifyFact) assertions[1];
- assertFalse(((VerifyField)vf.fieldValues.get(0)).successResult);
- assertEquals("XXX", ((VerifyField)vf.fieldValues.get(0)).expected);
- assertEquals("rule1",((VerifyField) vf.fieldValues.get(0)).actualResult);
- assertNotNull(((VerifyField) vf.fieldValues.get(0)).explanation);
+ assertFalse( ((VerifyField) vf.fieldValues.get( 0 )).successResult );
+ assertEquals( "XXX",
+ ((VerifyField) vf.fieldValues.get( 0 )).expected );
+ assertEquals( "rule1",
+ ((VerifyField) vf.fieldValues.get( 0 )).actualResult );
+ assertNotNull( ((VerifyField) vf.fieldValues.get( 0 )).explanation );
VerifyRuleFired vr = (VerifyRuleFired) assertions[4];
- assertFalse(vr.successResult);
+ assertFalse( vr.successResult );
- assertEquals(2, vr.expectedCount.intValue());
- assertEquals(1, vr.actualResult.intValue());
+ assertEquals( 2,
+ vr.expectedCount.intValue() );
+ assertEquals( 1,
+ vr.actualResult.intValue() );
+ }
- }
+ private <T> List<T> ls(T... objects) {
+ return Arrays.asList( objects );
+ }
-
-
-
- private<T> List<T> ls(T... objects) {
- return Arrays.asList(objects);
- }
-
-
-
-
}
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator)
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/example_scenario.drl
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/example_scenario.drl 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/example_scenario.drl 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,100 +0,0 @@
-package test;
-
-import java.lang.*;
-import org.drools.integrationtests.eventgenerator.*;
-import org.drools.integrationtests.eventgenerator.example.*;
-
-
-rule "Rule 1: check for expiry of sliding window (and reset window)"
- no-loop true
- #salience 0
- when
- PseudoSessionClock ( $currentTime : currentTime )
- $sw : SlidingWindow ( state == SlidingWindow.DEFAULT, $windowStart : windowStart, $windowEnd : windowEnd < $currentTime )
- then
- System.out.println ("RULE 1 \"SLIDING WINDOW EXPIRED\" FIRED : Sliding window "+$sw.getId()+" of Resource " + $sw.getParentId() + " has expired at (" + Tools.formattedDate($currentTime) +"); collecting follows");
- //$sw.setLastUpdate($currentTime);
- $sw.setState(SlidingWindow.COLLECT);
- update ($sw);
-end
-
-rule "Rule 2: collect specified objects within sliding window"
- no-loop true
- #salience 0
- when
- $sw : SlidingWindow ( state == SlidingWindow.COLLECT, $windowStart : windowStart, $windowEnd : windowEnd )
- $evCount : Number()
- from accumulate ( i: ProductionEvent( parentId == $sw.parentId, startTime >= $windowStart, endTime <= $windowEnd),
- count(i) )
- then
- System.out.println ("RULE 2 \"ACCUMULATE EVENTS IN SW\" FIRED : Found "+$evCount.intValue()+" PRODUCTION events within sliding window "+$sw.getId()+"("+Tools.formattedInterval($windowStart, $windowEnd)+"); evaluation follows");
- //$sw.setEventsInWindow($swQ);
- $sw.setNumberEvents($evCount.intValue());
- $sw.setState(SlidingWindow.EVALUATE);
- update ($sw);
-end
-
-rule "Rule 3a: number events abnormal; set status of NON-RED resource to RED"
- no-loop true
- salience 0
- when
- $stat : Status ( id == Status.OPERATIONAL, currentValue != Resource.STATUS_RED )
- $sw : SlidingWindow ( parentId == $stat.resourceId, state == SlidingWindow.EVALUATE, numberEvents < 80 || > 95 )
- then
- System.out.println ("RULE 3a \"EVALUATION OF SW\" FIRED : The number of PRODUCTION events found ("+$sw.getNumberEvents() +") within sliding window " + $sw.getId() + " is abnormal;");
- System.out.println (" Resource "+ $sw.getParentId() +" has status " + Resource.OPERATIONAL_STATUS_VALUES[$stat.getCurrentValue()] + " and needs to be set to " + Resource.OPERATIONAL_STATUS_VALUES[Resource.STATUS_RED] + "; advance follows");
- $sw.setState(SlidingWindow.ADVANCE);
- update ($sw);
- SimpleEventGenerator.sendGeneratedEvent(new StatusChangedEvent($sw.getParentId(), $stat.getCurrentValue(), Resource.STATUS_RED, $sw.getLastUpdate(), $sw.getLastUpdate()));
-end
-
-rule "Rule 3b: number events normal; set status of NON-GREEN resource to GREEN"
- no-loop true
- salience 0
- when
- $stat : Status ( id == Status.OPERATIONAL, currentValue != Resource.STATUS_GREEN )
- $sw : SlidingWindow ( parentId == $stat.resourceId, state == SlidingWindow.EVALUATE, numberEvents >= 80 && <= 95 )
- then
- System.out.println ("RULE 3b \"EVALUATION OF SW\" FIRED : The number of PRODUCTION events found ("+$sw.getNumberEvents() +") within sliding window " + $sw.getId() + " is within the expected range;");
- System.out.println (" Resource "+ $sw.getParentId() +" has status " + Resource.OPERATIONAL_STATUS_VALUES[$stat.getCurrentValue()] + " and can be set to " + Resource.OPERATIONAL_STATUS_VALUES[Resource.STATUS_GREEN] + "; advance follows");
- $sw.setState(SlidingWindow.ADVANCE);
- update ($sw);
- SimpleEventGenerator.sendGeneratedEvent(new StatusChangedEvent($sw.getParentId(), $stat.getCurrentValue(), Resource.STATUS_GREEN, $sw.getLastUpdate(), $sw.getLastUpdate()));
-end
-
-rule "Rule 3c: none of the above conditions apply; however, the sliding window need to be advanced"
- no-loop true
- salience -1
- when
- $stat : Status ( id == Status.OPERATIONAL )
- $sw : SlidingWindow ( state == SlidingWindow.EVALUATE )
- then
- System.out.println ("RULE 3c \"EVALUATION OF SW\" FIRED : No change of the state of the resource "+ $sw.getParentId() +" required;");
- System.out.println (" Found "+$sw.getNumberEvents() +" PRODUCTION events within sliding window " + $sw.getId() +"; resource has status " + Resource.OPERATIONAL_STATUS_VALUES[$stat.getCurrentValue()] + "; advance follows");
- $sw.setState(SlidingWindow.ADVANCE);
- update ($sw);
-end
-
-rule "Rule 4: do nothing but advancing the window"
- no-loop true
- salience -1
- when
- $sw : SlidingWindow ( state == SlidingWindow.ADVANCE )
- then
- $sw.advance();
- System.out.println ("RULE 4 \"ADVANCE SLIDING WINDOW\" FIRED : Reset sliding window to "+Tools.formattedInterval($sw.getWindowStart(), $sw.getWindowEnd())+"; action follows");
- $sw.setState(SlidingWindow.DEFAULT);
- update ($sw);
-end
-
-rule "Rule 5: status changed event - set resource status to desired value"
- no-loop true
- when
- $stat : Status ( id == Status.OPERATIONAL )
- $stChEv : StatusChangedEvent( parentId == $stat.resourceId )
- then
- System.out.println ("RULE 5 \"CHANGE STATUS\" FIRED : Change status from resource " + $stChEv.getParentId() + " from " + $stChEv.getParamOldValue() + " to " + $stChEv.getParamNewValue() + " (" + Tools.formattedDate($stChEv.getEndTime()) +")");
- $stat.switchCurrentValue($stChEv.getParamOldValue(), $stChEv.getParamNewValue(), $stChEv.getEndTime());
- update ($stat);
- retract ($stChEv);
-end
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/example_scenario.drl (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/example_scenario.drl)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/example_scenario.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/example_scenario.drl 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,100 @@
+package test;
+
+import java.lang.*;
+import org.drools.integrationtests.eventgenerator.*;
+import org.drools.integrationtests.eventgenerator.example.*;
+
+
+rule "Rule 1: check for expiry of sliding window (and reset window)"
+ no-loop true
+ #salience 0
+ when
+ PseudoSessionClock ( $currentTime : currentTime )
+ $sw : SlidingWindow ( state == SlidingWindow.DEFAULT, $windowStart : windowStart, $windowEnd : windowEnd < $currentTime )
+ then
+ System.out.println ("RULE 1 \"SLIDING WINDOW EXPIRED\" FIRED : Sliding window "+$sw.getId()+" of Resource " + $sw.getParentId() + " has expired at (" + Tools.formattedDate($currentTime) +"); collecting follows");
+ //$sw.setLastUpdate($currentTime);
+ $sw.setState(SlidingWindow.COLLECT);
+ update ($sw);
+end
+
+rule "Rule 2: collect specified objects within sliding window"
+ no-loop true
+ #salience 0
+ when
+ $sw : SlidingWindow ( state == SlidingWindow.COLLECT, $windowStart : windowStart, $windowEnd : windowEnd )
+ $evCount : Number()
+ from accumulate ( i: ProductionEvent( parentId == $sw.parentId, startTime >= $windowStart, endTime <= $windowEnd),
+ count(i) )
+ then
+ System.out.println ("RULE 2 \"ACCUMULATE EVENTS IN SW\" FIRED : Found "+$evCount.intValue()+" PRODUCTION events within sliding window "+$sw.getId()+"("+Tools.formattedInterval($windowStart, $windowEnd)+"); evaluation follows");
+ //$sw.setEventsInWindow($swQ);
+ $sw.setNumberEvents($evCount.intValue());
+ $sw.setState(SlidingWindow.EVALUATE);
+ update ($sw);
+end
+
+rule "Rule 3a: number events abnormal; set status of NON-RED resource to RED"
+ no-loop true
+ salience 0
+ when
+ $stat : Status ( id == Status.OPERATIONAL, currentValue != Resource.STATUS_RED )
+ $sw : SlidingWindow ( parentId == $stat.resourceId, state == SlidingWindow.EVALUATE, numberEvents < 80 || > 95 )
+ then
+ System.out.println ("RULE 3a \"EVALUATION OF SW\" FIRED : The number of PRODUCTION events found ("+$sw.getNumberEvents() +") within sliding window " + $sw.getId() + " is abnormal;");
+ System.out.println (" Resource "+ $sw.getParentId() +" has status " + Resource.OPERATIONAL_STATUS_VALUES[$stat.getCurrentValue()] + " and needs to be set to " + Resource.OPERATIONAL_STATUS_VALUES[Resource.STATUS_RED] + "; advance follows");
+ $sw.setState(SlidingWindow.ADVANCE);
+ update ($sw);
+ SimpleEventGenerator.sendGeneratedEvent(new StatusChangedEvent($sw.getParentId(), $stat.getCurrentValue(), Resource.STATUS_RED, $sw.getLastUpdate(), $sw.getLastUpdate()));
+end
+
+rule "Rule 3b: number events normal; set status of NON-GREEN resource to GREEN"
+ no-loop true
+ salience 0
+ when
+ $stat : Status ( id == Status.OPERATIONAL, currentValue != Resource.STATUS_GREEN )
+ $sw : SlidingWindow ( parentId == $stat.resourceId, state == SlidingWindow.EVALUATE, numberEvents >= 80 && <= 95 )
+ then
+ System.out.println ("RULE 3b \"EVALUATION OF SW\" FIRED : The number of PRODUCTION events found ("+$sw.getNumberEvents() +") within sliding window " + $sw.getId() + " is within the expected range;");
+ System.out.println (" Resource "+ $sw.getParentId() +" has status " + Resource.OPERATIONAL_STATUS_VALUES[$stat.getCurrentValue()] + " and can be set to " + Resource.OPERATIONAL_STATUS_VALUES[Resource.STATUS_GREEN] + "; advance follows");
+ $sw.setState(SlidingWindow.ADVANCE);
+ update ($sw);
+ SimpleEventGenerator.sendGeneratedEvent(new StatusChangedEvent($sw.getParentId(), $stat.getCurrentValue(), Resource.STATUS_GREEN, $sw.getLastUpdate(), $sw.getLastUpdate()));
+end
+
+rule "Rule 3c: none of the above conditions apply; however, the sliding window need to be advanced"
+ no-loop true
+ salience -1
+ when
+ $stat : Status ( id == Status.OPERATIONAL )
+ $sw : SlidingWindow ( state == SlidingWindow.EVALUATE )
+ then
+ System.out.println ("RULE 3c \"EVALUATION OF SW\" FIRED : No change of the state of the resource "+ $sw.getParentId() +" required;");
+ System.out.println (" Found "+$sw.getNumberEvents() +" PRODUCTION events within sliding window " + $sw.getId() +"; resource has status " + Resource.OPERATIONAL_STATUS_VALUES[$stat.getCurrentValue()] + "; advance follows");
+ $sw.setState(SlidingWindow.ADVANCE);
+ update ($sw);
+end
+
+rule "Rule 4: do nothing but advancing the window"
+ no-loop true
+ salience -1
+ when
+ $sw : SlidingWindow ( state == SlidingWindow.ADVANCE )
+ then
+ $sw.advance();
+ System.out.println ("RULE 4 \"ADVANCE SLIDING WINDOW\" FIRED : Reset sliding window to "+Tools.formattedInterval($sw.getWindowStart(), $sw.getWindowEnd())+"; action follows");
+ $sw.setState(SlidingWindow.DEFAULT);
+ update ($sw);
+end
+
+rule "Rule 5: status changed event - set resource status to desired value"
+ no-loop true
+ when
+ $stat : Status ( id == Status.OPERATIONAL )
+ $stChEv : StatusChangedEvent( parentId == $stat.resourceId )
+ then
+ System.out.println ("RULE 5 \"CHANGE STATUS\" FIRED : Change status from resource " + $stChEv.getParentId() + " from " + $stChEv.getParamOldValue() + " to " + $stChEv.getParamNewValue() + " (" + Tools.formattedDate($stChEv.getEndTime()) +")");
+ $stat.switchCurrentValue($stChEv.getParamOldValue(), $stChEv.getParamNewValue(), $stChEv.getEndTime());
+ update ($stat);
+ retract ($stChEv);
+end
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/test_eventGenerator.drl
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/test_eventGenerator.drl 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/test_eventGenerator.drl 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,23 +0,0 @@
-package test;
-
-import org.drools.integrationtests.eventgenerator.*;
-
-query "all inserted events"
- Event()
-end
-
-query "all inserted events with generation time < 1 min"
- Event(eval(endTime<PseudoSessionClock.timeInMinutes(1)))
-end
-
-query "all inserted events with 2 min < generation time < 3 min"
- Event(eval (endTime>PseudoSessionClock.timeInMinutes(2)), eval(endTime<PseudoSessionClock.timeInMinutes(3)))
-end
-
-query "all inserted events with parent resource A"
- Event(parentId=="resA")
-end
-
-query "all inserted events with parent resource B"
- Event(parentId=="resB")
-end
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/test_eventGenerator.drl (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/test_eventGenerator.drl)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/test_eventGenerator.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/eventgenerator/test_eventGenerator.drl 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,23 @@
+package test;
+
+import org.drools.integrationtests.eventgenerator.*;
+
+query "all inserted events"
+ Event()
+end
+
+query "all inserted events with generation time < 1 min"
+ Event(eval(endTime<PseudoSessionClock.timeInMinutes(1)))
+end
+
+query "all inserted events with 2 min < generation time < 3 min"
+ Event(eval (endTime>PseudoSessionClock.timeInMinutes(2)), eval(endTime<PseudoSessionClock.timeInMinutes(3)))
+end
+
+query "all inserted events with parent resource A"
+ Event(parentId=="resA")
+end
+
+query "all inserted events with parent resource B"
+ Event(parentId=="resB")
+end
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleEventAssertion.drl 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,12 @@
+package org.drools;
+
+import event org.drools.StockTick;
+
+global java.util.List results;
+
+rule "Check event"
+when
+ $st : StockTick( company == "ACME" )
+then
+ results.add( $st );
+end
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleTimeWindow.drl (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleTimeWindow.drl)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleTimeWindow.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_SimpleTimeWindow.drl 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,16 @@
+package org.drools;
+
+import event org.drools.OrderEvent;
+
+global java.util.List results;
+
+rule "average over threshold"
+when
+ Number( $avg : intValue >= 50 ) from accumulate(
+ OrderEvent( $amt : total ),
+ average( $amt ) )
+then
+ //System.out.println( "Over threshold: "+$avg );
+ results.add( $avg );
+end
+
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CEP_TimeRelationalOperators.drl 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,13 @@
+package org.drools;
+
+import event org.drools.StockTick;
+
+global java.util.List results;
+
+rule "after operator"
+when
+ $a : StockTick( company == "DROO" )
+ $b : StockTick( company == "ACME", this ~after[5,10] $a )
+then
+ results.add( $b );
+end
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/import_event.drl (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/lang/import_event.drl)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/import_event.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/import_event.drl 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,9 @@
+package org.drools;
+
+import event org.drools.StockTick;
+
+rule "Check event"
+when
+ StockTick( company == "ACME" )
+then
+end
Copied: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/pluggable_operators.drl (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-compiler/src/test/resources/org/drools/lang/pluggable_operators.drl)
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/pluggable_operators.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/lang/pluggable_operators.drl 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,11 @@
+package org.drools;
+
+rule "test pluggable operators"
+when
+ $a : EventA()
+ $b : EventB( this ~after[1,10] $a )
+ $c : EventC( this ~finishes $b )
+ $d : EventD( this not ~starts $a )
+ $e : EventE( this not ~before [1, 10] $b )
+then
+end
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ClockType.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/ClockType.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ClockType.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ClockType.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Nov 29, 2007
+ */
+package org.drools;
+
+import org.drools.temporal.SessionClock;
+import org.drools.temporal.SessionPseudoClock;
+
+/**
+ * This enum represents all engine supported clocks
+ *
+ * @author etirelli
+ */
+public enum ClockType {
+// SYSTEM_CLOCK {
+// public SessionClock newInstance() {
+// return new SessionPseudoClock();
+// }
+// },
+
+ /**
+ * A Pseudo clock is a clock that is completely controled by the
+ * client application. It is usually used during simulations or tests
+ */
+ PSEUDO_CLOCK {
+ public SessionPseudoClock createInstance() {
+ return new SessionPseudoClock();
+ }
+ };
+
+ public abstract SessionClock createInstance();
+
+}
+
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBase.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBase.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -94,8 +94,25 @@
*/
StatefulSession newStatefulSession(InputStream stream) throws IOException,
ClassNotFoundException;
+
+ /**
+ * Creates a new temporal session using the defined clock type.
+ *
+ * @param clockType
+ * @return
+ */
+ TemporalSession newTemporalSession(ClockType clockType);
/**
+ * Creates a new temporal session using the defined clock type.
+ *
+ * @param keepReference maintains a reference in the rulebase to the created session
+ * @param clockType
+ * @return
+ */
+ TemporalSession newTemporalSession(boolean keepReference, ClockType clockType);
+
+ /**
* RuleBases handle the returning of a Serialized WorkingMemory
* pass as an InputStream. If the reference is a byte[] then
* wrap with new ByteArrayInputStream. Optionally the RuleBase retains a
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -26,9 +26,10 @@
import org.drools.common.AgendaGroupFactory;
import org.drools.common.ArrayAgendaGroupFactory;
import org.drools.common.PriorityQueueAgendaGroupFactory;
-import org.drools.concurrent.ExecutorService;
import org.drools.spi.ConflictResolver;
import org.drools.spi.ConsequenceExceptionHandler;
+import org.drools.temporal.SessionClock;
+import org.drools.temporal.SessionPseudoClock;
import org.drools.util.ChainedProperties;
/**
@@ -66,42 +67,44 @@
* drools.conflictResolver = <qualified class name>
* drools.consequenceExceptionHandler = <qualified class name>
* drools.ruleBaseUpdateHandler = <qualified class name>
+ * drools.sessionClock = <qualified class name>
*
*/
public class RuleBaseConfiguration
implements
Serializable {
- private static final long serialVersionUID = 400L;
+ private static final long serialVersionUID = 400L;
- private ChainedProperties chainedProperties;
+ private ChainedProperties chainedProperties;
- private boolean immutable;
+ private boolean immutable;
- private boolean sequential;
- private SequentialAgenda sequentialAgenda;
+ private boolean sequential;
+ private SequentialAgenda sequentialAgenda;
- private boolean maintainTms;
- private boolean removeIdentities;
- private boolean shareAlphaNodes;
- private boolean shareBetaNodes;
- private boolean alphaMemory;
- private int alphaNodeHashingThreshold;
- private int compositeKeyDepth;
- private boolean indexLeftBetaMemory;
- private boolean indexRightBetaMemory;
- private AssertBehaviour assertBehaviour;
- private LogicalOverride logicalOverride;
- private String executorService;
- private ConsequenceExceptionHandler consequenceExceptionHandler;
- private String ruleBaseUpdateHandler;
+ private boolean maintainTms;
+ private boolean removeIdentities;
+ private boolean shareAlphaNodes;
+ private boolean shareBetaNodes;
+ private boolean alphaMemory;
+ private int alphaNodeHashingThreshold;
+ private int compositeKeyDepth;
+ private boolean indexLeftBetaMemory;
+ private boolean indexRightBetaMemory;
+ private AssertBehaviour assertBehaviour;
+ private LogicalOverride logicalOverride;
+ private String executorService;
+ private ConsequenceExceptionHandler consequenceExceptionHandler;
+ private String ruleBaseUpdateHandler;
+ private Class< ? extends SessionClock> sessionClockClass;
- private ConflictResolver conflictResolver;
+ private ConflictResolver conflictResolver;
- private boolean shadowProxy;
- private Map shadowProxyExcludes;
- private static final String STAR = "*";
+ private boolean shadowProxy;
+ private Map shadowProxyExcludes;
+ private static final String STAR = "*";
- private transient ClassLoader classLoader;
+ private transient ClassLoader classLoader;
/**
* Creates a new rulebase configuration using the provided properties
@@ -217,9 +220,9 @@
setConsequenceExceptionHandler( RuleBaseConfiguration.determineConsequenceExceptionHandler( this.chainedProperties.getProperty( "drools.consequenceExceptionHandler",
"org.drools.base.DefaultConsequenceExceptionHandler" ) ) );
-
+
setRuleBaseUpdateHandler( this.chainedProperties.getProperty( "drools.ruleBaseUpdateHandler",
- "org.drools.base.FireAllRulesRuleBaseUpdateListener" ) );
+ "org.drools.base.FireAllRulesRuleBaseUpdateListener" ) );
setConflictResolver( RuleBaseConfiguration.determineConflictResolver( this.chainedProperties.getProperty( "drools.conflictResolver",
"org.drools.conflict.DepthConflictResolver" ) ) );
@@ -230,6 +233,10 @@
setShadowProxyExcludes( this.chainedProperties.getProperty( "drools.shadowProxyExcludes",
"" ) );
+
+ setSessionClockClass( this.chainedProperties.getProperty( "drools.sessionClock",
+ SessionPseudoClock.class.getName() ) );
+
}
/**
@@ -385,7 +392,7 @@
checkCanChange(); // throws an exception if a change isn't possible;
this.consequenceExceptionHandler = consequenceExceptionHandler;
}
-
+
public String getRuleBaseUpdateHandler() {
return ruleBaseUpdateHandler;
}
@@ -393,8 +400,53 @@
public void setRuleBaseUpdateHandler(String ruleBaseUpdateHandler) {
checkCanChange(); // throws an exception if a change isn't possible;
this.ruleBaseUpdateHandler = ruleBaseUpdateHandler;
- }
+ }
+ /**
+ * Returns the actual class that is set to be used as the session clock
+ * for sessions of this rulebase
+ *
+ * @return
+ */
+ public Class< ? extends SessionClock> getSessionClockClass() {
+ return sessionClockClass;
+ }
+
+ /**
+ * Sets the class whose instance is to be used as the session clock
+ * for sessions of this rulebase
+ *
+ * @param sessionClockClass
+ */
+ public void setSessionClockClass(Class< ? extends SessionClock> sessionClockClass) {
+ checkCanChange(); // throws an exception if a change isn't possible;
+ this.sessionClockClass = sessionClockClass;
+ }
+
+ /**
+ * Sets the class name whose instance is to be used as the session clock
+ * for sessions of this rulebase
+ *
+ * @param className
+ */
+ public void setSessionClockClass(String className) {
+ Class< ? extends SessionClock> sessionClock;
+ try {
+ ClassLoader cl = this.getClassLoader();
+ if ( cl == null ) {
+ cl = Thread.currentThread().getContextClassLoader();
+ if ( cl == null ) {
+ cl = this.getClass().getClassLoader();
+ }
+ }
+ sessionClock = (Class< ? extends SessionClock>) cl.loadClass( className );
+ } catch ( Exception ex ) {
+ throw new RuntimeDroolsException( "Not possible to load the session clock class: " + className,
+ ex );
+ }
+ setSessionClockClass( sessionClock );
+ }
+
public AgendaGroupFactory getAgendaGroupFactory() {
if ( isSequential() ) {
if ( this.sequentialAgenda == SequentialAgenda.SEQUENTIAL ) {
@@ -421,7 +473,7 @@
// sequential never needs shadowing, so always override
return false;
}
-
+
if ( userValue != null ) {
return Boolean.valueOf( userValue ).booleanValue();
} else {
@@ -545,7 +597,7 @@
private static ConsequenceExceptionHandler determineConsequenceExceptionHandler(String className) {
return (ConsequenceExceptionHandler) instantiateClass( "ConsequenceExceptionHandler",
className );
- }
+ }
private static Object instantiateClass(String type,
String className) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/StatefulSession.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/StatefulSession.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/StatefulSession.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -71,5 +71,5 @@
*/
Future asyncFireAllRules(AgendaFilter agendaFilter);
- public List getRuleBaseUpdateListeners();
+ List getRuleBaseUpdateListeners();
}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/TemporalSession.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/TemporalSession.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/TemporalSession.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/TemporalSession.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Nov 28, 2007
+ */
+package org.drools;
+
+import org.drools.temporal.SessionClock;
+
+/**
+ * A StatefulTemporalSession is a stateful session with
+ * additional functionalities for temporal reasoning.
+ *
+ * @author etirelli
+ *
+ */
+public interface TemporalSession<T extends SessionClock> extends StatefulSession {
+
+ /**
+ * Returns the session clock instance for this session.
+ *
+ * The actual session clock implementation is defined by the
+ * RuleBaseConfiguration.setSessionClockImpl() call or by
+ * setting the corresponding system property.
+ */
+ public T getSessionClock();
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -25,6 +25,7 @@
import org.drools.spi.AgendaGroup;
import org.drools.spi.AsyncExceptionHandler;
import org.drools.spi.GlobalResolver;
+import org.drools.temporal.SessionClock;
/**
* A knowledge session for a <code>RuleBase</code>.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseEvaluator.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseEvaluator.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -17,6 +17,7 @@
*/
import org.drools.base.evaluators.Operator;
+import org.drools.common.InternalFactHandle;
import org.drools.spi.Evaluator;
/**
@@ -47,6 +48,14 @@
return this.type;
}
+ public ValueType getCoercedValueType() {
+ return this.type;
+ }
+
+ public Object prepareObject(InternalFactHandle handle) {
+ return handle.getObject();
+ }
+
public boolean equals(final Object object) {
if ( this == object ) {
return true;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -32,15 +32,15 @@
/**
*
*/
- private static final long serialVersionUID = 400L;
+ private static final long serialVersionUID = 400L;
/** Java object class. */
- protected Class objectTypeClass;
+ protected Class objectTypeClass;
- protected ValueType valueType;
+ protected ValueType valueType;
+ private boolean isEvent;
-
// ------------------------------------------------------------
// Constructors
// ------------------------------------------------------------
@@ -52,9 +52,21 @@
* Java object class.
*/
public ClassObjectType(final Class objectTypeClass) {
+ this( objectTypeClass, false );
+ }
+
+ /**
+ * Creates a new class object type
+ *
+ * @param objectTypeClass the class represented by this class object type
+ * @param isEvent true if it is an event class, false otherwise
+ */
+ public ClassObjectType(final Class objectTypeClass, final boolean isEvent) {
this.objectTypeClass = objectTypeClass;
+ this.isEvent = isEvent;
this.valueType = ValueType.determineValueType( objectTypeClass );
}
+
// ------------------------------------------------------------
// Instance methods
// ------------------------------------------------------------
@@ -99,25 +111,33 @@
public boolean matches(final Object object) {
return getClassType().isInstance( object );
}
-
+
public boolean isAssignableFrom(Object object) {
return this.objectTypeClass.isAssignableFrom( (Class) object );
}
public boolean isAssignableFrom(ObjectType objectType) {
- if ( !( objectType instanceof ClassObjectType ) ) {
+ if ( !(objectType instanceof ClassObjectType) ) {
return false;
} else {
return this.objectTypeClass.isAssignableFrom( ((ClassObjectType) objectType).getClassType() );
}
- }
-
+ }
+
public ValueType getValueType() {
return this.valueType;
}
+ public boolean isEvent() {
+ return isEvent;
+ }
+
+ public void setEvent(boolean isEvent) {
+ this.isEvent = isEvent;
+ }
+
public String toString() {
- return "[ClassObjectType class=" + getClassType().getName() + "]";
+ return "[ClassObjectType "+( this.isEvent ? "event=" : "class=" )+ getClassType().getName() + "]";
}
/**
@@ -137,7 +157,7 @@
if ( object == null || object.getClass() != ClassObjectType.class ) {
return false;
}
-
+
return this.objectTypeClass == ((ClassObjectType) object).objectTypeClass;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassTypeResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassTypeResolver.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassTypeResolver.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,12 +16,10 @@
* limitations under the License.
*/
-import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -30,7 +28,7 @@
public class ClassTypeResolver
implements
TypeResolver {
- private Set imports = Collections.EMPTY_SET;
+ private Set<String> imports = Collections.emptySet();
private ClassLoader classLoader;
@@ -56,7 +54,7 @@
"C" );
}
- public ClassTypeResolver(final Set imports,
+ public ClassTypeResolver(final Set<String> imports,
final ClassLoader classLoader) {
this.imports = imports;
@@ -79,7 +77,7 @@
/* (non-Javadoc)
* @see org.drools.semantics.java.TypeResolver#getImports()
*/
- public Set getImports() {
+ public Set<String> getImports() {
return this.imports;
}
@@ -93,7 +91,7 @@
*/
public void addImport(final String importEntry) {
if ( this.imports == Collections.EMPTY_SET ) {
- this.imports = new HashSet();
+ this.imports = new HashSet<String>();
}
this.imports.add( importEntry );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -6,144 +6,100 @@
import java.util.Date;
import org.drools.RuntimeDroolsException;
-import org.drools.base.evaluators.ArrayFactory;
-import org.drools.base.evaluators.BigDecimalFactory;
-import org.drools.base.evaluators.BigIntegerFactory;
-import org.drools.base.evaluators.BooleanFactory;
-import org.drools.base.evaluators.ByteFactory;
-import org.drools.base.evaluators.CharacterFactory;
-import org.drools.base.evaluators.DateFactory;
-import org.drools.base.evaluators.DoubleFactory;
-import org.drools.base.evaluators.EvaluatorFactory;
-import org.drools.base.evaluators.FloatFactory;
-import org.drools.base.evaluators.IntegerFactory;
-import org.drools.base.evaluators.LongFactory;
-import org.drools.base.evaluators.ObjectFactory;
-import org.drools.base.evaluators.Operator;
-import org.drools.base.evaluators.ShortFactory;
-import org.drools.base.evaluators.StringFactory;
import org.drools.facttemplates.FactTemplate;
-import org.drools.spi.Evaluator;
public class ValueType
implements
Serializable {
- private static final long serialVersionUID = 400L;
+ private static final long serialVersionUID = 400L;
public static final ValueType NULL_TYPE = new ValueType( "null",
null,
- SimpleValueType.NULL,
- null );
+ SimpleValueType.NULL);
// wrapper types
public static final ValueType CHAR_TYPE = new ValueType( "Character",
Character.class,
- SimpleValueType.CHAR,
- CharacterFactory.getInstance() );
+ SimpleValueType.CHAR );
public static final ValueType BYTE_TYPE = new ValueType( "Byte",
Byte.class,
- SimpleValueType.INTEGER,
- ByteFactory.getInstance() );
+ SimpleValueType.INTEGER);
public static final ValueType SHORT_TYPE = new ValueType( "Short",
Short.class,
- SimpleValueType.INTEGER,
- ShortFactory.getInstance() );
+ SimpleValueType.INTEGER );
public static final ValueType INTEGER_TYPE = new ValueType( "Integer",
Integer.class,
- SimpleValueType.INTEGER,
- IntegerFactory.getInstance() );
+ SimpleValueType.INTEGER );
public static final ValueType LONG_TYPE = new ValueType( "Long",
Long.class,
- SimpleValueType.INTEGER,
- LongFactory.getInstance() );
+ SimpleValueType.INTEGER );
public static final ValueType FLOAT_TYPE = new ValueType( "Float",
Float.class,
- SimpleValueType.DECIMAL,
- FloatFactory.getInstance() );
+ SimpleValueType.DECIMAL );
public static final ValueType DOUBLE_TYPE = new ValueType( "Double",
Double.class,
- SimpleValueType.DECIMAL,
- DoubleFactory.getInstance() );
+ SimpleValueType.DECIMAL );
public static final ValueType BOOLEAN_TYPE = new ValueType( "Boolean",
Boolean.class,
- SimpleValueType.BOOLEAN,
- BooleanFactory.getInstance() );
+ SimpleValueType.BOOLEAN );
// primitive types
public static final ValueType PCHAR_TYPE = new ValueType( "char",
Character.TYPE,
- SimpleValueType.CHAR,
- CharacterFactory.getInstance() );
+ SimpleValueType.CHAR );
public static final ValueType PBYTE_TYPE = new ValueType( "byte",
Byte.TYPE,
- SimpleValueType.INTEGER,
- ByteFactory.getInstance() );
+ SimpleValueType.INTEGER );
public static final ValueType PSHORT_TYPE = new ValueType( "short",
Short.TYPE,
- SimpleValueType.INTEGER,
- ShortFactory.getInstance() );
+ SimpleValueType.INTEGER );
public static final ValueType PINTEGER_TYPE = new ValueType( "int",
Integer.TYPE,
- SimpleValueType.INTEGER,
- IntegerFactory.getInstance() );
+ SimpleValueType.INTEGER );
public static final ValueType PLONG_TYPE = new ValueType( "long",
Long.TYPE,
- SimpleValueType.INTEGER,
- LongFactory.getInstance() );
+ SimpleValueType.INTEGER );
public static final ValueType PFLOAT_TYPE = new ValueType( "float",
Float.TYPE,
- SimpleValueType.DECIMAL,
- FloatFactory.getInstance() );
+ SimpleValueType.DECIMAL );
public static final ValueType PDOUBLE_TYPE = new ValueType( "double",
Double.TYPE,
- SimpleValueType.DECIMAL,
- DoubleFactory.getInstance() );
+ SimpleValueType.DECIMAL );
public static final ValueType PBOOLEAN_TYPE = new ValueType( "boolean",
Boolean.TYPE,
- SimpleValueType.BOOLEAN,
- BooleanFactory.getInstance() );
+ SimpleValueType.BOOLEAN );
// other types
public static final ValueType DATE_TYPE = new ValueType( "Date",
Date.class,
- SimpleValueType.DATE,
- DateFactory.getInstance() );
+ SimpleValueType.DATE );
public static final ValueType ARRAY_TYPE = new ValueType( "Array",
Object[].class,
- SimpleValueType.LIST,
- ArrayFactory.getInstance() );
+ SimpleValueType.LIST );
public static final ValueType STRING_TYPE = new ValueType( "String",
String.class,
- SimpleValueType.STRING,
- StringFactory.getInstance() );
+ SimpleValueType.STRING );
public static final ValueType OBJECT_TYPE = new ValueType( "Object",
Object.class,
- SimpleValueType.OBJECT,
- ObjectFactory.getInstance() );
+ SimpleValueType.OBJECT );
public static final ValueType FACTTEMPLATE_TYPE = new ValueType( "FactTemplate",
FactTemplate.class,
- SimpleValueType.UNKNOWN,
- ObjectFactory.getInstance() );
+ SimpleValueType.UNKNOWN );
public static final ValueType BIG_DECIMAL_TYPE = new ValueType( "BigDecimal",
BigDecimal.class,
- SimpleValueType.OBJECT,
- BigDecimalFactory.getInstance() );
+ SimpleValueType.OBJECT );
public static final ValueType BIG_INTEGER_TYPE = new ValueType( "BigInteger",
BigInteger.class,
- SimpleValueType.OBJECT,
- BigIntegerFactory.getInstance() );
+ SimpleValueType.OBJECT );
private final String name;
private final Class classType;
- private final EvaluatorFactory evaluatorFactory;
private final int simpleType;
private ValueType(final String name,
final Class classType,
- final int simpleType,
- final EvaluatorFactory evaluatorFactory) {
+ final int simpleType) {
this.name = name;
this.classType = classType;
this.simpleType = simpleType;
- this.evaluatorFactory = evaluatorFactory;
}
private Object readResolve() throws java.io.ObjectStreamException {
@@ -162,10 +118,6 @@
return this.simpleType;
}
- public Evaluator getEvaluator(final Operator operator) {
- return this.evaluatorFactory.getEvaluator( operator );
- }
-
public static ValueType determineValueType(final Class clazz) {
if ( clazz == null ) {
return ValueType.NULL_TYPE;
@@ -244,42 +196,18 @@
public boolean isNumber() {
return (this.simpleType == SimpleValueType.INTEGER || this.simpleType == SimpleValueType.DECIMAL || this.simpleType == SimpleValueType.CHAR);
- // return (this.classType == Integer.TYPE) ||
- // (this.classType == Long.TYPE) ||
- // (this.classType == Float.TYPE) ||
- // (this.classType == Double.TYPE) ||
- // (this.classType == Byte.TYPE) ||
- // (this.classType == Short.TYPE) ||
- // (this.classType == Character.TYPE) ||
- // (this.classType == Character.class) ||
- // (Number.class.isAssignableFrom( this.classType ));
}
public boolean isIntegerNumber() {
return this.simpleType == SimpleValueType.INTEGER;
- // return (this.classType == Integer.TYPE) ||
- // (this.classType == Long.TYPE) ||
- // (this.classType == Integer.class) ||
- // (this.classType == Long.class) ||
- // (this.classType == Character.class) ||
- // (this.classType == Character.TYPE) ||
- // (this.classType == Byte.TYPE) ||
- // (this.classType == Short.TYPE) ||
- // (this.classType == Byte.class) ||
- // (this.classType == Short.class);
}
public boolean isFloatNumber() {
return this.simpleType == SimpleValueType.DECIMAL;
- // return (this.classType == Float.TYPE) ||
- // (this.classType == Double.TYPE) ||
- // (this.classType == Float.class) ||
- // (this.classType == Double.class);
}
public boolean isChar() {
return this.simpleType == SimpleValueType.CHAR;
- // return ((this.classType == Character.class) || (this.classType == Character.TYPE));
}
}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/AfterEvaluatorDefinition.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/evaluators/AfterEvaluatorDefinition.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/AfterEvaluatorDefinition.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/AfterEvaluatorDefinition.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,389 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.base.evaluators;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.common.EventFactHandle;
+import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
+import org.drools.rule.VariableRestriction.VariableContextEntry;
+import org.drools.spi.Evaluator;
+import org.drools.spi.Extractor;
+import org.drools.spi.FieldValue;
+
+/**
+ * The implementation of the 'after' evaluator definition
+ *
+ * @author etirelli
+ */
+public class AfterEvaluatorDefinition
+ implements
+ EvaluatorDefinition {
+
+ public static final Operator AFTER = Operator.addOperatorToRegistry( "after",
+ false );
+ public static final Operator NOT_AFTER = Operator.addOperatorToRegistry( "after",
+ true );
+
+ private static final String[] SUPPORTED_IDS = {AFTER.getOperatorString()};
+
+ private Map<String, Evaluator> cache = Collections.emptyMap();
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator) {
+ return this.getEvaluator( type,
+ operator.getOperatorString(),
+ operator.isNegated(),
+ null );
+ }
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator,
+ String parameterText) {
+ return this.getEvaluator( type,
+ operator.getOperatorString(),
+ operator.isNegated(),
+ parameterText );
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public Evaluator getEvaluator(final ValueType type,
+ final String operatorId,
+ final boolean isNegated,
+ final String parameterText) {
+ if ( this.cache == Collections.EMPTY_MAP ) {
+ this.cache = new HashMap<String, Evaluator>();
+ }
+ String key = isNegated + ":" + parameterText;
+ Evaluator eval = this.cache.get( key );
+ if ( eval == null ) {
+ if ( isNegated ) {
+ eval = new NotAfterEvaluator( type,
+ isNegated,
+ parameterText );
+ } else {
+ eval = new AfterEvaluator( type,
+ isNegated,
+ parameterText );
+ }
+ this.cache.put( key,
+ eval );
+ }
+ return eval;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public String[] getEvaluatorIds() {
+ return SUPPORTED_IDS;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public boolean isNegatable() {
+ return true;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public boolean operatesOnFactHandles() {
+ return true;
+ }
+
+ /**
+ * @inheritDoc
+ */
+ public boolean supportsType(ValueType type) {
+ // supports all types, since it operates over fact handles
+ // Note: should we change this interface to allow checking of event classes only?
+ return true;
+ }
+
+ /**
+ * Implements the 'after' evaluator itself
+ */
+ public static class AfterEvaluator extends BaseEvaluator {
+ private static final long serialVersionUID = -4833205637340977934L;
+
+ private long initRange;
+ private long finalRange;
+
+ public AfterEvaluator(final ValueType type,
+ final boolean isNegated,
+ final String parameters) {
+ super( type,
+ isNegated ? NOT_AFTER : AFTER );
+ this.parseParameters( parameters );
+ }
+
+ @Override
+ public Object prepareObject(InternalFactHandle handle) {
+ return handle;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ throw new RuntimeDroolsException( "The 'after' operator can only be used to compare one event to another, and never to compare to literal constraints." );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ if ( context.rightNull ) {
+ return false;
+ }
+ long dist = ((EventFactHandle) ((ObjectVariableContextEntry) context).right).getStartTimestamp() - ((EventFactHandle) left).getEndTimestamp();
+ return dist >= this.initRange && dist <= this.finalRange;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ if ( context.extractor.isNullValue( workingMemory,
+ right ) ) {
+ return false;
+ }
+ long dist = ((EventFactHandle) right).getStartTimestamp() - ((EventFactHandle) ((ObjectVariableContextEntry) context).left).getEndTimestamp();
+
+ return dist >= this.initRange && dist <= this.finalRange;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ if ( extractor1.isNullValue( workingMemory,
+ object1 ) ) {
+ return false;
+ }
+ long dist = ((EventFactHandle) object1).getStartTimestamp() - ((EventFactHandle) object2).getEndTimestamp();
+ return dist >= this.initRange && dist <= this.finalRange;
+ }
+
+ public String toString() {
+ return "after[" + initRange + ", " + finalRange + "]";
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = super.hashCode();
+ result = PRIME * result + (int) (finalRange ^ (finalRange >>> 32));
+ result = PRIME * result + (int) (initRange ^ (initRange >>> 32));
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( !super.equals( obj ) ) return false;
+ if ( getClass() != obj.getClass() ) return false;
+ final AfterEvaluator other = (AfterEvaluator) obj;
+ return finalRange == other.finalRange && initRange == other.initRange;
+ }
+
+ /**
+ * This methods tries to parse the string of parameters to customize
+ * the evaluator.
+ *
+ * @param parameters
+ */
+ private void parseParameters(String parameters) {
+ if ( parameters == null || parameters.trim().length() == 0 ) {
+ // open bounded range
+ this.initRange = 1;
+ this.finalRange = Long.MAX_VALUE;
+ return;
+ }
+
+ try {
+ String[] ranges = parameters.split( "," );
+ if ( ranges.length == 1 ) {
+ // deterministic point in time
+ this.initRange = Long.parseLong( ranges[0] );
+ this.finalRange = this.initRange;
+ } else if ( ranges.length == 2 ) {
+ // regular range
+ this.initRange = Long.parseLong( ranges[0] );
+ this.finalRange = Long.parseLong( ranges[1] );
+ } else {
+ throw new RuntimeDroolsException( "[After Evaluator]: Not possible to parse parameters: '" + parameters + "'" );
+ }
+ } catch ( NumberFormatException e ) {
+ throw new RuntimeDroolsException( "[After Evaluator]: Not possible to parse parameters: '" + parameters + "'",
+ e );
+ }
+ }
+
+ }
+
+ /**
+ * Implements the 'after' evaluator itself
+ */
+ public static class NotAfterEvaluator extends BaseEvaluator {
+ private static final long serialVersionUID = -4833205637340977934L;
+
+ private long initRange;
+ private long finalRange;
+
+ public NotAfterEvaluator(final ValueType type,
+ final boolean isNegated,
+ final String parameters) {
+ super( type,
+ isNegated ? NOT_AFTER : AFTER );
+ this.parseParameters( parameters );
+ }
+
+ @Override
+ public Object prepareObject(InternalFactHandle handle) {
+ return handle;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ throw new RuntimeDroolsException( "The 'after' operator can only be used to compare one event to another, and never to compare to literal constraints." );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ if ( context.rightNull ) {
+ return false;
+ }
+ long dist = ((EventFactHandle) ((ObjectVariableContextEntry) context).right).getStartTimestamp() - ((EventFactHandle) left).getEndTimestamp();
+ return dist < this.initRange || dist > this.finalRange;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ if ( context.extractor.isNullValue( workingMemory,
+ right ) ) {
+ return false;
+ }
+ long dist = ((EventFactHandle) right).getStartTimestamp() - ((EventFactHandle) ((ObjectVariableContextEntry) context).left).getEndTimestamp();
+
+ return dist < this.initRange || dist > this.finalRange;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ if ( extractor1.isNullValue( workingMemory,
+ object1 ) ) {
+ return false;
+ }
+ long dist = ((EventFactHandle) object1).getStartTimestamp() - ((EventFactHandle) object2).getEndTimestamp();
+ return dist < this.initRange || dist > this.finalRange;
+ }
+
+ public String toString() {
+ return "not after[" + initRange + ", " + finalRange + "]";
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = super.hashCode();
+ result = PRIME * result + (int) (finalRange ^ (finalRange >>> 32));
+ result = PRIME * result + (int) (initRange ^ (initRange >>> 32));
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( !super.equals( obj ) ) return false;
+ if ( getClass() != obj.getClass() ) return false;
+ final NotAfterEvaluator other = (NotAfterEvaluator) obj;
+ return finalRange == other.finalRange && initRange == other.initRange;
+ }
+
+ /**
+ * This methods tries to parse the string of parameters to customize
+ * the evaluator.
+ *
+ * @param parameters
+ */
+ private void parseParameters(String parameters) {
+ if ( parameters == null || parameters.trim().length() == 0 ) {
+ // open bounded range
+ this.initRange = 1;
+ this.finalRange = Long.MAX_VALUE;
+ return;
+ }
+
+ try {
+ String[] ranges = parameters.split( "," );
+ if ( ranges.length == 1 ) {
+ // deterministic point in time
+ this.initRange = Long.parseLong( ranges[0] );
+ this.finalRange = this.initRange;
+ } else if ( ranges.length == 2 ) {
+ // regular range
+ this.initRange = Long.parseLong( ranges[0] );
+ this.finalRange = Long.parseLong( ranges[1] );
+ } else {
+ throw new RuntimeDroolsException( "[Not After Evaluator]: Not possible to parse parameters: '" + parameters + "'" );
+ }
+ } catch ( NumberFormatException e ) {
+ throw new RuntimeDroolsException( "[Not After Evaluator]: Not possible to parse parameters: '" + parameters + "'",
+ e );
+ }
+ }
+
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,471 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-import org.drools.util.ShadowProxyUtils;
-
-/**
- * For handling simple (non collection) array types.
- * @author Michael Neale
- */
-public class ArrayFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new ArrayFactory();
-
- private ArrayFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( ArrayFactory.INSTANCE == null ) {
- ArrayFactory.INSTANCE = new ArrayFactory();
- }
- return ArrayFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return ArrayEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return ArrayNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.CONTAINS ) {
- return ArrayContainsEvaluator.INSTANCE;
- } else if ( operator == Operator.EXCLUDES ) {
- return ArrayExcludesEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_CONTAINS ) {
- return ArrayExcludesEvaluator.INSTANCE; // 'not contains' and 'excludes' are synonyms
- } else if ( operator == Operator.MEMBEROF ) {
- return ArrayMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return ArrayNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for ArrayEvaluator" );
- }
- }
-
- static class ArrayEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ArrayEqualEvaluator();
-
- private ArrayEqualEvaluator() {
- super( ValueType.ARRAY_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1,
- final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory,
- object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory,
- left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right == null;
- }
- return value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object right) {
- final Object value = context.extractor.getValue( workingMemory,
- right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value == null;
- }
- return ((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2,
- final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory,
- object1 );
- final Object value2 = extractor2.getValue( workingMemory,
- object2 );
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public String toString() {
- return "Array ==";
- }
-
- }
-
- static class ArrayNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ArrayNotEqualEvaluator();
-
- private ArrayNotEqualEvaluator() {
- super( ValueType.ARRAY_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1,
- final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory,
- object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory,
- left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right != null;
- }
- return !value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object right) {
- final Object value = context.extractor.getValue( workingMemory,
- right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value != null;
- }
- return !((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2,
- final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory,
- object1 );
- final Object value2 = extractor2.getValue( workingMemory,
- object2 );
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public String toString() {
- return "Array !=";
- }
- }
-
- static class ArrayContainsEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ArrayContainsEvaluator();
-
- private ArrayContainsEvaluator() {
- super( ValueType.ARRAY_TYPE,
- Operator.CONTAINS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1,
- final FieldValue object2) {
- final Object value = object2.getValue();
- final Object[] array = (Object[]) extractor.getValue( workingMemory,
- object1 );
- if ( array == null ) return false;
- return ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory,
- left );
- final Object[] array = (Object[]) ((ObjectVariableContextEntry) context).right;
- if ( array == null ) return false;
- return ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object right) {
- final Object value = ((ObjectVariableContextEntry) context).left;
- final Object[] array = (Object[]) context.extractor.getValue( workingMemory,
- right );
- if ( array == null ) return false;
- return ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2,
- final Object object2) {
- final Object value = extractor2.getValue( workingMemory,
- object2 );
- final Object[] array = (Object[]) extractor1.getValue( workingMemory,
- object1 );
-
- if ( array == null ) return false;
- return ShadowProxyUtils.contains( array,
- value );
- }
-
- public String toString() {
- return "Array contains";
- }
- }
-
- static class ArrayExcludesEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ArrayExcludesEvaluator();
-
- private ArrayExcludesEvaluator() {
- super( ValueType.ARRAY_TYPE,
- Operator.EXCLUDES );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1,
- final FieldValue object2) {
- final Object value = object2.getValue();
- final Object[] array = (Object[]) extractor.getValue( workingMemory,
- object1 );
- if ( array == null ) return true;
- return !ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory,
- left );
- final Object[] array = (Object[]) ((ObjectVariableContextEntry) context).right;
- if ( array == null ) return true;
- return !ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object right) {
- final Object value = ((ObjectVariableContextEntry) context).left;
- final Object[] array = (Object[]) context.extractor.getValue( workingMemory,
- right );
- if ( array == null ) return true;
- return !ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2,
- final Object object2) {
- final Object value = extractor2.getValue( workingMemory,
- object2 );
- final Object[] array = (Object[]) extractor1.getValue( workingMemory,
- object1 );
-
- if ( array == null ) return true;
- return !ShadowProxyUtils.contains( array,
- value );
- }
-
- public String toString() {
- return "Array excludes";
- }
- }
-
- static class ArrayMemberOfEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ArrayMemberOfEvaluator();
-
- private ArrayMemberOfEvaluator() {
- super( ValueType.ARRAY_TYPE,
- Operator.MEMBEROF );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1,
- final FieldValue object2) {
- final Object[] array = (Object[]) object2.getValue();
- final Object value = extractor.getValue( workingMemory,
- object1 );
- if ( array == null ) return false;
- return ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object left) {
- final Object[] array = (Object[]) context.declaration.getExtractor().getValue( workingMemory,
- left );
- final Object value = ((ObjectVariableContextEntry) context).right;
- if ( array == null ) return false;
- return ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object right) {
- final Object[] array = (Object[]) ((ObjectVariableContextEntry) context).left;
- final Object value = context.extractor.getValue( workingMemory,
- right );
- if ( array == null ) return false;
- return ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2,
- final Object object2) {
- final Object[] array = (Object[]) extractor2.getValue( workingMemory,
- object2 );
- final Object value = extractor1.getValue( workingMemory,
- object1 );
-
- if ( array == null ) return false;
- return ShadowProxyUtils.contains( array,
- value );
- }
-
- public String toString() {
- return "Array memberOf";
- }
- }
-
- static class ArrayNotMemberOfEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ArrayNotMemberOfEvaluator();
-
- private ArrayNotMemberOfEvaluator() {
- super( ValueType.ARRAY_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1,
- final FieldValue object2) {
- final Object[] array = (Object[]) object2.getValue();
- final Object value = extractor.getValue( workingMemory,
- object1 );
- if ( array == null ) return true;
- return !ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object left) {
- final Object[] array = (Object[]) context.declaration.getExtractor().getValue( workingMemory,
- left );
- final Object value = ((ObjectVariableContextEntry) context).right;
- if ( array == null ) return true;
- return !ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context,
- final Object right) {
- final Object[] array = (Object[]) ((ObjectVariableContextEntry) context).left;
- final Object value = context.extractor.getValue( workingMemory,
- right );
- if ( array == null ) return true;
- return !ShadowProxyUtils.contains( array,
- value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2,
- final Object object2) {
- final Object[] array = (Object[]) extractor2.getValue( workingMemory,
- object2 );
- final Object value = extractor1.getValue( workingMemory,
- object1 );
-
- if ( array == null ) return true;
- return !ShadowProxyUtils.contains( array,
- value );
- }
-
- public String toString() {
- return "Array not memberOf";
- }
- }
-
-
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BaseMemberOfEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BaseMemberOfEvaluator.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BaseMemberOfEvaluator.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,86 +0,0 @@
-/**
- *
- */
-package org.drools.base.evaluators;
-
-import java.util.Collection;
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-import org.drools.util.ShadowProxyUtils;
-
-/**
- * This is a base class for MemberOf Evaluators
- *
- * @author etirelli
- */
-public abstract class BaseMemberOfEvaluator extends BaseEvaluator {
-
- public BaseMemberOfEvaluator(ValueType type,
- Operator operator) {
- super( type,
- operator );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( object2.isNull() ) {
- return false;
- } else if( ! object2.isCollectionField() ) {
- throw new ClassCastException("Can't check if an attribute is member of an object of class "+object2.getValue().getClass() );
- }
- final Collection col = (Collection) object2.getValue();
- final Object value = extractor.getValue( workingMemory, object1 );
- return ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object object = context.declaration.getExtractor().getValue( workingMemory, left );
- if( object == null ) {
- return false;
- } else if( ! ( object instanceof Collection ) ) {
- throw new ClassCastException("Can't check if an attribute is member of an object of class "+object.getClass() );
- }
- final Collection col = (Collection) object;
- final Object value = ((ObjectVariableContextEntry) context).right;
- return ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object object = ((ObjectVariableContextEntry) context).left;
- if( object == null ) {
- return false;
- } else if( ! ( object instanceof Collection ) ) {
- throw new ClassCastException("Can't check if an attribute is member of an object of class "+object.getClass() );
- }
- final Collection col = (Collection) object;
- final Object value = context.extractor.getValue( workingMemory, right );
- return ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object object = extractor2.getValue( workingMemory, object2 );
- if( object == null ) {
- return false;
- } else if( ! ( object instanceof Collection ) ) {
- throw new ClassCastException("Can't check if an attribute is member of an object of class "+object.getClass() );
- }
- final Collection col = (Collection) object;
- final Object value = extractor1.getValue( workingMemory, object1 );
- return ShadowProxyUtils.contains( col, value );
- }
-
- public abstract String toString();
-
-}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BaseNotMemberOfEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BaseNotMemberOfEvaluator.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BaseNotMemberOfEvaluator.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,87 +0,0 @@
-/**
- *
- */
-package org.drools.base.evaluators;
-
-import java.util.Collection;
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-import org.drools.util.ShadowProxyUtils;
-
-/**
- * This is a base class for Not MemberOf Evaluators
- *
- * @author etirelli
- *
- */
-public abstract class BaseNotMemberOfEvaluator extends BaseEvaluator {
-
- public BaseNotMemberOfEvaluator(ValueType type,
- Operator operator) {
- super( type,
- operator );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( object2.isNull() ) {
- return false;
- } else if( ! object2.isCollectionField() ) {
- throw new ClassCastException("Can't check if an attribute is not member of an object of class "+object2.getValue().getClass() );
- }
- final Collection col = (Collection) object2.getValue();
- final Object value = extractor.getValue( workingMemory, object1 );
- return ! ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object object = context.declaration.getExtractor().getValue( workingMemory, left );
- if( object == null ) {
- return false;
- } else if( ! ( object instanceof Collection ) ) {
- throw new ClassCastException("Can't check if an attribute is not member of an object of class "+object.getClass() );
- }
- final Collection col = (Collection) object;
- final Object value = ((ObjectVariableContextEntry) context).right;
- return ! ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object object = ((ObjectVariableContextEntry) context).left;
- if( object == null ) {
- return false;
- } else if( ! ( object instanceof Collection ) ) {
- throw new ClassCastException("Can't check if an attribute is not member of an object of class "+object.getClass() );
- }
- final Collection col = (Collection) object;
- final Object value = context.extractor.getValue( workingMemory, right );
- return ! ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object object = extractor2.getValue( workingMemory, object2 );
- if( object == null ) {
- return false;
- } else if( ! ( object instanceof Collection ) ) {
- throw new ClassCastException("Can't check if an attribute is not member of an object of class "+object.getClass() );
- }
- final Collection col = (Collection) object;
- final Object value = extractor1.getValue( workingMemory, object1 );
- return ! ShadowProxyUtils.contains( col, value );
- }
-
- public abstract String toString();
-
-}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BigDecimalFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BigDecimalFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BigDecimalFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,442 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import java.math.BigDecimal;
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class BigDecimalFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new BigDecimalFactory();
-
- private BigDecimalFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( BigDecimalFactory.INSTANCE == null ) {
- BigDecimalFactory.INSTANCE = new BigDecimalFactory();
- }
- return BigDecimalFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return BigDecimalEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return BigDecimalNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return BigDecimalLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return BigDecimalLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return BigDecimalGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return BigDecimalGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return BigDecimalMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return BigDecimalNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for BigDecimalEvaluator" );
- }
- }
-
- static class BigDecimalEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigDecimalEqualEvaluator();
-
- private BigDecimalEqualEvaluator() {
- super( ValueType.BIG_DECIMAL_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right == null;
- }
- return value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value == null;
- }
- return ((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public String toString() {
- return "BigDecimal ==";
- }
-
- }
-
- static class BigDecimalNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigDecimalNotEqualEvaluator();
-
- private BigDecimalNotEqualEvaluator() {
- super( ValueType.BIG_DECIMAL_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right != null;
- }
- return !value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value != null;
- }
- return !((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public String toString() {
- return "BigDecimal !=";
- }
- }
-
- static class BigDecimalLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigDecimalLessEvaluator();
-
- private BigDecimalLessEvaluator() {
- super( ValueType.BIG_DECIMAL_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) object2.getValue() ) < 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) < 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) < 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) < 0;
- }
-
- public String toString() {
- return "BigDecimal <";
- }
- }
-
- static class BigDecimalLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigDecimalLessOrEqualEvaluator();
-
- private BigDecimalLessOrEqualEvaluator() {
- super( ValueType.BIG_DECIMAL_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) object2.getValue() ) <= 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) <= 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) <= 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) <= 0;
- }
-
- public String toString() {
- return "BigDecimal <=";
- }
- }
-
- static class BigDecimalGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigDecimalGreaterEvaluator();
-
- private BigDecimalGreaterEvaluator() {
- super( ValueType.BIG_DECIMAL_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) object2.getValue() ) > 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) > 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) > 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) > 0;
- }
-
- public String toString() {
- return "BigDecimal >";
- }
- }
-
- static class BigDecimalGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new BigDecimalGreaterOrEqualEvaluator();
-
- private BigDecimalGreaterOrEqualEvaluator() {
- super( ValueType.BIG_DECIMAL_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) object2.getValue() ) >= 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) >= 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) >= 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) >= 0;
- }
-
- public String toString() {
- return "BigDecimal >=";
- }
- }
-
- static class BigDecimalMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigDecimalMemberOfEvaluator();
-
- private BigDecimalMemberOfEvaluator() {
- super( ValueType.BIG_DECIMAL_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "BigDecimal memberOf";
- }
- }
-
- static class BigDecimalNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigDecimalNotMemberOfEvaluator();
-
- private BigDecimalNotMemberOfEvaluator() {
- super( ValueType.BIG_DECIMAL_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "BigDecimal not memberOf";
- }
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BigIntegerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BigIntegerFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BigIntegerFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,442 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import java.math.BigInteger;
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class BigIntegerFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new BigIntegerFactory();
-
- private BigIntegerFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( BigIntegerFactory.INSTANCE == null ) {
- BigIntegerFactory.INSTANCE = new BigIntegerFactory();
- }
- return BigIntegerFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return BigIntegerEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return BigIntegerNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return BigIntegerLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return BigIntegerLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return BigIntegerGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return BigIntegerGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return BigIntegerMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return BigIntegerNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for BigIntegerEvaluator" );
- }
- }
-
- static class BigIntegerEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigIntegerEqualEvaluator();
-
- private BigIntegerEqualEvaluator() {
- super( ValueType.BIG_INTEGER_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right == null;
- }
- return value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value == null;
- }
- return ((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public String toString() {
- return "BigInteger ==";
- }
- }
-
- static class BigIntegerNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigIntegerNotEqualEvaluator();
-
- private BigIntegerNotEqualEvaluator() {
- super( ValueType.BIG_INTEGER_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right != null;
- }
- return !value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value != null;
- }
- return !((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public String toString() {
- return "BigInteger !=";
- }
- }
-
- static class BigIntegerLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigIntegerLessEvaluator();
-
- private BigIntegerLessEvaluator() {
- super( ValueType.BIG_INTEGER_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) object2.getValue() ) < 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) < 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) < 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) < 0;
- }
-
- public String toString() {
- return "BigInteger <";
- }
- }
-
- static class BigIntegerLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigIntegerLessOrEqualEvaluator();
-
- private BigIntegerLessOrEqualEvaluator() {
- super( ValueType.BIG_INTEGER_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) object2.getValue() ) <= 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) <= 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) <= 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) <= 0;
- }
-
- public String toString() {
- return "BigInteger <=";
- }
- }
-
- static class BigIntegerGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigIntegerGreaterEvaluator();
-
- private BigIntegerGreaterEvaluator() {
- super( ValueType.BIG_INTEGER_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) object2.getValue() ) > 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) > 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) > 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) > 0;
- }
-
- public String toString() {
- return "BigInteger >";
- }
- }
-
- static class BigIntegerGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new BigIntegerGreaterOrEqualEvaluator();
-
- private BigIntegerGreaterOrEqualEvaluator() {
- super( ValueType.BIG_INTEGER_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) object2.getValue() ) >= 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
- return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) >= 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
- return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) >= 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
- return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) >= 0;
- }
-
- public String toString() {
- return "BigInteger >=";
- }
- }
-
- static class BigIntegerMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigIntegerMemberOfEvaluator();
-
- private BigIntegerMemberOfEvaluator() {
- super( ValueType.BIG_INTEGER_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "BigInteger memberOf";
- }
- }
-
- static class BigIntegerNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BigIntegerNotMemberOfEvaluator();
-
- private BigIntegerNotMemberOfEvaluator() {
- super( ValueType.BIG_INTEGER_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "BigInteger not memberOf";
- }
- }
-
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BooleanFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BooleanFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/BooleanFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,218 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.BooleanVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class BooleanFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new BooleanFactory();
-
- private BooleanFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( BooleanFactory.INSTANCE == null ) {
- BooleanFactory.INSTANCE = new BooleanFactory();
- }
- return BooleanFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return BooleanEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return BooleanNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return BooleanMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return BooleanNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for BooleanEvaluator" );
- }
- }
-
- static class BooleanEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new BooleanEqualEvaluator();
-
- private BooleanEqualEvaluator() {
- super( ValueType.PBOOLEAN_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return object2.isNull();
- } else if ( object2.isNull() ) {
- return false;
- }
-
- return extractor.getBooleanValue( workingMemory, object1 ) == object2.getBooleanValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return context.isRightNull();
- } else if ( context.isRightNull() ) {
- return false;
- }
-
- return context.declaration.getExtractor().getBooleanValue( workingMemory, left ) == ((BooleanVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object object2) {
- if ( context.extractor.isNullValue( workingMemory, object2 )) {
- return context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return false;
- }
-
- return context.extractor.getBooleanValue( workingMemory, object2 ) == ((BooleanVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return false;
- }
-
- return extractor1.getBooleanValue( workingMemory, object1 ) == extractor2.getBooleanValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Boolean ==";
- }
-
- }
-
- static class BooleanNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BooleanNotEqualEvaluator();
-
- private BooleanNotEqualEvaluator() {
- super( ValueType.PBOOLEAN_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return !object2.isNull();
- } else if ( object2.isNull() ) {
- return true;
- }
-
- return extractor.getBooleanValue( workingMemory, object1 ) != object2.getBooleanValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return !context.isRightNull();
- } else if ( context.isRightNull() ) {
- return true;
- }
- return context.declaration.getExtractor().getBooleanValue( workingMemory, left ) != ((BooleanVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object object2) {
- if ( context.extractor.isNullValue( workingMemory, object2 )) {
- return !context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return true;
- }
-
- return context.extractor.getBooleanValue( workingMemory, object2 ) != ((BooleanVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return !extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return true;
- }
-
- return extractor1.getBooleanValue( workingMemory, object1 ) != extractor1.getBooleanValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Boolean !=";
- }
- }
-
- static class BooleanMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BooleanMemberOfEvaluator();
-
- private BooleanMemberOfEvaluator() {
- super( ValueType.PBOOLEAN_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Boolean memberOf";
- }
- }
-
- static class BooleanNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new BooleanNotMemberOfEvaluator();
-
- private BooleanNotMemberOfEvaluator() {
- super( ValueType.PBOOLEAN_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Boolean not memberOf";
- }
- }
-
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ByteFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ByteFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ByteFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,435 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.LongVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class ByteFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new ByteFactory();
-
- private ByteFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( ByteFactory.INSTANCE == null ) {
- ByteFactory.INSTANCE = new ByteFactory();
- }
- return ByteFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return ByteEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return ByteNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return ByteLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return ByteLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return ByteGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return ByteGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return ByteMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return ByteNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for ByteEvaluator" );
- }
- }
-
- static class ByteEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ByteEqualEvaluator();
-
- private ByteEqualEvaluator() {
- super( ValueType.PBYTE_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return object2.isNull();
- } else if ( object2.isNull() ) {
- return false;
- }
-
- return extractor.getByteValue( workingMemory, object1 ) == object2.getByteValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return context.isRightNull();
- } else if ( context.isRightNull() ) {
- return false;
- }
-
- return context.declaration.getExtractor().getByteValue( workingMemory, left ) == ((LongVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right )) {
- return context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return false;
- }
-
- return ((LongVariableContextEntry) context).left == context.extractor.getByteValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return false;
- }
-
- return extractor1.getByteValue( workingMemory, object1 ) == extractor2.getByteValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Byte ==";
- }
-
- }
-
- static class ByteNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ByteNotEqualEvaluator();
-
- private ByteNotEqualEvaluator() {
- super( ValueType.PBYTE_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return !object2.isNull();
- } else if ( object2.isNull() ) {
- return true;
- }
-
- return extractor.getByteValue( workingMemory, object1 ) != object2.getByteValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return !context.isRightNull();
- } else if ( context.isRightNull() ) {
- return true;
- }
-
- return context.declaration.getExtractor().getByteValue( workingMemory, left ) != ((LongVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object object2) {
- if ( context.extractor.isNullValue( workingMemory, object2 ) ) {
- return !context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return true;
- }
-
- return ((LongVariableContextEntry) context).left != context.extractor.getByteValue( workingMemory, object2 );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return !extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return true;
- }
-
- return extractor1.getByteValue( workingMemory, object1 ) != extractor2.getByteValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Byte !=";
- }
- }
-
- static class ByteLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ByteLessEvaluator();
-
- private ByteLessEvaluator() {
- super( ValueType.PBYTE_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getByteValue( workingMemory, object1 ) < object2.getByteValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right < context.declaration.getExtractor().getByteValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getByteValue( workingMemory, right ) < ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getByteValue( workingMemory, object1 ) < extractor2.getByteValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Byte <";
- }
- }
-
- static class ByteLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ByteLessOrEqualEvaluator();
-
- private ByteLessOrEqualEvaluator() {
- super( ValueType.PBYTE_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getByteValue( workingMemory, object1 ) <= object2.getByteValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right <= context.declaration.getExtractor().getByteValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getByteValue( workingMemory, right ) <= ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getByteValue( workingMemory, object1 ) <= extractor2.getByteValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Byte <=";
- }
- }
-
- static class ByteGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ByteGreaterEvaluator();
-
- private ByteGreaterEvaluator() {
- super( ValueType.PBYTE_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getByteValue( workingMemory, object1 ) > object2.getByteValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right > context.declaration.getExtractor().getByteValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getByteValue( workingMemory, right ) > ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getByteValue( workingMemory, object1 ) > extractor2.getByteValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Byte >";
- }
- }
-
- static class ByteGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new ByteGreaterOrEqualEvaluator();
-
- private ByteGreaterOrEqualEvaluator() {
- super( ValueType.PBYTE_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getByteValue( workingMemory, object1 ) >= object2.getByteValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right >= context.declaration.getExtractor().getByteValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getByteValue( workingMemory, right ) >= ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getByteValue( workingMemory, object1 ) >= extractor2.getByteValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Byte >=";
- }
- }
-
- static class ByteMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ByteMemberOfEvaluator();
-
- private ByteMemberOfEvaluator() {
- super( ValueType.PBYTE_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Byte memberOf";
- }
- }
-
- static class ByteNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ByteNotMemberOfEvaluator();
-
- private ByteNotMemberOfEvaluator() {
- super( ValueType.PBYTE_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Byte not memberOf";
- }
- }
-
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/CharacterFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/CharacterFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/CharacterFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,434 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.CharVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class CharacterFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new CharacterFactory();
-
- private CharacterFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( CharacterFactory.INSTANCE == null ) {
- CharacterFactory.INSTANCE = new CharacterFactory();
- }
- return CharacterFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return CharacterEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return CharacterNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return CharacterLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return CharacterLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return CharacterGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return CharacterGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return CharacterMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return CharacterNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for CharacterEvaluator" );
- }
- }
-
- static class CharacterEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new CharacterEqualEvaluator();
-
- private CharacterEqualEvaluator() {
- super( ValueType.PCHAR_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return object2.isNull();
- } else if ( object2.isNull() ) {
- return false;
- }
-
- return extractor.getCharValue( workingMemory, object1 ) == object2.getCharValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return context.isRightNull();
- } else if ( context.isRightNull() ) {
- return false;
- }
-
- return context.declaration.getExtractor().getCharValue( workingMemory, left ) == ((CharVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right )) {
- return context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return false;
- }
-
- return ((CharVariableContextEntry) context).left == context.extractor.getCharValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return false;
- }
-
- return extractor1.getCharValue( workingMemory, object1 ) == extractor2.getCharValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Character ==";
- }
- }
-
- static class CharacterNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new CharacterNotEqualEvaluator();
-
- private CharacterNotEqualEvaluator() {
- super( ValueType.PCHAR_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return !object2.isNull();
- } else if ( object2.isNull() ) {
- return true;
- }
-
- return extractor.getCharValue( workingMemory, object1 ) != object2.getCharValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return !context.isRightNull();
- } else if ( context.isRightNull() ) {
- return true;
- }
-
- return context.declaration.getExtractor().getCharValue( workingMemory, left ) != ((CharVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right ) ) {
- return !context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return true;
- }
-
- return ((CharVariableContextEntry) context).left != context.extractor.getCharValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return !extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return true;
- }
-
- return extractor1.getCharValue( workingMemory, object1 ) != extractor2.getCharValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Character !=";
- }
- }
-
- static class CharacterLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new CharacterLessEvaluator();
-
- private CharacterLessEvaluator() {
- super( ValueType.PCHAR_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getCharValue( workingMemory, object1 ) < object2.getCharValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((CharVariableContextEntry) context).right < context.declaration.getExtractor().getCharValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getCharValue( workingMemory, right ) < ((CharVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getCharValue( workingMemory, object1 ) < extractor2.getCharValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Character <";
- }
- }
-
- static class CharacterLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new CharacterLessOrEqualEvaluator();
-
- private CharacterLessOrEqualEvaluator() {
- super( ValueType.PCHAR_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getCharValue( workingMemory, object1 ) <= object2.getCharValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((CharVariableContextEntry) context).right <= context.declaration.getExtractor().getCharValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getCharValue( workingMemory, right ) <= ((CharVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getCharValue( workingMemory, object1 ) <= extractor2.getCharValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Character <=";
- }
- }
-
- static class CharacterGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new CharacterGreaterEvaluator();
-
- private CharacterGreaterEvaluator() {
- super( ValueType.PCHAR_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getCharValue( workingMemory, object1 ) > object2.getCharValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((CharVariableContextEntry) context).right > context.declaration.getExtractor().getCharValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getCharValue( workingMemory, right ) > ((CharVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getCharValue( workingMemory, object1 ) > extractor2.getCharValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Character >";
- }
- }
-
- static class CharacterGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new CharacterGreaterOrEqualEvaluator();
-
- private CharacterGreaterOrEqualEvaluator() {
- super( ValueType.PCHAR_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getCharValue( workingMemory, object1 ) >= object2.getCharValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((CharVariableContextEntry) context).right >= context.declaration.getExtractor().getCharValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getCharValue( workingMemory, right ) >= ((CharVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getCharValue( workingMemory, object1 ) >= extractor2.getCharValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Character >=";
- }
- }
-
- static class CharacterMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new CharacterMemberOfEvaluator();
-
- private CharacterMemberOfEvaluator() {
- super( ValueType.PCHAR_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Character memberOf";
- }
- }
-
- static class CharacterNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new CharacterNotMemberOfEvaluator();
-
- private CharacterNotMemberOfEvaluator() {
- super( ValueType.PCHAR_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Character not memberOf";
- }
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ComparableEvaluatorsDefinition.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,2632 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.base.evaluators;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Comparator;
+import java.util.Date;
+
+import org.drools.base.BaseEvaluator;
+import org.drools.base.ShadowProxy;
+import org.drools.base.ValueType;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.VariableRestriction.CharVariableContextEntry;
+import org.drools.rule.VariableRestriction.DoubleVariableContextEntry;
+import org.drools.rule.VariableRestriction.LongVariableContextEntry;
+import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
+import org.drools.rule.VariableRestriction.VariableContextEntry;
+import org.drools.spi.Evaluator;
+import org.drools.spi.Extractor;
+import org.drools.spi.FieldValue;
+import org.drools.util.DateUtils;
+
+/**
+ * This class defines all the comparable built in
+ * evaluators like >, >=, etc.
+ *
+ * @author etirelli
+ */
+public class ComparableEvaluatorsDefinition implements EvaluatorDefinition {
+
+ private static final String[] SUPPORTED_IDS = { Operator.LESS.getOperatorString(), Operator.LESS_OR_EQUAL.getOperatorString(),
+ Operator.GREATER.getOperatorString(), Operator.GREATER_OR_EQUAL.getOperatorString() };
+ private EvaluatorCache evaluators = new EvaluatorCache() {
+ private static final long serialVersionUID = 4782368623L;
+ {
+ addEvaluator( ValueType.BIG_DECIMAL_TYPE, Operator.LESS, BigDecimalLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_DECIMAL_TYPE, Operator.LESS_OR_EQUAL, BigDecimalLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_DECIMAL_TYPE, Operator.GREATER, BigDecimalGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_DECIMAL_TYPE, Operator.GREATER_OR_EQUAL, BigDecimalGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_INTEGER_TYPE, Operator.LESS, BigIntegerLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_INTEGER_TYPE, Operator.LESS_OR_EQUAL, BigIntegerLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_INTEGER_TYPE, Operator.GREATER, BigIntegerGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_INTEGER_TYPE, Operator.GREATER_OR_EQUAL, BigIntegerGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BYTE_TYPE, Operator.LESS, ByteLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.BYTE_TYPE, Operator.LESS_OR_EQUAL, ByteLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BYTE_TYPE, Operator.GREATER, ByteGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.BYTE_TYPE, Operator.GREATER_OR_EQUAL, ByteGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBYTE_TYPE, Operator.LESS, ByteLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBYTE_TYPE, Operator.LESS_OR_EQUAL, ByteLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBYTE_TYPE, Operator.GREATER, ByteGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBYTE_TYPE, Operator.GREATER_OR_EQUAL, ByteGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.CHAR_TYPE, Operator.LESS, CharacterLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.CHAR_TYPE, Operator.LESS_OR_EQUAL, CharacterLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.CHAR_TYPE, Operator.GREATER, CharacterGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.CHAR_TYPE, Operator.GREATER_OR_EQUAL, CharacterGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PCHAR_TYPE, Operator.LESS, CharacterLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.PCHAR_TYPE, Operator.LESS_OR_EQUAL, CharacterLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PCHAR_TYPE, Operator.GREATER, CharacterGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.PCHAR_TYPE, Operator.GREATER_OR_EQUAL, CharacterGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.DATE_TYPE, Operator.LESS, DateLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.DATE_TYPE, Operator.LESS_OR_EQUAL, DateLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.DATE_TYPE, Operator.GREATER, DateGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.DATE_TYPE, Operator.GREATER_OR_EQUAL, DateGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.DOUBLE_TYPE, Operator.LESS, DoubleLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.DOUBLE_TYPE, Operator.LESS_OR_EQUAL, DoubleLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.DOUBLE_TYPE, Operator.GREATER, DoubleGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.DOUBLE_TYPE, Operator.GREATER_OR_EQUAL, DoubleGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PDOUBLE_TYPE, Operator.LESS, DoubleLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.PDOUBLE_TYPE, Operator.LESS_OR_EQUAL, DoubleLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PDOUBLE_TYPE, Operator.GREATER, DoubleGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.PDOUBLE_TYPE, Operator.GREATER_OR_EQUAL, DoubleGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.FLOAT_TYPE, Operator.LESS, FloatLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.FLOAT_TYPE, Operator.LESS_OR_EQUAL, FloatLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.FLOAT_TYPE, Operator.GREATER, FloatGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.FLOAT_TYPE, Operator.GREATER_OR_EQUAL, FloatGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PFLOAT_TYPE, Operator.LESS, FloatLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.PFLOAT_TYPE, Operator.LESS_OR_EQUAL, FloatLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PFLOAT_TYPE, Operator.GREATER, FloatGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.PFLOAT_TYPE, Operator.GREATER_OR_EQUAL, FloatGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.INTEGER_TYPE, Operator.LESS, IntegerLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.INTEGER_TYPE, Operator.LESS_OR_EQUAL, IntegerLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.INTEGER_TYPE, Operator.GREATER, IntegerGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.INTEGER_TYPE, Operator.GREATER_OR_EQUAL, IntegerGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PINTEGER_TYPE, Operator.LESS, IntegerLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.PINTEGER_TYPE, Operator.LESS_OR_EQUAL, IntegerLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PINTEGER_TYPE, Operator.GREATER, IntegerGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.PINTEGER_TYPE, Operator.GREATER_OR_EQUAL, IntegerGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.LONG_TYPE, Operator.LESS, LongLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.LONG_TYPE, Operator.LESS_OR_EQUAL, LongLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.LONG_TYPE, Operator.GREATER, LongGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.LONG_TYPE, Operator.GREATER_OR_EQUAL, LongGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PLONG_TYPE, Operator.LESS, LongLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.PLONG_TYPE, Operator.LESS_OR_EQUAL, LongLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PLONG_TYPE, Operator.GREATER, LongGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.PLONG_TYPE, Operator.GREATER_OR_EQUAL, LongGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, Operator.LESS, ObjectLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, Operator.LESS_OR_EQUAL, ObjectLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, Operator.GREATER, ObjectGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, Operator.GREATER_OR_EQUAL, ObjectGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.SHORT_TYPE, Operator.LESS, ShortLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.SHORT_TYPE, Operator.LESS_OR_EQUAL, ShortLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.SHORT_TYPE, Operator.GREATER, ShortGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.SHORT_TYPE, Operator.GREATER_OR_EQUAL, ShortGreaterOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PSHORT_TYPE, Operator.LESS, ShortLessEvaluator.INSTANCE );
+ addEvaluator( ValueType.PSHORT_TYPE, Operator.LESS_OR_EQUAL, ShortLessOrEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PSHORT_TYPE, Operator.GREATER, ShortGreaterEvaluator.INSTANCE );
+ addEvaluator( ValueType.PSHORT_TYPE, Operator.GREATER_OR_EQUAL, ShortGreaterOrEqualEvaluator.INSTANCE );
+ }
+ };
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator,
+ String parameterText) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+ public Evaluator getEvaluator(final ValueType type,
+ final String operatorId,
+ final boolean isNegated,
+ final String parameterText) {
+ return this.evaluators.getEvaluator( type,
+ Operator.determineOperator( operatorId,
+ isNegated ) );
+ }
+
+ public String[] getEvaluatorIds() {
+ return SUPPORTED_IDS;
+ }
+
+ public boolean isNegatable() {
+ return false;
+ }
+
+ public boolean operatesOnFactHandles() {
+ return false;
+ }
+
+ public boolean supportsType(ValueType type) {
+ return this.evaluators.supportsType( type );
+ }
+
+ /* *********************************************************
+ * Evaluator Implementations
+ * *********************************************************
+ */
+ static class BigDecimalLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigDecimalLessEvaluator();
+
+ private BigDecimalLessEvaluator() {
+ super( ValueType.BIG_DECIMAL_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigDecimal) object2.getValue() ) < 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
+ return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) < 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
+ return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) < 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) < 0;
+ }
+
+ public String toString() {
+ return "BigDecimal <";
+ }
+ }
+
+ static class BigDecimalLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigDecimalLessOrEqualEvaluator();
+
+ private BigDecimalLessOrEqualEvaluator() {
+ super( ValueType.BIG_DECIMAL_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigDecimal) object2.getValue() ) <= 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
+ return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) <= 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
+ return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) <= 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) <= 0;
+ }
+
+ public String toString() {
+ return "BigDecimal <=";
+ }
+ }
+
+ static class BigDecimalGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigDecimalGreaterEvaluator();
+
+ private BigDecimalGreaterEvaluator() {
+ super( ValueType.BIG_DECIMAL_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigDecimal) object2.getValue() ) > 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
+ return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) > 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
+ return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) > 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) > 0;
+ }
+
+ public String toString() {
+ return "BigDecimal >";
+ }
+ }
+
+ static class BigDecimalGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new BigDecimalGreaterOrEqualEvaluator();
+
+ private BigDecimalGreaterOrEqualEvaluator() {
+ super( ValueType.BIG_DECIMAL_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) extractor.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigDecimal) object2.getValue() ) >= 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) ((ObjectVariableContextEntry) context).right;
+ return comp.compareTo( (BigDecimal) context.declaration.getExtractor().getValue( workingMemory, left ) ) >= 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) context.extractor.getValue( workingMemory, right );
+ return comp.compareTo( (BigDecimal) ((ObjectVariableContextEntry) context).left ) >= 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigDecimal comp = (BigDecimal) extractor1.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigDecimal) extractor2.getValue( workingMemory, object2 ) ) >= 0;
+ }
+
+ public String toString() {
+ return "BigDecimal >=";
+ }
+ }
+
+ static class BigIntegerLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigIntegerLessEvaluator();
+
+ private BigIntegerLessEvaluator() {
+ super( ValueType.BIG_INTEGER_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigInteger) object2.getValue() ) < 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
+ return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) < 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
+ return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) < 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) < 0;
+ }
+
+ public String toString() {
+ return "BigInteger <";
+ }
+ }
+
+ static class BigIntegerLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigIntegerLessOrEqualEvaluator();
+
+ private BigIntegerLessOrEqualEvaluator() {
+ super( ValueType.BIG_INTEGER_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigInteger) object2.getValue() ) <= 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
+ return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) <= 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
+ return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) <= 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) <= 0;
+ }
+
+ public String toString() {
+ return "BigInteger <=";
+ }
+ }
+
+ static class BigIntegerGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigIntegerGreaterEvaluator();
+
+ private BigIntegerGreaterEvaluator() {
+ super( ValueType.BIG_INTEGER_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigInteger) object2.getValue() ) > 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
+ return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) > 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
+ return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) > 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) > 0;
+ }
+
+ public String toString() {
+ return "BigInteger >";
+ }
+ }
+
+ static class BigIntegerGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new BigIntegerGreaterOrEqualEvaluator();
+
+ private BigIntegerGreaterOrEqualEvaluator() {
+ super( ValueType.BIG_INTEGER_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) extractor.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigInteger) object2.getValue() ) >= 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) ((ObjectVariableContextEntry) context).right;
+ return comp.compareTo( (BigInteger) context.declaration.getExtractor().getValue( workingMemory, left ) ) >= 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) context.extractor.getValue( workingMemory, right );
+ return comp.compareTo( (BigInteger) ((ObjectVariableContextEntry) context).left ) >= 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final BigInteger comp = (BigInteger) extractor1.getValue( workingMemory, object1 );
+ return comp.compareTo( (BigInteger) extractor2.getValue( workingMemory, object2 ) ) >= 0;
+ }
+
+ public String toString() {
+ return "BigInteger >=";
+ }
+ }
+
+ static class ByteLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ByteLessEvaluator();
+
+ private ByteLessEvaluator() {
+ super( ValueType.PBYTE_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getByteValue( workingMemory, object1 ) < object2.getByteValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right < context.declaration.getExtractor().getByteValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getByteValue( workingMemory, right ) < ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getByteValue( workingMemory, object1 ) < extractor2.getByteValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Byte <";
+ }
+ }
+
+ static class ByteLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ByteLessOrEqualEvaluator();
+
+ private ByteLessOrEqualEvaluator() {
+ super( ValueType.PBYTE_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getByteValue( workingMemory, object1 ) <= object2.getByteValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right <= context.declaration.getExtractor().getByteValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getByteValue( workingMemory, right ) <= ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getByteValue( workingMemory, object1 ) <= extractor2.getByteValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Byte <=";
+ }
+ }
+
+ static class ByteGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ByteGreaterEvaluator();
+
+ private ByteGreaterEvaluator() {
+ super( ValueType.PBYTE_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getByteValue( workingMemory, object1 ) > object2.getByteValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right > context.declaration.getExtractor().getByteValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getByteValue( workingMemory, right ) > ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getByteValue( workingMemory, object1 ) > extractor2.getByteValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Byte >";
+ }
+ }
+
+ static class ByteGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new ByteGreaterOrEqualEvaluator();
+
+ private ByteGreaterOrEqualEvaluator() {
+ super( ValueType.PBYTE_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getByteValue( workingMemory, object1 ) >= object2.getByteValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right >= context.declaration.getExtractor().getByteValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getByteValue( workingMemory, right ) >= ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getByteValue( workingMemory, object1 ) >= extractor2.getByteValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Byte >=";
+ }
+ }
+
+ static class CharacterLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new CharacterLessEvaluator();
+
+ private CharacterLessEvaluator() {
+ super( ValueType.PCHAR_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getCharValue( workingMemory, object1 ) < object2.getCharValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((CharVariableContextEntry) context).right < context.declaration.getExtractor().getCharValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getCharValue( workingMemory, right ) < ((CharVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getCharValue( workingMemory, object1 ) < extractor2.getCharValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Character <";
+ }
+ }
+
+ static class CharacterLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new CharacterLessOrEqualEvaluator();
+
+ private CharacterLessOrEqualEvaluator() {
+ super( ValueType.PCHAR_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getCharValue( workingMemory, object1 ) <= object2.getCharValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((CharVariableContextEntry) context).right <= context.declaration.getExtractor().getCharValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getCharValue( workingMemory, right ) <= ((CharVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getCharValue( workingMemory, object1 ) <= extractor2.getCharValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Character <=";
+ }
+ }
+
+ static class CharacterGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new CharacterGreaterEvaluator();
+
+ private CharacterGreaterEvaluator() {
+ super( ValueType.PCHAR_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getCharValue( workingMemory, object1 ) > object2.getCharValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((CharVariableContextEntry) context).right > context.declaration.getExtractor().getCharValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getCharValue( workingMemory, right ) > ((CharVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getCharValue( workingMemory, object1 ) > extractor2.getCharValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Character >";
+ }
+ }
+
+ static class CharacterGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new CharacterGreaterOrEqualEvaluator();
+
+ private CharacterGreaterOrEqualEvaluator() {
+ super( ValueType.PCHAR_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getCharValue( workingMemory, object1 ) >= object2.getCharValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((CharVariableContextEntry) context).right >= context.declaration.getExtractor().getCharValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getCharValue( workingMemory, right ) >= ((CharVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getCharValue( workingMemory, object1 ) >= extractor2.getCharValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Character >=";
+ }
+ }
+
+ static class DateLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DateLessEvaluator();
+
+ private DateLessEvaluator() {
+ super( ValueType.DATE_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) < 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value2 = ((ObjectVariableContextEntry) context).right;
+ return DateUtils.getRightDate( value2 ).compareTo( value1 ) < 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
+ final Object value2 = context.extractor.getValue( workingMemory, right );
+ return DateUtils.getRightDate( value2 ).compareTo( value1 ) < 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
+ final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
+ return value1.compareTo( value2 ) < 0;
+ }
+
+ public String toString() {
+ return "Date <";
+ }
+ }
+
+ static class DateLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DateLessOrEqualEvaluator();
+
+ private DateLessOrEqualEvaluator() {
+ super( ValueType.DATE_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) <= 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value2 = ((ObjectVariableContextEntry) context).right;
+ return DateUtils.getRightDate( value2 ).compareTo( value1 ) <= 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
+ final Object value2 = context.extractor.getValue( workingMemory, right );
+ return DateUtils.getRightDate( value2 ).compareTo( value1 ) <= 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
+ final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
+ return value1.compareTo( value2 ) <= 0;
+ }
+
+ public String toString() {
+ return "Date <=";
+ }
+ }
+
+ static class DateGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DateGreaterEvaluator();
+
+ private DateGreaterEvaluator() {
+ super( ValueType.DATE_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) > 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value2 = ((ObjectVariableContextEntry) context).right;
+ return DateUtils.getRightDate( value2 ).compareTo( value1 ) > 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
+ final Object value2 = context.extractor.getValue( workingMemory, right );
+ return DateUtils.getRightDate( value2 ).compareTo( value1 ) > 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
+ final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
+ return value1.compareTo( value2 ) > 0;
+ }
+
+ public String toString() {
+ return "Date >";
+ }
+ }
+
+ static class DateGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new DateGreaterOrEqualEvaluator();
+
+ private DateGreaterOrEqualEvaluator() {
+ super( ValueType.DATE_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) >= 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value2 = ((ObjectVariableContextEntry) context).right;
+ return DateUtils.getRightDate( value2 ).compareTo( value1 ) >= 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
+ final Object value2 = context.extractor.getValue( workingMemory, right );
+ return DateUtils.getRightDate( value2 ).compareTo( value1 ) >= 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
+ final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
+ return value1.compareTo( value2 ) >= 0;
+ }
+
+ public String toString() {
+ return "Date >=";
+ }
+ }
+
+ static class DoubleLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DoubleLessEvaluator();
+
+ private DoubleLessEvaluator() {
+ super( ValueType.PDOUBLE_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getDoubleValue( workingMemory, object1 ) < object2.getDoubleValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).right < context.declaration.getExtractor().getDoubleValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return context.extractor.getDoubleValue( workingMemory, right ) < ((DoubleVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getDoubleValue( workingMemory, object1 ) < extractor2.getDoubleValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Double <";
+ }
+ }
+
+ static class DoubleLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DoubleLessOrEqualEvaluator();
+
+ private DoubleLessOrEqualEvaluator() {
+ super( ValueType.PDOUBLE_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getDoubleValue( workingMemory, object1 ) <= object2.getDoubleValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).right <= context.declaration.getExtractor().getDoubleValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return context.extractor.getDoubleValue( workingMemory, right ) <= ((DoubleVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getDoubleValue( workingMemory, object1 ) <= extractor2.getDoubleValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Double <=";
+ }
+ }
+
+ static class DoubleGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DoubleGreaterEvaluator();
+
+ private DoubleGreaterEvaluator() {
+ super( ValueType.PDOUBLE_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getDoubleValue( workingMemory, object1 ) > object2.getDoubleValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).right > context.declaration.getExtractor().getDoubleValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return context.extractor.getDoubleValue( workingMemory, right ) > ((DoubleVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getDoubleValue( workingMemory, object1 ) > extractor2.getDoubleValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Double >";
+ }
+ }
+
+ static class DoubleGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new DoubleGreaterOrEqualEvaluator();
+
+ private DoubleGreaterOrEqualEvaluator() {
+ super( ValueType.PDOUBLE_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getDoubleValue( workingMemory, object1 ) >= object2.getDoubleValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).right >= context.declaration.getExtractor().getDoubleValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return context.extractor.getDoubleValue( workingMemory, right ) >= ((DoubleVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getDoubleValue( workingMemory, object1 ) >= extractor2.getDoubleValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Double >=";
+ }
+ }
+
+ static class FloatLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new FloatLessEvaluator();
+
+ private FloatLessEvaluator() {
+ super( ValueType.PFLOAT_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getFloatValue( workingMemory, object1 ) < object2.getFloatValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).right < context.declaration.getExtractor().getFloatValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return context.extractor.getFloatValue( workingMemory, right ) < ((DoubleVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getFloatValue( workingMemory, object1 ) < extractor2.getFloatValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Float <";
+ }
+ }
+
+ static class FloatLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new FloatLessOrEqualEvaluator();
+
+ private FloatLessOrEqualEvaluator() {
+ super( ValueType.PFLOAT_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getFloatValue( workingMemory, object1 ) <= object2.getFloatValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).right <= context.declaration.getExtractor().getFloatValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return context.extractor.getFloatValue( workingMemory, right ) <= ((DoubleVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getFloatValue( workingMemory, object1 ) <= extractor2.getFloatValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Float <=";
+ }
+ }
+
+ static class FloatGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new FloatGreaterEvaluator();
+
+ private FloatGreaterEvaluator() {
+ super( ValueType.PFLOAT_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getFloatValue( workingMemory, object1 ) > object2.getFloatValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).right > context.declaration.getExtractor().getFloatValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return context.extractor.getFloatValue( workingMemory, right ) > ((DoubleVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getFloatValue( workingMemory, object1 ) > extractor2.getFloatValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Float >";
+ }
+ }
+
+ static class FloatGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new FloatGreaterOrEqualEvaluator();
+
+ private FloatGreaterOrEqualEvaluator() {
+ super( ValueType.PFLOAT_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getFloatValue( workingMemory, object1 ) >= object2.getFloatValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).right >= context.declaration.getExtractor().getFloatValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return context.extractor.getFloatValue( workingMemory, right ) >= ((DoubleVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getFloatValue( workingMemory, object1 ) >= extractor2.getFloatValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Float >=";
+ }
+ }
+
+ static class IntegerLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new IntegerLessEvaluator();
+
+ private IntegerLessEvaluator() {
+ super( ValueType.PINTEGER_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getIntValue( workingMemory, object1 ) < object2.getIntValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right < context.declaration.getExtractor().getIntValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getIntValue( workingMemory, right ) < ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getIntValue( workingMemory, object1 ) < extractor2.getIntValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Integer <";
+ }
+ }
+
+ static class IntegerLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new IntegerLessOrEqualEvaluator();
+
+ private IntegerLessOrEqualEvaluator() {
+ super( ValueType.PINTEGER_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getIntValue( workingMemory, object1 ) <= object2.getIntValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right <= context.declaration.getExtractor().getIntValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getIntValue( workingMemory, right ) <= ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getIntValue( workingMemory, object1 ) <= extractor2.getIntValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Integer <=";
+ }
+ }
+
+ static class IntegerGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new IntegerGreaterEvaluator();
+
+ private IntegerGreaterEvaluator() {
+ super( ValueType.PINTEGER_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getIntValue( workingMemory, object1 ) > object2.getIntValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right > context.declaration.getExtractor().getIntValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getIntValue( workingMemory, right ) > ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getIntValue( workingMemory, object1 ) > extractor2.getIntValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Integer >";
+ }
+ }
+
+ static class IntegerGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new IntegerGreaterOrEqualEvaluator();
+
+ private IntegerGreaterOrEqualEvaluator() {
+ super( ValueType.PINTEGER_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getIntValue( workingMemory, object1 ) >= object2.getIntValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right >= context.declaration.getExtractor().getIntValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getIntValue( workingMemory, right ) >= ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getIntValue( workingMemory, object1 ) >= extractor2.getIntValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Integer >=";
+ }
+ }
+
+ static class LongLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new LongLessEvaluator();
+
+ private LongLessEvaluator() {
+ super( ValueType.PLONG_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getLongValue( workingMemory, object1 ) < object2.getLongValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right < context.declaration.getExtractor().getLongValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getLongValue( workingMemory, right ) < ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getLongValue( workingMemory, object1 ) < extractor2.getLongValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Long <";
+ }
+ }
+
+ static class LongLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new LongLessOrEqualEvaluator();
+
+ private LongLessOrEqualEvaluator() {
+ super( ValueType.PLONG_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getLongValue( workingMemory, object1 ) <= object2.getLongValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right <= context.declaration.getExtractor().getLongValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getLongValue( workingMemory, right ) <= ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getLongValue( workingMemory, object1 ) <= extractor2.getLongValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Long <=";
+ }
+ }
+
+ static class LongGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new LongGreaterEvaluator();
+
+ private LongGreaterEvaluator() {
+ super( ValueType.PLONG_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getLongValue( workingMemory, object1 ) > object2.getLongValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right > context.declaration.getExtractor().getLongValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getLongValue( workingMemory, right ) > ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getLongValue( workingMemory, object1 ) > extractor2.getLongValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Long >";
+ }
+ }
+
+ static class LongGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new LongGreaterOrEqualEvaluator();
+
+ private LongGreaterOrEqualEvaluator() {
+ super( ValueType.PLONG_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getLongValue( workingMemory, object1 ) >= object2.getLongValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right >= context.declaration.getExtractor().getLongValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getLongValue( workingMemory, right ) >= ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getLongValue( workingMemory, object1 ) >= extractor2.getLongValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Long >=";
+ }
+ }
+
+ static class ObjectLessEvaluator extends BaseEvaluator {
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectLessEvaluator();
+ private static final ObjectComparator comparator = new ObjectComparator();
+
+
+ private ObjectLessEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) extractor.getValue( workingMemory, object1 );
+ return comparator.compare( comp, object2.getValue() ) < 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) ((ObjectVariableContextEntry) context).right;
+ return comparator.compare( comp, context.declaration.getExtractor().getValue( workingMemory, left ) ) < 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) context.extractor.getValue( workingMemory, right );
+ return comparator.compare( comp, ((ObjectVariableContextEntry) context).left ) < 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) extractor1.getValue( workingMemory, object1 );
+ return comparator.compare( comp, extractor2.getValue( workingMemory, object2 ) ) < 0;
+ }
+
+ public String toString() {
+ return "Object <";
+ }
+ }
+
+ static class ObjectLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectLessOrEqualEvaluator();
+ private static final ObjectComparator comparator = new ObjectComparator();
+
+ private ObjectLessOrEqualEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) extractor.getValue( workingMemory, object1 );
+ return comparator.compare( comp, object2.getValue() ) <= 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) ((ObjectVariableContextEntry) context).right;
+ return comparator.compare( comp, context.declaration.getExtractor().getValue( workingMemory, left ) ) <= 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) context.extractor.getValue( workingMemory, right );
+ return comparator.compare( comp, ((ObjectVariableContextEntry) context).left ) <= 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) extractor1.getValue( workingMemory, object1 );
+ return comparator.compare( comp, extractor2.getValue( workingMemory, object2 ) ) <= 0;
+ }
+
+ public String toString() {
+ return "Object <=";
+ }
+ }
+
+ static class ObjectGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectGreaterEvaluator();
+ private static final ObjectComparator comparator = new ObjectComparator();
+
+ private ObjectGreaterEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) extractor.getValue( workingMemory, object1 );
+ return comparator.compare( comp, object2.getValue() ) > 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) ((ObjectVariableContextEntry) context).right;
+ return comparator.compare( comp, context.declaration.getExtractor().getValue( workingMemory, left ) ) > 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) context.extractor.getValue( workingMemory, right );
+ return comparator.compare( comp, ((ObjectVariableContextEntry) context).left ) > 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) extractor1.getValue( workingMemory, object1 );
+ return comparator.compare( comp, extractor2.getValue( workingMemory, object2 ) ) > 0;
+ }
+
+ public String toString() {
+ return "Object >";
+ }
+ }
+
+ static class ObjectGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectGreaterOrEqualEvaluator();
+ private static final ObjectComparator comparator = new ObjectComparator();
+
+ private ObjectGreaterOrEqualEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) extractor.getValue( workingMemory, object1 );
+ return comparator.compare( comp, object2.getValue() ) >= 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) ((ObjectVariableContextEntry) context).right;
+ return comparator.compare( comp, context.declaration.getExtractor().getValue( workingMemory, left ) ) >= 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) context.extractor.getValue( workingMemory, right );
+ return comparator.compare( comp, ((ObjectVariableContextEntry) context).left ) >= 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ final Comparable comp = (Comparable) extractor1.getValue( workingMemory, object1 );
+ return comparator.compare( comp, extractor2.getValue( workingMemory, object2 ) ) >= 0;
+ }
+
+ public String toString() {
+ return "Object >=";
+ }
+ }
+
+ static class ShortLessEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private static final Evaluator INSTANCE = new ShortLessEvaluator();
+
+ private ShortLessEvaluator() {
+ super( ValueType.PSHORT_TYPE,
+ Operator.LESS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getShortValue( workingMemory, object1 ) < object2.getShortValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right < context.declaration.getExtractor().getShortValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getShortValue( workingMemory, right ) < ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getShortValue( workingMemory, object1 ) < extractor2.getShortValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Short <";
+ }
+ }
+
+ static class ShortLessOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private static final Evaluator INSTANCE = new ShortLessOrEqualEvaluator();
+
+ private ShortLessOrEqualEvaluator() {
+ super( ValueType.PSHORT_TYPE,
+ Operator.LESS_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getShortValue( workingMemory, object1 ) <= object2.getShortValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right <= context.declaration.getExtractor().getShortValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getShortValue( workingMemory, right ) <= ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getShortValue( workingMemory, object1 ) <= extractor2.getShortValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Boolean <=";
+ }
+ }
+
+ static class ShortGreaterEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private static final Evaluator INSTANCE = new ShortGreaterEvaluator();
+
+ private ShortGreaterEvaluator() {
+ super( ValueType.PSHORT_TYPE,
+ Operator.GREATER );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getShortValue( workingMemory, object1 ) > object2.getShortValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right > context.declaration.getExtractor().getShortValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getShortValue( workingMemory, right ) > ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getShortValue( workingMemory, object1 ) > extractor2.getShortValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Short >";
+ }
+ }
+
+ static class ShortGreaterOrEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private static final Evaluator INSTANCE = new ShortGreaterOrEqualEvaluator();
+
+ private ShortGreaterOrEqualEvaluator() {
+ super( ValueType.PSHORT_TYPE,
+ Operator.GREATER_OR_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if( extractor.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor.getShortValue( workingMemory, object1 ) >= object2.getShortValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if( context.rightNull ) {
+ return false;
+ }
+ return ((LongVariableContextEntry) context).right >= context.declaration.getExtractor().getShortValue( workingMemory, left );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if( context.extractor.isNullValue( workingMemory, right ) ) {
+ return false;
+ }
+ return context.extractor.getShortValue( workingMemory, right ) >= ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if( extractor1.isNullValue( workingMemory, object1 ) ) {
+ return false;
+ }
+ return extractor1.getShortValue( workingMemory, object1 ) >= extractor2.getShortValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Short >=";
+ }
+ }
+
+
+ protected static class ObjectComparator implements Comparator {
+ // this is a stateless object, and so, can be shared among threads
+ // PLEASE: do not add state to it, unless you remove all concurrent
+ // calls to this class instances
+
+ public int compare(Object arg0,
+ Object arg1) {
+ if( arg0 instanceof Double || arg0 instanceof Float ) {
+ double val0 = ((Number) arg0).doubleValue();
+ double val1 = 0;
+ if( arg1 instanceof Number ) {
+ val1 = ((Number) arg1).doubleValue();
+ } else if( arg1 instanceof String ) {
+ val1 = Double.parseDouble( ( String ) arg1 );
+ } else {
+ throw new ClassCastException( "Not possible to convert "+arg1.getClass()+" into a double value to compare it to "+arg0.getClass() );
+ }
+ return val0 > val1 ? 1 : val0 < val1 ? -1 : 0;
+ } else if( arg0 instanceof Number ){
+ long val0 = ((Number) arg0).longValue();
+ long val1 = 0;
+ if( arg1 instanceof Number ) {
+ val1 = ((Number) arg1).longValue();
+ } else if( arg1 instanceof String ) {
+ val1 = Long.parseLong( ( String ) arg1 );
+ } else {
+ throw new ClassCastException( "Not possible to convert "+arg1.getClass()+" into a long value to compare it to "+arg0.getClass() );
+ }
+ return val0 > val1 ? 1 : val0 < val1 ? -1 : 0;
+ } else if( arg0 instanceof String ) {
+ try {
+ double val0 = Double.parseDouble( (String) arg0 );
+ double val1 = 0;
+ if( arg1 instanceof Number ) {
+ val1 = ((Number) arg1).doubleValue();
+ } else if( arg1 instanceof String ) {
+ val1 = Double.parseDouble( ( String ) arg1 );
+ } else {
+ throw new ClassCastException( "Not possible to convert "+arg1.getClass()+" into a double value to compare it to "+arg0.getClass() );
+ }
+ return val0 > val1 ? 1 : val0 < val1 ? -1 : 0;
+ } catch( NumberFormatException nfe ) {
+ return ( (String) arg0).compareTo( arg1.toString() );
+ }
+
+ }
+ try {
+ return ((Comparable)arg0).compareTo( arg1 );
+ } catch ( ClassCastException cce ) {
+ throw new ClassCastException( "Not possible to compare a "+arg0.getClass()+" with a "+arg1.getClass());
+ }
+ }
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,535 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-/**
- * This will generate evaluators that handle dates.
- * This will also parse strings into dates, according to
- * DEFAULT_FORMAT_MASK, unless it is overridden by the drools.dateformat system property.
- *
- * When parsing dates from a string, no time is included.
- *
- * So you can do expressions like
- * <code>Person(birthday <= "10-Jul-1974")</code> etc.
- *
- * @author Michael Neale
- */
-public class DateFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static final String DEFAULT_FORMAT_MASK = "dd-MMM-yyyy";
- private static final String DATE_FORMAT_MASK = getDateFormatMask();
-
- private static EvaluatorFactory INSTANCE = new DateFactory();
- private static SimpleDateFormat df;
-
- private DateFactory() {
- df = new SimpleDateFormat( DateFactory.DATE_FORMAT_MASK );
- }
-
- public static EvaluatorFactory getInstance() {
- if ( DateFactory.INSTANCE == null ) {
- DateFactory.INSTANCE = new DateFactory();
- }
- return DateFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return DateEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return DateNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return DateLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return DateLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return DateGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return DateGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return DateMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return DateNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for DateEvaluator" );
- }
- }
-
- static class DateEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DateEqualEvaluator();
-
- private DateEqualEvaluator() {
- super( ValueType.DATE_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 == null;
- }
- if ( value2 == null ) {
- return false;
- }
- return value1.compareTo( getRightDate( value2 ) ) == 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
- final Object value2 = ((ObjectVariableContextEntry) context).right;
- if ( value1 == null ) {
- return value2 == null;
- }
- if ( value2 == null ) {
- return false;
- }
- return value1.compareTo( getRightDate( value2 ) ) == 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
- final Object value2 = context.extractor.getValue( workingMemory, right );
- if ( value1 == null ) {
- return value2 == null;
- }
- if ( value2 == null ) {
- return false;
- }
- return value1.compareTo( getRightDate( value2 ) ) == 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
- final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 == null;
- }
- if ( value2 == null ) {
- return false;
- }
- return value1.compareTo( value2 ) == 0;
- }
-
- public String toString() {
- return "Date ==";
- }
-
- }
-
- static class DateNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DateNotEqualEvaluator();
-
- private DateNotEqualEvaluator() {
- super( ValueType.DATE_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 != null;
- }
- if ( value2 == null ) {
- return true;
- }
- return value1.compareTo( getRightDate( value2 ) ) != 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
- final Object value2 = ((ObjectVariableContextEntry) context).right;
- if ( value1 == null ) {
- return value2 != null;
- }
- if ( value2 == null ) {
- return true;
- }
- return value1.compareTo( getRightDate( value2 ) ) != 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
- final Object value2 = context.extractor.getValue( workingMemory, right );
- if ( value1 == null ) {
- return value2 != null;
- }
- if ( value2 == null ) {
- return true;
- }
- return value1.compareTo( getRightDate( value2 ) ) != 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
- final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 != null;
- }
- if ( value2 == null ) {
- return true;
- }
- return value1.compareTo( value2 ) != 0;
- }
-
- public String toString() {
- return "Date !=";
- }
- }
-
- static class DateLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DateLessEvaluator();
-
- private DateLessEvaluator() {
- super( ValueType.DATE_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- return value1.compareTo( getRightDate( value2 ) ) < 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
- final Object value2 = ((ObjectVariableContextEntry) context).right;
- return getRightDate( value2 ).compareTo( value1 ) < 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
- final Object value2 = context.extractor.getValue( workingMemory, right );
- return getRightDate( value2 ).compareTo( value1 ) < 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
- final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
- return value1.compareTo( value2 ) < 0;
- }
-
- public String toString() {
- return "Date <";
- }
- }
-
- static class DateLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DateLessOrEqualEvaluator();
-
- private DateLessOrEqualEvaluator() {
- super( ValueType.DATE_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- return value1.compareTo( getRightDate( value2 ) ) <= 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
- final Object value2 = ((ObjectVariableContextEntry) context).right;
- return getRightDate( value2 ).compareTo( value1 ) <= 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
- final Object value2 = context.extractor.getValue( workingMemory, right );
- return getRightDate( value2 ).compareTo( value1 ) <= 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
- final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
- return value1.compareTo( value2 ) <= 0;
- }
-
- public String toString() {
- return "Date <=";
- }
- }
-
- static class DateGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DateGreaterEvaluator();
-
- private DateGreaterEvaluator() {
- super( ValueType.DATE_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- return value1.compareTo( getRightDate( value2 ) ) > 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
- final Object value2 = ((ObjectVariableContextEntry) context).right;
- return getRightDate( value2 ).compareTo( value1 ) > 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
- final Object value2 = context.extractor.getValue( workingMemory, right );
- return getRightDate( value2 ).compareTo( value1 ) > 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
- final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
- return value1.compareTo( value2 ) > 0;
- }
-
- public String toString() {
- return "Date >";
- }
- }
-
- static class DateGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new DateGreaterOrEqualEvaluator();
-
- private DateGreaterOrEqualEvaluator() {
- super( ValueType.DATE_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- return value1.compareTo( getRightDate( value2 ) ) >= 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
- final Object value2 = ((ObjectVariableContextEntry) context).right;
- return getRightDate( value2 ).compareTo( value1 ) >= 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
- final Object value2 = context.extractor.getValue( workingMemory, right );
- return getRightDate( value2 ).compareTo( value1 ) >= 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
- final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
- return value1.compareTo( value2 ) >= 0;
- }
-
- public String toString() {
- return "Date >=";
- }
- }
-
- static class DateMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DateMemberOfEvaluator();
-
- private DateMemberOfEvaluator() {
- super( ValueType.DATE_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Date memberOf";
- }
- }
-
- static class DateNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DateNotMemberOfEvaluator();
-
- private DateNotMemberOfEvaluator() {
- super( ValueType.DATE_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Date not memberOf";
- }
- }
-
- /** Use the simple date formatter to read the date from a string */
- public static Date parseDate(final String input) {
- try {
- return df.parse( input );
- } catch ( final ParseException e ) {
- throw new IllegalArgumentException( "Invalid date input format: [" + input + "] it should follow: [" + DateFactory.DATE_FORMAT_MASK + "]" );
- }
- }
-
- /** Converts the right hand side date as appropriate */
- private static Date getRightDate(final Object object2) {
- if ( object2 == null ) {
- return null;
- }
- if ( object2 instanceof String ) {
- return parseDate( (String) object2 );
- } else if ( object2 instanceof Date ) {
- return (Date) object2;
- } else {
- throw new IllegalArgumentException( "Unable to convert " + object2.getClass() + " to a Date." );
- }
- }
-
- /** Check for the system property override, if it exists */
- private static String getDateFormatMask() {
- String fmt = System.getProperty( "drools.dateformat" );
- if ( fmt == null ) {
- fmt = DateFactory.DEFAULT_FORMAT_MASK;
- }
- return fmt;
- }
-
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DoubleFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DoubleFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DoubleFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,456 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.DoubleVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class DoubleFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new DoubleFactory();
-
- private DoubleFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( DoubleFactory.INSTANCE == null ) {
- DoubleFactory.INSTANCE = new DoubleFactory();
- }
- return DoubleFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return DoubleEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return DoubleNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return DoubleLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return DoubleLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return DoubleGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return DoubleGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return DoubleMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return DoubleNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for DoubleEvaluator" );
- }
- }
-
- static class DoubleEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DoubleEqualEvaluator();
-
- private DoubleEqualEvaluator() {
- super( ValueType.PDOUBLE_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return object2.isNull();
- } else if ( object2.isNull() ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getDoubleValue( workingMemory, object1 ) == object2.getDoubleValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return context.isRightNull();
- } else if ( context.isRightNull() ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return context.declaration.getExtractor().getDoubleValue( workingMemory, left ) == ((DoubleVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right )) {
- return context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return false;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).left == context.extractor.getDoubleValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return false;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getDoubleValue( workingMemory, object1 ) == extractor2.getDoubleValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Double ==";
- }
- }
-
- static class DoubleNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DoubleNotEqualEvaluator();
-
- private DoubleNotEqualEvaluator() {
- super( ValueType.PDOUBLE_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return !object2.isNull();
- } else if ( object2.isNull() ) {
- return true;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getDoubleValue( workingMemory, object1 ) != object2.getDoubleValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return !context.isRightNull();
- } else if ( context.isRightNull() ) {
- return true;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return context.declaration.getExtractor().getDoubleValue( workingMemory, left ) != ((DoubleVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right )) {
- return !context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return true;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).left != context.extractor.getDoubleValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return !extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return true;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getDoubleValue( workingMemory, object1 ) != extractor2.getDoubleValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Double !=";
- }
- }
-
- static class DoubleLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DoubleLessEvaluator();
-
- private DoubleLessEvaluator() {
- super( ValueType.PDOUBLE_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getDoubleValue( workingMemory, object1 ) < object2.getDoubleValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).right < context.declaration.getExtractor().getDoubleValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return context.extractor.getDoubleValue( workingMemory, right ) < ((DoubleVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getDoubleValue( workingMemory, object1 ) < extractor2.getDoubleValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Double <";
- }
- }
-
- static class DoubleLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DoubleLessOrEqualEvaluator();
-
- private DoubleLessOrEqualEvaluator() {
- super( ValueType.PDOUBLE_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getDoubleValue( workingMemory, object1 ) <= object2.getDoubleValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).right <= context.declaration.getExtractor().getDoubleValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return context.extractor.getDoubleValue( workingMemory, right ) <= ((DoubleVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getDoubleValue( workingMemory, object1 ) <= extractor2.getDoubleValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Double <=";
- }
- }
-
- static class DoubleGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DoubleGreaterEvaluator();
-
- private DoubleGreaterEvaluator() {
- super( ValueType.PDOUBLE_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getDoubleValue( workingMemory, object1 ) > object2.getDoubleValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).right > context.declaration.getExtractor().getDoubleValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return context.extractor.getDoubleValue( workingMemory, right ) > ((DoubleVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getDoubleValue( workingMemory, object1 ) > extractor2.getDoubleValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Double >";
- }
- }
-
- static class DoubleGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new DoubleGreaterOrEqualEvaluator();
-
- private DoubleGreaterOrEqualEvaluator() {
- super( ValueType.PDOUBLE_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getDoubleValue( workingMemory, object1 ) >= object2.getDoubleValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).right >= context.declaration.getExtractor().getDoubleValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return context.extractor.getDoubleValue( workingMemory, right ) >= ((DoubleVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getDoubleValue( workingMemory, object1 ) >= extractor2.getDoubleValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Double >=";
- }
- }
-
- static class DoubleMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DoubleMemberOfEvaluator();
-
- private DoubleMemberOfEvaluator() {
- super( ValueType.PDOUBLE_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Double memberOf";
- }
- }
-
- static class DoubleNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new DoubleNotMemberOfEvaluator();
-
- private DoubleNotMemberOfEvaluator() {
- super( ValueType.PDOUBLE_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Double not memberOf";
- }
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EqualityEvaluatorsDefinition.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,2110 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.base.evaluators;
+
+import java.util.Date;
+
+import org.drools.base.BaseEvaluator;
+import org.drools.base.ShadowProxy;
+import org.drools.base.ValueType;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.VariableRestriction.BooleanVariableContextEntry;
+import org.drools.rule.VariableRestriction.CharVariableContextEntry;
+import org.drools.rule.VariableRestriction.DoubleVariableContextEntry;
+import org.drools.rule.VariableRestriction.LongVariableContextEntry;
+import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
+import org.drools.rule.VariableRestriction.VariableContextEntry;
+import org.drools.spi.Evaluator;
+import org.drools.spi.Extractor;
+import org.drools.spi.FieldValue;
+import org.drools.util.DateUtils;
+
+/**
+ * This class defines the default built in equality
+ * evaluators == and !=
+ *
+ * @author etirelli
+ */
+public class EqualityEvaluatorsDefinition implements EvaluatorDefinition {
+
+ private static final String[] SUPPORTED_IDS = { Operator.EQUAL.getOperatorString(), Operator.NOT_EQUAL.getOperatorString() };
+ private EvaluatorCache evaluators = new EvaluatorCache() {
+ private static final long serialVersionUID = 4782368623L;
+ {
+ addEvaluator( ValueType.ARRAY_TYPE, Operator.EQUAL, ArrayEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.ARRAY_TYPE, Operator.NOT_EQUAL, ArrayNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_DECIMAL_TYPE, Operator.EQUAL, BigDecimalEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_DECIMAL_TYPE, Operator.NOT_EQUAL, BigDecimalNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_INTEGER_TYPE, Operator.EQUAL, BigIntegerEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_INTEGER_TYPE, Operator.NOT_EQUAL, BigIntegerNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BOOLEAN_TYPE, Operator.EQUAL, BooleanEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BOOLEAN_TYPE, Operator.NOT_EQUAL, BooleanNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBOOLEAN_TYPE, Operator.EQUAL, BooleanEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBOOLEAN_TYPE, Operator.NOT_EQUAL, BooleanNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BYTE_TYPE, Operator.EQUAL, ByteEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.BYTE_TYPE, Operator.NOT_EQUAL, ByteNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBYTE_TYPE, Operator.EQUAL, ByteEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBYTE_TYPE, Operator.NOT_EQUAL, ByteNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.CHAR_TYPE, Operator.EQUAL, CharacterEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.CHAR_TYPE, Operator.NOT_EQUAL, CharacterNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PCHAR_TYPE, Operator.EQUAL, CharacterEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PCHAR_TYPE, Operator.NOT_EQUAL, CharacterNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.DATE_TYPE, Operator.EQUAL, DateEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.DATE_TYPE, Operator.NOT_EQUAL, DateNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.DOUBLE_TYPE, Operator.EQUAL, DoubleEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.DOUBLE_TYPE, Operator.NOT_EQUAL, DoubleNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PDOUBLE_TYPE, Operator.EQUAL, DoubleEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PDOUBLE_TYPE, Operator.NOT_EQUAL, DoubleNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.FACTTEMPLATE_TYPE, Operator.EQUAL, FactTemplateEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.FACTTEMPLATE_TYPE, Operator.NOT_EQUAL, FactTemplateNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.FLOAT_TYPE, Operator.EQUAL, FloatEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.FLOAT_TYPE, Operator.NOT_EQUAL, FloatNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PFLOAT_TYPE, Operator.EQUAL, FloatEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PFLOAT_TYPE, Operator.NOT_EQUAL, FloatNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.INTEGER_TYPE, Operator.EQUAL, IntegerEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.INTEGER_TYPE, Operator.NOT_EQUAL, IntegerNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PINTEGER_TYPE, Operator.EQUAL, IntegerEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PINTEGER_TYPE, Operator.NOT_EQUAL, IntegerNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.LONG_TYPE, Operator.EQUAL, LongEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.LONG_TYPE, Operator.NOT_EQUAL, LongNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PLONG_TYPE, Operator.EQUAL, LongEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PLONG_TYPE, Operator.NOT_EQUAL, LongNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL, ObjectEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, Operator.NOT_EQUAL, ObjectNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.SHORT_TYPE, Operator.EQUAL, ShortEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.SHORT_TYPE, Operator.NOT_EQUAL, ShortNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PSHORT_TYPE, Operator.EQUAL, ShortEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.PSHORT_TYPE, Operator.NOT_EQUAL, ShortNotEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.STRING_TYPE, Operator.EQUAL, StringEqualEvaluator.INSTANCE );
+ addEvaluator( ValueType.STRING_TYPE, Operator.NOT_EQUAL, StringNotEqualEvaluator.INSTANCE );
+ }
+ };
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator,
+ String parameterText) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+
+ public Evaluator getEvaluator(final ValueType type,
+ final String operatorId,
+ final boolean isNegated,
+ final String parameterText) {
+ return this.evaluators.getEvaluator( type, Operator.determineOperator( operatorId, isNegated ) );
+ }
+
+ public String[] getEvaluatorIds() {
+ return SUPPORTED_IDS;
+ }
+
+ public boolean isNegatable() {
+ return false;
+ }
+
+ public boolean operatesOnFactHandles() {
+ return false;
+ }
+
+ public boolean supportsType(ValueType type) {
+ return this.evaluators.supportsType( type );
+ }
+
+ /* *********************************************************
+ * Evaluator Implementations
+ * *********************************************************
+ */
+
+ static class ArrayEqualEvaluator extends BaseEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ArrayEqualEvaluator();
+
+ private ArrayEqualEvaluator() {
+ super( ValueType.ARRAY_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory,
+ object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right == null;
+ }
+ return value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object value = context.extractor.getValue( workingMemory,
+ right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value == null;
+ }
+ return ((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory,
+ object1 );
+ final Object value2 = extractor2.getValue( workingMemory,
+ object2 );
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "Array ==";
+ }
+
+ }
+
+ static class ArrayNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ArrayNotEqualEvaluator();
+
+ private ArrayNotEqualEvaluator() {
+ super( ValueType.ARRAY_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory,
+ object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right != null;
+ }
+ return !value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object value = context.extractor.getValue( workingMemory,
+ right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value != null;
+ }
+ return !((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory,
+ object1 );
+ final Object value2 = extractor2.getValue( workingMemory,
+ object2 );
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "Array !=";
+ }
+ }
+
+ static class BigDecimalEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigDecimalEqualEvaluator();
+
+ private BigDecimalEqualEvaluator() {
+ super( ValueType.BIG_DECIMAL_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right == null;
+ }
+ return value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value == null;
+ }
+ return ((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "BigDecimal ==";
+ }
+
+ }
+
+ static class BigDecimalNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigDecimalNotEqualEvaluator();
+
+ private BigDecimalNotEqualEvaluator() {
+ super( ValueType.BIG_DECIMAL_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right != null;
+ }
+ return !value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value != null;
+ }
+ return !((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "BigDecimal !=";
+ }
+ }
+
+ static class BigIntegerEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigIntegerEqualEvaluator();
+
+ private BigIntegerEqualEvaluator() {
+ super( ValueType.BIG_INTEGER_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right == null;
+ }
+ return value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value == null;
+ }
+ return ((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "BigInteger ==";
+ }
+ }
+
+ static class BigIntegerNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigIntegerNotEqualEvaluator();
+
+ private BigIntegerNotEqualEvaluator() {
+ super( ValueType.BIG_INTEGER_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right != null;
+ }
+ return !value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value != null;
+ }
+ return !((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "BigInteger !=";
+ }
+ }
+
+ static class BooleanEqualEvaluator extends BaseEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ private final static Evaluator INSTANCE = new BooleanEqualEvaluator();
+
+ private BooleanEqualEvaluator() {
+ super( ValueType.PBOOLEAN_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return object2.isNull();
+ } else if ( object2.isNull() ) {
+ return false;
+ }
+
+ return extractor.getBooleanValue( workingMemory, object1 ) == object2.getBooleanValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return false;
+ }
+
+ return context.declaration.getExtractor().getBooleanValue( workingMemory, left ) == ((BooleanVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object object2) {
+ if ( context.extractor.isNullValue( workingMemory, object2 )) {
+ return context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return false;
+ }
+
+ return context.extractor.getBooleanValue( workingMemory, object2 ) == ((BooleanVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return false;
+ }
+
+ return extractor1.getBooleanValue( workingMemory, object1 ) == extractor2.getBooleanValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Boolean ==";
+ }
+
+ }
+
+ static class BooleanNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BooleanNotEqualEvaluator();
+
+ private BooleanNotEqualEvaluator() {
+ super( ValueType.PBOOLEAN_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return !object2.isNull();
+ } else if ( object2.isNull() ) {
+ return true;
+ }
+
+ return extractor.getBooleanValue( workingMemory, object1 ) != object2.getBooleanValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return !context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return true;
+ }
+ return context.declaration.getExtractor().getBooleanValue( workingMemory, left ) != ((BooleanVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object object2) {
+ if ( context.extractor.isNullValue( workingMemory, object2 )) {
+ return !context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return true;
+ }
+
+ return context.extractor.getBooleanValue( workingMemory, object2 ) != ((BooleanVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return !extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return true;
+ }
+
+ return extractor1.getBooleanValue( workingMemory, object1 ) != extractor1.getBooleanValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Boolean !=";
+ }
+ }
+
+ static class ByteEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ByteEqualEvaluator();
+
+ private ByteEqualEvaluator() {
+ super( ValueType.PBYTE_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return object2.isNull();
+ } else if ( object2.isNull() ) {
+ return false;
+ }
+
+ return extractor.getByteValue( workingMemory, object1 ) == object2.getByteValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return false;
+ }
+
+ return context.declaration.getExtractor().getByteValue( workingMemory, left ) == ((LongVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right )) {
+ return context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return false;
+ }
+
+ return ((LongVariableContextEntry) context).left == context.extractor.getByteValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return false;
+ }
+
+ return extractor1.getByteValue( workingMemory, object1 ) == extractor2.getByteValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Byte ==";
+ }
+
+ }
+
+ static class ByteNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ByteNotEqualEvaluator();
+
+ private ByteNotEqualEvaluator() {
+ super( ValueType.PBYTE_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return !object2.isNull();
+ } else if ( object2.isNull() ) {
+ return true;
+ }
+
+ return extractor.getByteValue( workingMemory, object1 ) != object2.getByteValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return !context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return true;
+ }
+
+ return context.declaration.getExtractor().getByteValue( workingMemory, left ) != ((LongVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object object2) {
+ if ( context.extractor.isNullValue( workingMemory, object2 ) ) {
+ return !context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return true;
+ }
+
+ return ((LongVariableContextEntry) context).left != context.extractor.getByteValue( workingMemory, object2 );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return !extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return true;
+ }
+
+ return extractor1.getByteValue( workingMemory, object1 ) != extractor2.getByteValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Byte !=";
+ }
+ }
+
+ static class CharacterEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new CharacterEqualEvaluator();
+
+ private CharacterEqualEvaluator() {
+ super( ValueType.PCHAR_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return object2.isNull();
+ } else if ( object2.isNull() ) {
+ return false;
+ }
+
+ return extractor.getCharValue( workingMemory, object1 ) == object2.getCharValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return false;
+ }
+
+ return context.declaration.getExtractor().getCharValue( workingMemory, left ) == ((CharVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right )) {
+ return context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return false;
+ }
+
+ return ((CharVariableContextEntry) context).left == context.extractor.getCharValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return false;
+ }
+
+ return extractor1.getCharValue( workingMemory, object1 ) == extractor2.getCharValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Character ==";
+ }
+ }
+
+ static class CharacterNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new CharacterNotEqualEvaluator();
+
+ private CharacterNotEqualEvaluator() {
+ super( ValueType.PCHAR_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return !object2.isNull();
+ } else if ( object2.isNull() ) {
+ return true;
+ }
+
+ return extractor.getCharValue( workingMemory, object1 ) != object2.getCharValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return !context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return true;
+ }
+
+ return context.declaration.getExtractor().getCharValue( workingMemory, left ) != ((CharVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right ) ) {
+ return !context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return true;
+ }
+
+ return ((CharVariableContextEntry) context).left != context.extractor.getCharValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return !extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return true;
+ }
+
+ return extractor1.getCharValue( workingMemory, object1 ) != extractor2.getCharValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Character !=";
+ }
+ }
+
+ static class DateEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DateEqualEvaluator();
+
+ private DateEqualEvaluator() {
+ super( ValueType.DATE_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ if ( value2 == null ) {
+ return false;
+ }
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) == 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value2 = ((ObjectVariableContextEntry) context).right;
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ if ( value2 == null ) {
+ return false;
+ }
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) == 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
+ final Object value2 = context.extractor.getValue( workingMemory, right );
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ if ( value2 == null ) {
+ return false;
+ }
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) == 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
+ final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ if ( value2 == null ) {
+ return false;
+ }
+ return value1.compareTo( value2 ) == 0;
+ }
+
+ public String toString() {
+ return "Date ==";
+ }
+
+ }
+
+ static class DateNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DateNotEqualEvaluator();
+
+ private DateNotEqualEvaluator() {
+ super( ValueType.DATE_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Date value1 = (Date) extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ if ( value2 == null ) {
+ return true;
+ }
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) != 0;
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Date value1 = (Date) context.declaration.getExtractor().getValue( workingMemory, left );
+ final Object value2 = ((ObjectVariableContextEntry) context).right;
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ if ( value2 == null ) {
+ return true;
+ }
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) != 0;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Date value1 = (Date) ((ObjectVariableContextEntry) context).left;
+ final Object value2 = context.extractor.getValue( workingMemory, right );
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ if ( value2 == null ) {
+ return true;
+ }
+ return value1.compareTo( DateUtils.getRightDate( value2 ) ) != 0;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Date value1 = (Date) extractor1.getValue( workingMemory, object1 );
+ final Date value2 = (Date) extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ if ( value2 == null ) {
+ return true;
+ }
+ return value1.compareTo( value2 ) != 0;
+ }
+
+ public String toString() {
+ return "Date !=";
+ }
+ }
+
+ static class DoubleEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DoubleEqualEvaluator();
+
+ private DoubleEqualEvaluator() {
+ super( ValueType.PDOUBLE_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return object2.isNull();
+ } else if ( object2.isNull() ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getDoubleValue( workingMemory, object1 ) == object2.getDoubleValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return false;
+ }
+ // TODO: we are not handling delta right now... maybe we should
+ return context.declaration.getExtractor().getDoubleValue( workingMemory, left ) == ((DoubleVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right )) {
+ return context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return false;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).left == context.extractor.getDoubleValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return false;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getDoubleValue( workingMemory, object1 ) == extractor2.getDoubleValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Double ==";
+ }
+ }
+
+ static class DoubleNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DoubleNotEqualEvaluator();
+
+ private DoubleNotEqualEvaluator() {
+ super( ValueType.PDOUBLE_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return !object2.isNull();
+ } else if ( object2.isNull() ) {
+ return true;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getDoubleValue( workingMemory, object1 ) != object2.getDoubleValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return !context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return true;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return context.declaration.getExtractor().getDoubleValue( workingMemory, left ) != ((DoubleVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right )) {
+ return !context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return true;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).left != context.extractor.getDoubleValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return !extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return true;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getDoubleValue( workingMemory, object1 ) != extractor2.getDoubleValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Double !=";
+ }
+ }
+
+ static class FactTemplateEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new FactTemplateEqualEvaluator();
+
+ private FactTemplateEqualEvaluator() {
+ super( ValueType.FACTTEMPLATE_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right == null;
+ }
+ return value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value == null;
+ }
+ return ((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "FactTemplate ==";
+ }
+
+ }
+
+ static class FactTemplateNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new FactTemplateNotEqualEvaluator();
+
+ private FactTemplateNotEqualEvaluator() {
+ super( ValueType.FACTTEMPLATE_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right != null;
+ }
+ return !value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value != null;
+ }
+ return !((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "FactTemplate !=";
+ }
+ }
+
+ static class FloatEqualEvaluator extends BaseEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new FloatEqualEvaluator();
+
+ private FloatEqualEvaluator() {
+ super( ValueType.PFLOAT_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return object2.isNull();
+ } else if ( object2.isNull() ) {
+ return false;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getFloatValue( workingMemory, object1 ) == object2.getFloatValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return false;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return context.declaration.getExtractor().getFloatValue( workingMemory, left ) == ((DoubleVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right )) {
+ return context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return false;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).left == context.extractor.getFloatValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return false;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getFloatValue( workingMemory, object1 ) == extractor2.getFloatValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Float ==";
+ }
+ }
+
+ static class FloatNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new FloatNotEqualEvaluator();
+
+ private FloatNotEqualEvaluator() {
+ super( ValueType.PFLOAT_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return !object2.isNull();
+ } else if ( object2.isNull() ) {
+ return true;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor.getFloatValue( workingMemory, object1 ) != object2.getFloatValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return !context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return true;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return context.declaration.getExtractor().getFloatValue( workingMemory, left ) != ((DoubleVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right ) ) {
+ return !context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return true;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return ((DoubleVariableContextEntry) context).left != context.extractor.getFloatValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return !extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return true;
+ }
+
+ // TODO: we are not handling delta right now... maybe we should
+ return extractor1.getFloatValue( workingMemory, object1 ) != extractor2.getFloatValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Float !=";
+ }
+ }
+
+ static class IntegerEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new IntegerEqualEvaluator();
+
+ private IntegerEqualEvaluator() {
+ super( ValueType.PINTEGER_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return object2.isNull();
+ } else if ( object2.isNull() ) {
+ return false;
+ }
+
+ return extractor.getIntValue( workingMemory, object1 ) == object2.getIntValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return false;
+ }
+
+ return context.declaration.getExtractor().getIntValue( workingMemory, left ) == ((LongVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object object2) {
+ if ( context.extractor.isNullValue( workingMemory, object2 )) {
+ return context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return false;
+ }
+
+ return context.extractor.getIntValue( workingMemory, object2 ) == ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return false;
+ }
+
+ return extractor1.getIntValue( workingMemory, object1 ) == extractor2.getIntValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Integer ==";
+ }
+
+ }
+
+ static class IntegerNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new IntegerNotEqualEvaluator();
+
+ private IntegerNotEqualEvaluator() {
+ super( ValueType.PINTEGER_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return !object2.isNull();
+ } else if ( object2.isNull() ) {
+ return true;
+ }
+
+ return extractor.getIntValue( workingMemory, object1 ) != object2.getIntValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return !context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return true;
+ }
+
+ return context.declaration.getExtractor().getIntValue( workingMemory, left ) != ((LongVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object object2) {
+ if ( context.extractor.isNullValue( workingMemory, object2 ) ) {
+ return !context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return true;
+ }
+
+ return context.extractor.getIntValue( workingMemory, object2 ) != ((LongVariableContextEntry) context).left;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return !extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return true;
+ }
+
+ return extractor1.getIntValue( workingMemory, object1 ) != extractor2.getIntValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Integer !=";
+ }
+ }
+
+ static class LongEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new LongEqualEvaluator();
+
+ private LongEqualEvaluator() {
+ super( ValueType.PLONG_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return object2.isNull();
+ } else if ( object2.isNull() ) {
+ return false;
+ }
+
+ return extractor.getLongValue( workingMemory, object1 ) == object2.getLongValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return false;
+ }
+
+ return context.declaration.getExtractor().getLongValue( workingMemory, left ) == ((LongVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right )) {
+ return context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return false;
+ }
+
+ return ((LongVariableContextEntry) context).left == context.extractor.getLongValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return false;
+ }
+
+ return extractor1.getLongValue( workingMemory, object1 ) == extractor2.getLongValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Long ==";
+ }
+ }
+
+ static class LongNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new LongNotEqualEvaluator();
+
+ private LongNotEqualEvaluator() {
+ super( ValueType.PLONG_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return !object2.isNull();
+ } else if ( object2.isNull() ) {
+ return true;
+ }
+
+ return extractor.getLongValue( workingMemory, object1 ) != object2.getLongValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return !context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return true;
+ }
+
+ return context.declaration.getExtractor().getLongValue( workingMemory, left ) != ((LongVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right ) ) {
+ return !context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return true;
+ }
+
+ return ((LongVariableContextEntry) context).left != context.extractor.getLongValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return !extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return true;
+ }
+
+ return extractor1.getLongValue( workingMemory, object1 ) != extractor2.getLongValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Long !=";
+ }
+ }
+
+ static class ObjectEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectEqualEvaluator();
+ private static final ObjectEqualsComparator comparator = new ObjectEqualsComparator();
+
+ private ObjectEqualEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ if( value2 != null && value2 instanceof ShadowProxy ) {
+ return comparator.equals( value2, value1 );
+ }
+ return comparator.equals( value1, value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right == null;
+ }
+ if( ((ObjectVariableContextEntry) context).right != null && ((ObjectVariableContextEntry) context).right instanceof ShadowProxy ) {
+ return comparator.equals( ((ObjectVariableContextEntry) context).right, value );
+ }
+ return comparator.equals( value, ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value == null;
+ }
+ if( value != null && value instanceof ShadowProxy ) {
+ return comparator.equals( value, ((ObjectVariableContextEntry) context).left );
+ }
+ return comparator.equals( ((ObjectVariableContextEntry) context).left, value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ if( value2 != null && value2 instanceof ShadowProxy ) {
+ return comparator.equals( value2, value1 );
+ }
+ return comparator.equals( value1, value2 );
+ }
+
+ public String toString() {
+ return "Object ==";
+ }
+
+ }
+
+ static class ObjectNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectNotEqualEvaluator();
+ private static final ObjectEqualsComparator comparator = new ObjectEqualsComparator();
+
+ private ObjectNotEqualEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ if( value2 != null && value2 instanceof ShadowProxy ) {
+ return !comparator.equals( value2, value1 );
+ }
+ return !comparator.equals( value1, value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right != null;
+ }
+ if( ((ObjectVariableContextEntry) context).right != null && ((ObjectVariableContextEntry) context).right instanceof ShadowProxy ) {
+ return !comparator.equals( ((ObjectVariableContextEntry) context).right, value );
+ }
+ return !comparator.equals( value, ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value != null;
+ }
+ if( value != null && value instanceof ShadowProxy ) {
+ return !comparator.equals( value, ((ObjectVariableContextEntry) context).left );
+ }
+ return !comparator.equals( ((ObjectVariableContextEntry) context).left, value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ if( value2 != null && value2 instanceof ShadowProxy ) {
+ return !comparator.equals( value2, value1 );
+ }
+ return !comparator.equals( value1, value2 );
+ }
+
+ public String toString() {
+ return "Object !=";
+ }
+ }
+
+ static class ShortEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private static final Evaluator INSTANCE = new ShortEqualEvaluator();
+
+ private ShortEqualEvaluator() {
+ super( ValueType.PSHORT_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return object2.isNull();
+ } else if ( object2.isNull() ) {
+ return false;
+ }
+
+ return extractor.getShortValue( workingMemory, object1 ) == object2.getShortValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return false;
+ }
+
+ return context.declaration.getExtractor().getShortValue( workingMemory, left ) == ((LongVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right )) {
+ return context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return false;
+ }
+
+ return ((LongVariableContextEntry) context).left == context.extractor.getShortValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return false;
+ }
+
+ return extractor1.getShortValue( workingMemory, object1 ) == extractor2.getShortValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Short ==";
+ }
+ }
+
+ static class ShortNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ private static final Evaluator INSTANCE = new ShortNotEqualEvaluator();
+
+ private ShortNotEqualEvaluator() {
+ super( ValueType.PSHORT_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ if ( extractor.isNullValue( workingMemory, object1 ) ) {
+ return !object2.isNull();
+ } else if ( object2.isNull() ) {
+ return true;
+ }
+
+ return extractor.getShortValue( workingMemory, object1 ) != object2.getShortValue();
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
+ return !context.isRightNull();
+ } else if ( context.isRightNull() ) {
+ return true;
+ }
+
+ return context.declaration.getExtractor().getShortValue( workingMemory, left ) != ((LongVariableContextEntry) context).right;
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ if ( context.extractor.isNullValue( workingMemory, right ) ) {
+ return !context.isLeftNull();
+ } else if ( context.isLeftNull() ) {
+ return true;
+ }
+
+ return ((LongVariableContextEntry) context).left != context.extractor.getShortValue( workingMemory, right );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ if (extractor1.isNullValue( workingMemory, object1 )) {
+ return !extractor2.isNullValue( workingMemory, object2 );
+ } else if (extractor2.isNullValue( workingMemory, object2 )) {
+ return true;
+ }
+
+ return extractor1.getShortValue( workingMemory, object1 ) != extractor2.getShortValue( workingMemory, object2 );
+ }
+
+ public String toString() {
+ return "Short !=";
+ }
+ }
+
+ static class StringEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new StringEqualEvaluator();
+
+ private StringEqualEvaluator() {
+ super( ValueType.STRING_TYPE,
+ Operator.EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right == null;
+ }
+ return value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value == null;
+ }
+ return ((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 == null;
+ }
+ return value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "String ==";
+ }
+
+ }
+
+ static class StringNotEqualEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new StringNotEqualEvaluator();
+
+ private StringNotEqualEvaluator() {
+ super( ValueType.STRING_TYPE,
+ Operator.NOT_EQUAL );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final Object value1 = extractor.getValue( workingMemory, object1 );
+ final Object value2 = object2.getValue();
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
+ if ( value == null ) {
+ return ((ObjectVariableContextEntry) context).right != null;
+ }
+ return !value.equals( ((ObjectVariableContextEntry) context).right );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final Object value = context.extractor.getValue( workingMemory, right );
+ if ( ((ObjectVariableContextEntry) context).left == null ) {
+ return value != null;
+ }
+ return !((ObjectVariableContextEntry) context).left.equals( value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return value2 != null;
+ }
+ return !value1.equals( value2 );
+ }
+
+ public String toString() {
+ return "String !=";
+ }
+ }
+
+ protected static class ObjectEqualsComparator {
+
+ // trying to implement runtime type coercion
+ public boolean equals( Object arg0, Object arg1 ) {
+ if ( arg0 == null ) {
+ return arg1 == null;
+ }
+ if( arg1 != null && arg1 instanceof ShadowProxy ) {
+ return arg1.equals( arg0 );
+ }
+ if( arg0 instanceof Number ){
+ double val0 = ((Number) arg0).doubleValue();
+ double val1 = 0;
+ if( arg1 instanceof Number ) {
+ val1 = ((Number) arg1).doubleValue();
+ } else if( arg1 instanceof String ) {
+ val1 = Double.parseDouble( ( String ) arg1 );
+ } else {
+ throw new ClassCastException( "Not possible to convert "+arg1.getClass()+" into a double value to compare it to "+arg0.getClass() );
+ }
+ return val0 == val1; // in the future we may need to handle rounding errors
+ }
+ if( arg0 instanceof String ) {
+ return arg0.equals( arg1.toString() );
+ }
+ if( arg0 instanceof Boolean ) {
+ if( arg1 instanceof String ) {
+ return ((Boolean)arg0).booleanValue() == Boolean.valueOf( (String)arg1 ).booleanValue();
+ }
+ }
+ if( arg0 instanceof Character ) {
+ if( arg1 instanceof String && ((String) arg1).length() == 1 ) {
+ return ((Character)arg0).charValue() == ((String)arg1).charAt( 0 );
+ }
+ }
+ return arg0.equals( arg1 );
+ }
+ }
+
+
+}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorCache.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorCache.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorCache.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorCache.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.base.evaluators;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.base.ValueType;
+import org.drools.spi.Evaluator;
+
+/**
+ * A simple helper class to store Evaluators for a given set of
+ * value types and operators
+ *
+ * @author etirelli
+ */
+public class EvaluatorCache implements Serializable {
+
+
+ private static final long serialVersionUID = 5643974484372543392L;
+ private Map<ValueType, Map<Operator, Evaluator>> evaluators = new HashMap<ValueType, Map<Operator, Evaluator>>();
+
+ public EvaluatorCache() {
+ }
+
+ public void addEvaluator( final ValueType type, final Operator operator, final Evaluator evaluator ) {
+ Map<Operator, Evaluator> opEvalMap = this.evaluators.get( type );
+ if( opEvalMap == null ) {
+ opEvalMap = new HashMap<Operator, Evaluator>();
+ this.evaluators.put( type, opEvalMap );
+ }
+ opEvalMap.put( operator, evaluator );
+ }
+
+ public Evaluator getEvaluator( final ValueType type, final Operator operator ) {
+ Map<Operator, Evaluator> opEvalMap = this.evaluators.get( type );
+ return opEvalMap != null ? opEvalMap.get( operator ) : null;
+ }
+
+ public boolean supportsType(ValueType type) {
+ return this.evaluators.containsKey( type );
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorDefinition.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorDefinition.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorDefinition.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorDefinition.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.base.evaluators;
+
+import org.drools.base.ValueType;
+import org.drools.spi.Evaluator;
+
+/**
+ * An evaluator definition interface that allows for pluggable
+ * evaluator implementation.
+ *
+ * This interface is the registry entry point for all available
+ * evaluators and describes all evaluator capabilities
+ *
+ * @author etirelli
+ */
+public interface EvaluatorDefinition {
+
+ /**
+ * Returns the list of identifies this
+ * evaluator implementation supports
+ *
+ * @return
+ */
+ public String[] getEvaluatorIds();
+
+ /**
+ * My appologies to english speakers if the word "negatable" does not
+ * exists. :)
+ *
+ * This method returns true if this evaluator supports negation. Example:
+ *
+ * the "matches" operator supports "not matches" and so is "negatable" (!?)
+ *
+ * @return
+ */
+ public boolean isNegatable();
+
+ /**
+ * Returns the evaluator instance for the given type and the
+ * defined parameterText
+ *
+ * @param type the type of the attributes this evaluator will
+ * operate on. This is important because the evaluator
+ * may do optimizations and type coercion based on the
+ * types it is evaluating. It is also possible that
+ * this evaluator does not support a given type.
+ *
+ * @param operatorId the string identifier of the evaluator
+ *
+ * @param isNegated true if the evaluator instance to be returned is
+ * the negated version of the evaluator.
+ *
+ * @param parameterText some evaluators support parameters and these
+ * parameters are defined as a String that is
+ * parsed by the evaluator itself.
+ *
+ * @return an Evaluator instance capable of evaluating expressions
+ * between values of the given type, or null in case the type
+ * is not supported.
+ */
+ public Evaluator getEvaluator(ValueType type,
+ String operatorId,
+ boolean isNegated,
+ String parameterText);
+
+ /**
+ * Returns the evaluator instance for the given type and the
+ * defined parameterText
+ *
+ * @param type the type of the attributes this evaluator will
+ * operate on. This is important because the evaluator
+ * may do optimizations and type coercion based on the
+ * types it is evaluating. It is also possible that
+ * this evaluator does not support a given type.
+ *
+ * @param operator the operator implemented by the evaluator
+ *
+ * @param parameterText some evaluators support parameters and these
+ * parameters are defined as a String that is
+ * parsed by the evaluator itself.
+ *
+ * @return an Evaluator instance capable of evaluating expressions
+ * between values of the given type, or null in case the type
+ * is not supported.
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator,
+ String parameterText);
+
+ /**
+ * Returns the evaluator instance for the given type and the
+ * defined parameterText
+ *
+ * @param type the type of the attributes this evaluator will
+ * operate on. This is important because the evaluator
+ * may do optimizations and type coercion based on the
+ * types it is evaluating. It is also possible that
+ * this evaluator does not support a given type.
+ *
+ * @param operator the operator implemented by the evaluator
+ *
+ * @return an Evaluator instance capable of evaluating expressions
+ * between values of the given type, or null in case the type
+ * is not supported.
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator);
+
+ /**
+ * Returns true in case this evaluator supports operations over values
+ * of that specific type.
+ *
+ * @param type
+ * @return
+ */
+ public boolean supportsType(ValueType type);
+
+ /**
+ * There are evaluators that operate on *fact handle* attributes and
+ * evaluators that operate on *fact* attributes.
+ *
+ * @return true if this evaluator operates on fact handle attributes
+ * and false if it operates on fact attributes
+ */
+ public boolean operatesOnFactHandles();
+
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,11 +0,0 @@
-package org.drools.base.evaluators;
-
-import java.io.Serializable;
-
-import org.drools.spi.Evaluator;
-
-public interface EvaluatorFactory
- extends
- Serializable {
- public Evaluator getEvaluator(Operator operator);
-}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/EvaluatorRegistry.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,225 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.base.evaluators;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.base.ValueType;
+import org.drools.spi.Evaluator;
+
+/**
+ * A registry class for all available evaluators
+ *
+ * @author etirelli
+ */
+public class EvaluatorRegistry
+ implements
+ Serializable {
+
+ private static final long serialVersionUID = -3047718531857258033L;
+
+ private Map<String, EvaluatorDefinition> evaluators;
+ private ClassLoader classloader;
+
+ /**
+ * Default constructor. The registry will use the context classloader (if available)
+ * to load the evaluator definition classes or this class classloader if it is
+ * not available.
+ */
+ public EvaluatorRegistry() {
+ this( null );
+ }
+
+ /**
+ * Creates a new EvaluatorRegistry using the given classloader to load
+ * the evaluator definition classes.
+ *
+ * @param classloader the classloader to use to load evaluator definition
+ * classes. If it is null, try to obtain the context
+ * classloader. If it is also null, uses the same classloader
+ * that loaded this class.
+ *
+ */
+ public EvaluatorRegistry(ClassLoader classloader) {
+ this.evaluators = new HashMap<String, EvaluatorDefinition>();
+ if ( classloader != null ) {
+ this.classloader = classloader;
+ } else {
+ this.classloader = Thread.currentThread().getContextClassLoader() != null ? Thread.currentThread().getContextClassLoader() : this.getClass().getClassLoader();
+ }
+
+ // loading default built in evaluators
+ this.addEvaluatorDefinition( new EqualityEvaluatorsDefinition() );
+ this.addEvaluatorDefinition( new ComparableEvaluatorsDefinition() );
+ this.addEvaluatorDefinition( new SetEvaluatorsDefinition() );
+ this.addEvaluatorDefinition( new MatchesEvaluatorsDefinition() );
+ this.addEvaluatorDefinition( new SoundslikeEvaluatorsDefinition() );
+ }
+
+ /**
+ * Adds an evaluator definition class to the registry using the
+ * evaluator class name. The class will be loaded and the corresponting
+ * evaluator ID will be added to the registry. In case there exists
+ * an implementation for that ID already, the new implementation will
+ * replace the previous one.
+ *
+ * @param className the name of the class for the implementation definition.
+ * The class must implement the EvaluatorDefinition interface.
+ *
+ * @return true if the new class implementation is replacing an old
+ * implementation for the same evaluator ID. False otherwise.
+ */
+ public void addEvaluatorDefinition(String className) {
+ try {
+ Class<EvaluatorDefinition> defClass = (Class<EvaluatorDefinition>) this.classloader.loadClass( className );
+ EvaluatorDefinition def = defClass.newInstance();
+ addEvaluatorDefinition( def );
+ } catch ( ClassNotFoundException e ) {
+ throw new RuntimeDroolsException( "Class not found for evaluator definition: " + className,
+ e );
+ } catch ( InstantiationException e ) {
+ throw new RuntimeDroolsException( "Error instantiating class for evaluator definition: " + className,
+ e );
+ } catch ( IllegalAccessException e ) {
+ throw new RuntimeDroolsException( "Illegal access instantiating class for evaluator definition: " + className,
+ e );
+ }
+ }
+
+ /**
+ * Adds an evaluator definition class to the registry. In case there exists
+ * an implementation for that evaluator ID already, the new implementation will
+ * replace the previous one.
+ *
+ * @param def the evaluator definition to be added.
+ */
+ public void addEvaluatorDefinition(EvaluatorDefinition def) {
+ for ( String id : def.getEvaluatorIds() ) {
+ this.evaluators.put( id,
+ def );
+ }
+ }
+
+ /**
+ * Returns the evaluator definition for the given evaluator ID
+ * or null if no one was found
+ *
+ * @param evaluatorId
+ * @return
+ */
+ public EvaluatorDefinition getEvaluatorDefinition(String evaluatorId) {
+ return this.evaluators.get( evaluatorId );
+ }
+
+ /**
+ * Returns the evaluator definition for the given operator
+ * or null if no one was found
+ *
+ * @param operator the operator implemented by the evaluator definition
+ * @return
+ */
+ public EvaluatorDefinition getEvaluatorDefinition(Operator operator) {
+ return this.evaluators.get( operator.getOperatorString() );
+ }
+
+ /**
+ * Returns the evaluator instance for the given type and the
+ * defined parameterText
+ *
+ * @param type the type of the attributes this evaluator will
+ * operate on. This is important because the evaluator
+ * may do optimizations and type coercion based on the
+ * types it is evaluating. It is also possible that
+ * this evaluator does not support a given type.
+ *
+ * @param operatorId the string identifier of the evaluator
+ *
+ * @param isNegated true if the evaluator instance to be returned is
+ * the negated version of the evaluator.
+ *
+ * @param parameterText some evaluators support parameters and these
+ * parameters are defined as a String that is
+ * parsed by the evaluator itself.
+ *
+ * @return an Evaluator instance capable of evaluating expressions
+ * between values of the given type, or null in case the type
+ * is not supported.
+ */
+ public Evaluator getEvaluator(ValueType type,
+ String operatorId,
+ boolean isNegated,
+ String parameterText) {
+ return this.getEvaluatorDefinition( operatorId ).getEvaluator( type,
+ operatorId,
+ isNegated,
+ parameterText );
+ }
+
+ /**
+ * Returns the evaluator instance for the given type and the
+ * defined parameterText
+ *
+ * @param type the type of the attributes this evaluator will
+ * operate on. This is important because the evaluator
+ * may do optimizations and type coercion based on the
+ * types it is evaluating. It is also possible that
+ * this evaluator does not support a given type.
+ *
+ * @param operator the operator that evaluator implements
+ *
+ * @param parameterText some evaluators support parameters and these
+ * parameters are defined as a String that is
+ * parsed by the evaluator itself.
+ *
+ * @return an Evaluator instance capable of evaluating expressions
+ * between values of the given type, or null in case the type
+ * is not supported.
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator,
+ String parameterText) {
+ return this.getEvaluatorDefinition( operator ).getEvaluator( type,
+ operator,
+ parameterText );
+ }
+
+ /**
+ * Returns the evaluator instance for the given type and the
+ * defined parameterText
+ *
+ * @param type the type of the attributes this evaluator will
+ * operate on. This is important because the evaluator
+ * may do optimizations and type coercion based on the
+ * types it is evaluating. It is also possible that
+ * this evaluator does not support a given type.
+ *
+ * @param operator the operator that evaluator implements
+ *
+ * @return an Evaluator instance capable of evaluating expressions
+ * between values of the given type, or null in case the type
+ * is not supported.
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator) {
+ return this.getEvaluatorDefinition( operator ).getEvaluator( type,
+ operator );
+ }
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FactTemplateFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FactTemplateFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FactTemplateFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,179 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-/**
- * This is the misc "bucket" evaluator factory for objects.
- * It is fairly limited in operations,
- * and what operations are available are dependent on the exact type.
- *
- * @author Michael Neale
- */
-public class FactTemplateFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new FactTemplateFactory();
-
- private FactTemplateFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( FactTemplateFactory.INSTANCE == null ) {
- FactTemplateFactory.INSTANCE = new FactTemplateFactory();
- }
- return FactTemplateFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return FactTemplateEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return FactTemplateNotEqualEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for FactTemplateEvaluator" );
- }
- }
-
- static class FactTemplateEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new FactTemplateEqualEvaluator();
-
- private FactTemplateEqualEvaluator() {
- super( ValueType.FACTTEMPLATE_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right == null;
- }
- return value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value == null;
- }
- return ((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public String toString() {
- return "FactTemplate ==";
- }
-
- }
-
- static class FactTemplateNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new FactTemplateNotEqualEvaluator();
-
- private FactTemplateNotEqualEvaluator() {
- super( ValueType.FACTTEMPLATE_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right != null;
- }
- return !value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value != null;
- }
- return !((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public String toString() {
- return "FactTemplate !=";
- }
- }
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FloatFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FloatFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/FloatFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,456 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.DoubleVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class FloatFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new FloatFactory();
-
- private FloatFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( FloatFactory.INSTANCE == null ) {
- FloatFactory.INSTANCE = new FloatFactory();
- }
- return FloatFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return FloatEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return FloatNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return FloatLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return FloatLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return FloatGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return FloatGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return FloatMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return FloatNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for FloatEvaluator" );
- }
- }
-
- static class FloatEqualEvaluator extends BaseEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new FloatEqualEvaluator();
-
- private FloatEqualEvaluator() {
- super( ValueType.PFLOAT_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return object2.isNull();
- } else if ( object2.isNull() ) {
- return false;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getFloatValue( workingMemory, object1 ) == object2.getFloatValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return context.isRightNull();
- } else if ( context.isRightNull() ) {
- return false;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return context.declaration.getExtractor().getFloatValue( workingMemory, left ) == ((DoubleVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right )) {
- return context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return false;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).left == context.extractor.getFloatValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return false;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getFloatValue( workingMemory, object1 ) == extractor2.getFloatValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Float ==";
- }
- }
-
- static class FloatNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new FloatNotEqualEvaluator();
-
- private FloatNotEqualEvaluator() {
- super( ValueType.PFLOAT_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return !object2.isNull();
- } else if ( object2.isNull() ) {
- return true;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getFloatValue( workingMemory, object1 ) != object2.getFloatValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return !context.isRightNull();
- } else if ( context.isRightNull() ) {
- return true;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return context.declaration.getExtractor().getFloatValue( workingMemory, left ) != ((DoubleVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right ) ) {
- return !context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return true;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).left != context.extractor.getFloatValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return !extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return true;
- }
-
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getFloatValue( workingMemory, object1 ) != extractor2.getFloatValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Float !=";
- }
- }
-
- static class FloatLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new FloatLessEvaluator();
-
- private FloatLessEvaluator() {
- super( ValueType.PFLOAT_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getFloatValue( workingMemory, object1 ) < object2.getFloatValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).right < context.declaration.getExtractor().getFloatValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return context.extractor.getFloatValue( workingMemory, right ) < ((DoubleVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getFloatValue( workingMemory, object1 ) < extractor2.getFloatValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Float <";
- }
- }
-
- static class FloatLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new FloatLessOrEqualEvaluator();
-
- private FloatLessOrEqualEvaluator() {
- super( ValueType.PFLOAT_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getFloatValue( workingMemory, object1 ) <= object2.getFloatValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).right <= context.declaration.getExtractor().getFloatValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return context.extractor.getFloatValue( workingMemory, right ) <= ((DoubleVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getFloatValue( workingMemory, object1 ) <= extractor2.getFloatValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Float <=";
- }
- }
-
- static class FloatGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new FloatGreaterEvaluator();
-
- private FloatGreaterEvaluator() {
- super( ValueType.PFLOAT_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getFloatValue( workingMemory, object1 ) > object2.getFloatValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).right > context.declaration.getExtractor().getFloatValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return context.extractor.getFloatValue( workingMemory, right ) > ((DoubleVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getFloatValue( workingMemory, object1 ) > extractor2.getFloatValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Float >";
- }
- }
-
- static class FloatGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new FloatGreaterOrEqualEvaluator();
-
- private FloatGreaterOrEqualEvaluator() {
- super( ValueType.PFLOAT_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor.getFloatValue( workingMemory, object1 ) >= object2.getFloatValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return ((DoubleVariableContextEntry) context).right >= context.declaration.getExtractor().getFloatValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return context.extractor.getFloatValue( workingMemory, right ) >= ((DoubleVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- // TODO: we are not handling delta right now... maybe we should
- return extractor1.getFloatValue( workingMemory, object1 ) >= extractor2.getFloatValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Float >=";
- }
- }
-
- static class FloatMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new FloatMemberOfEvaluator();
-
- private FloatMemberOfEvaluator() {
- super( ValueType.PFLOAT_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Float memberOf";
- }
- }
-
- static class FloatNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new FloatNotMemberOfEvaluator();
-
- private FloatNotMemberOfEvaluator() {
- super( ValueType.PFLOAT_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Float not memberOf";
- }
- }
-
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,436 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.LongVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class IntegerFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new IntegerFactory();
-
- private IntegerFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( IntegerFactory.INSTANCE == null ) {
- IntegerFactory.INSTANCE = new IntegerFactory();
- }
- return IntegerFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return IntegerEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return IntegerNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return IntegerLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return IntegerLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return IntegerGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return IntegerGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return IntegerMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return IntegerNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for IntegerEvaluator" );
- }
- }
-
- static class IntegerEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new IntegerEqualEvaluator();
-
- private IntegerEqualEvaluator() {
- super( ValueType.PINTEGER_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return object2.isNull();
- } else if ( object2.isNull() ) {
- return false;
- }
-
- return extractor.getIntValue( workingMemory, object1 ) == object2.getIntValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return context.isRightNull();
- } else if ( context.isRightNull() ) {
- return false;
- }
-
- return context.declaration.getExtractor().getIntValue( workingMemory, left ) == ((LongVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object object2) {
- if ( context.extractor.isNullValue( workingMemory, object2 )) {
- return context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return false;
- }
-
- return context.extractor.getIntValue( workingMemory, object2 ) == ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return false;
- }
-
- return extractor1.getIntValue( workingMemory, object1 ) == extractor2.getIntValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Integer ==";
- }
-
- }
-
- static class IntegerNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new IntegerNotEqualEvaluator();
-
- private IntegerNotEqualEvaluator() {
- super( ValueType.PINTEGER_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return !object2.isNull();
- } else if ( object2.isNull() ) {
- return true;
- }
-
- return extractor.getIntValue( workingMemory, object1 ) != object2.getIntValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return !context.isRightNull();
- } else if ( context.isRightNull() ) {
- return true;
- }
-
- return context.declaration.getExtractor().getIntValue( workingMemory, left ) != ((LongVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object object2) {
- if ( context.extractor.isNullValue( workingMemory, object2 ) ) {
- return !context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return true;
- }
-
- return context.extractor.getIntValue( workingMemory, object2 ) != ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return !extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return true;
- }
-
- return extractor1.getIntValue( workingMemory, object1 ) != extractor2.getIntValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Integer !=";
- }
- }
-
- static class IntegerLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new IntegerLessEvaluator();
-
- private IntegerLessEvaluator() {
- super( ValueType.PINTEGER_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getIntValue( workingMemory, object1 ) < object2.getIntValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right < context.declaration.getExtractor().getIntValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getIntValue( workingMemory, right ) < ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getIntValue( workingMemory, object1 ) < extractor2.getIntValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Integer <";
- }
- }
-
- static class IntegerLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new IntegerLessOrEqualEvaluator();
-
- private IntegerLessOrEqualEvaluator() {
- super( ValueType.PINTEGER_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getIntValue( workingMemory, object1 ) <= object2.getIntValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right <= context.declaration.getExtractor().getIntValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getIntValue( workingMemory, right ) <= ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getIntValue( workingMemory, object1 ) <= extractor2.getIntValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Integer <=";
- }
- }
-
- static class IntegerGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new IntegerGreaterEvaluator();
-
- private IntegerGreaterEvaluator() {
- super( ValueType.PINTEGER_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getIntValue( workingMemory, object1 ) > object2.getIntValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right > context.declaration.getExtractor().getIntValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getIntValue( workingMemory, right ) > ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getIntValue( workingMemory, object1 ) > extractor2.getIntValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Integer >";
- }
- }
-
- static class IntegerGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new IntegerGreaterOrEqualEvaluator();
-
- private IntegerGreaterOrEqualEvaluator() {
- super( ValueType.PINTEGER_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getIntValue( workingMemory, object1 ) >= object2.getIntValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right >= context.declaration.getExtractor().getIntValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getIntValue( workingMemory, right ) >= ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getIntValue( workingMemory, object1 ) >= extractor2.getIntValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Integer >=";
- }
- }
-
- static class IntegerMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new IntegerMemberOfEvaluator();
-
- private IntegerMemberOfEvaluator() {
- super( ValueType.PINTEGER_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Integer memberOf";
- }
- }
-
- static class IntegerNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new IntegerNotMemberOfEvaluator();
-
- private IntegerNotMemberOfEvaluator() {
- super( ValueType.PINTEGER_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Integer not memberOf";
- }
- }
-
-
-}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/LongFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/LongFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/LongFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,434 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.LongVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class LongFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new LongFactory();
-
- private LongFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( LongFactory.INSTANCE == null ) {
- LongFactory.INSTANCE = new LongFactory();
- }
- return LongFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return LongEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return LongNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return LongLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return LongLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return LongGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return LongGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return LongMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return LongNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for LongEvaluator" );
- }
- }
-
- static class LongEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new LongEqualEvaluator();
-
- private LongEqualEvaluator() {
- super( ValueType.PLONG_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return object2.isNull();
- } else if ( object2.isNull() ) {
- return false;
- }
-
- return extractor.getLongValue( workingMemory, object1 ) == object2.getLongValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return context.isRightNull();
- } else if ( context.isRightNull() ) {
- return false;
- }
-
- return context.declaration.getExtractor().getLongValue( workingMemory, left ) == ((LongVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right )) {
- return context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return false;
- }
-
- return ((LongVariableContextEntry) context).left == context.extractor.getLongValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return false;
- }
-
- return extractor1.getLongValue( workingMemory, object1 ) == extractor2.getLongValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Long ==";
- }
- }
-
- static class LongNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new LongNotEqualEvaluator();
-
- private LongNotEqualEvaluator() {
- super( ValueType.PLONG_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return !object2.isNull();
- } else if ( object2.isNull() ) {
- return true;
- }
-
- return extractor.getLongValue( workingMemory, object1 ) != object2.getLongValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return !context.isRightNull();
- } else if ( context.isRightNull() ) {
- return true;
- }
-
- return context.declaration.getExtractor().getLongValue( workingMemory, left ) != ((LongVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right ) ) {
- return !context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return true;
- }
-
- return ((LongVariableContextEntry) context).left != context.extractor.getLongValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return !extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return true;
- }
-
- return extractor1.getLongValue( workingMemory, object1 ) != extractor2.getLongValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Long !=";
- }
- }
-
- static class LongLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new LongLessEvaluator();
-
- private LongLessEvaluator() {
- super( ValueType.PLONG_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getLongValue( workingMemory, object1 ) < object2.getLongValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right < context.declaration.getExtractor().getLongValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getLongValue( workingMemory, right ) < ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getLongValue( workingMemory, object1 ) < extractor2.getLongValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Long <";
- }
- }
-
- static class LongLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new LongLessOrEqualEvaluator();
-
- private LongLessOrEqualEvaluator() {
- super( ValueType.PLONG_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getLongValue( workingMemory, object1 ) <= object2.getLongValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right <= context.declaration.getExtractor().getLongValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getLongValue( workingMemory, right ) <= ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getLongValue( workingMemory, object1 ) <= extractor2.getLongValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Long <=";
- }
- }
-
- static class LongGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new LongGreaterEvaluator();
-
- private LongGreaterEvaluator() {
- super( ValueType.PLONG_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getLongValue( workingMemory, object1 ) > object2.getLongValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right > context.declaration.getExtractor().getLongValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getLongValue( workingMemory, right ) > ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getLongValue( workingMemory, object1 ) > extractor2.getLongValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Long >";
- }
- }
-
- static class LongGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private final static Evaluator INSTANCE = new LongGreaterOrEqualEvaluator();
-
- private LongGreaterOrEqualEvaluator() {
- super( ValueType.PLONG_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getLongValue( workingMemory, object1 ) >= object2.getLongValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right >= context.declaration.getExtractor().getLongValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getLongValue( workingMemory, right ) >= ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getLongValue( workingMemory, object1 ) >= extractor2.getLongValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Long >=";
- }
- }
-
- static class LongMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new LongMemberOfEvaluator();
-
- private LongMemberOfEvaluator() {
- super( ValueType.PLONG_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Long memberOf";
- }
- }
-
- static class LongNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new LongNotMemberOfEvaluator();
-
- private LongNotMemberOfEvaluator() {
- super( ValueType.PLONG_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Long not memberOf";
- }
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/MatchesEvaluatorsDefinition.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/evaluators/MatchesEvaluatorsDefinition.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/MatchesEvaluatorsDefinition.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/MatchesEvaluatorsDefinition.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,213 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.base.evaluators;
+
+import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
+import org.drools.rule.VariableRestriction.VariableContextEntry;
+import org.drools.spi.Evaluator;
+import org.drools.spi.Extractor;
+import org.drools.spi.FieldValue;
+
+/**
+ * This class defines the matches evaluator
+ *
+ * @author etirelli
+ */
+public class MatchesEvaluatorsDefinition implements EvaluatorDefinition {
+
+ public static final Operator MATCHES = Operator.addOperatorToRegistry( "matches",
+ false );
+ public static final Operator NOT_MATCHES = Operator.addOperatorToRegistry( "matches",
+ true );
+
+ private static final String[] SUPPORTED_IDS = { MATCHES.getOperatorString() };
+ private EvaluatorCache evaluators = new EvaluatorCache() {
+ private static final long serialVersionUID = 4782368623L;
+ {
+ addEvaluator( ValueType.STRING_TYPE, MATCHES, StringMatchesEvaluator.INSTANCE );
+ addEvaluator( ValueType.STRING_TYPE, NOT_MATCHES, StringNotMatchesEvaluator.INSTANCE );
+ }
+ };
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator,
+ String parameterText) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+
+ public Evaluator getEvaluator(final ValueType type,
+ final String operatorId,
+ final boolean isNegated,
+ final String parameterText) {
+ return this.evaluators.getEvaluator( type, Operator.determineOperator( operatorId, isNegated ) );
+ }
+
+ public String[] getEvaluatorIds() {
+ return SUPPORTED_IDS;
+ }
+
+ public boolean isNegatable() {
+ return true;
+ }
+
+ public boolean operatesOnFactHandles() {
+ return false;
+ }
+
+ public boolean supportsType(ValueType type) {
+ return this.evaluators.supportsType( type );
+ }
+
+ /* *********************************************************
+ * Evaluator Implementations
+ * *********************************************************
+ */
+ static class StringMatchesEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new StringMatchesEvaluator();
+
+ private StringMatchesEvaluator() {
+ super( ValueType.STRING_TYPE,
+ MATCHES );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final String value1 = (String) extractor.getValue( workingMemory, object1 );
+ final String value2 = (String) object2.getValue();
+ if ( value1 == null ) {
+ return false;
+ }
+ return value1.matches( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final String value = (String) ((ObjectVariableContextEntry) context).right;
+ if ( value == null ) {
+ return false;
+ }
+ return value.matches( (String) context.declaration.getExtractor().getValue( workingMemory, left ) );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final String value = (String) context.extractor.getValue( workingMemory, right );
+ if ( value == null ) {
+ return false;
+ }
+ return value.matches( (String) ((ObjectVariableContextEntry) context).left );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return false;
+ }
+ return ((String) value1).matches( (String) value2 );
+ }
+
+ public String toString() {
+ return "String matches";
+ }
+ }
+
+ static class StringNotMatchesEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new StringNotMatchesEvaluator();
+
+ private StringNotMatchesEvaluator() {
+ super( ValueType.STRING_TYPE,
+ NOT_MATCHES );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final String value1 = (String) extractor.getValue( workingMemory, object1 );
+ final String value2 = (String) object2.getValue();
+ if ( value1 == null ) {
+ return false;
+ }
+ return ! value1.matches( value2 );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final String value = (String) ((ObjectVariableContextEntry) context).right;
+ if ( value == null ) {
+ return false;
+ }
+ return ! value.matches( (String) context.declaration.getExtractor().getValue( workingMemory, left ) );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final String value = (String) context.extractor.getValue( workingMemory, right );
+ if ( value == null ) {
+ return false;
+ }
+ return ! value.matches( (String) ((ObjectVariableContextEntry) context).left );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return false;
+ }
+ return ! ((String) value1).matches( (String) value2 );
+ }
+
+ public String toString() {
+ return "String not matches";
+ }
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ObjectFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,637 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import java.util.Collection;
-import java.util.Comparator;
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ShadowProxy;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-import org.drools.util.ShadowProxyUtils;
-
-/**
- * This is the misc "bucket" evaluator factory for objects.
- * It is fairly limited in operations,
- * and what operations are available are dependent on the exact type.
- *
- * This supports "<" and ">" etc by requiring objects to implement the comparable interface.
- * Of course, literals will not work with comparator, as it has no way
- * of converting from literal to the appropriate type.
- *
- * @author Michael Neale
- */
-public class ObjectFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new ObjectFactory();
-
- private ObjectFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( ObjectFactory.INSTANCE == null ) {
- ObjectFactory.INSTANCE = new ObjectFactory();
- }
- return ObjectFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return ObjectEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return ObjectNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return ObjectLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return ObjectLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return ObjectGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return ObjectGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.CONTAINS ) {
- return ObjectContainsEvaluator.INSTANCE;
- } else if ( operator == Operator.EXCLUDES ) {
- return ObjectExcludesEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_CONTAINS) {
- return ObjectExcludesEvaluator.INSTANCE; // 'not contains' and 'excludes' are synonyms
- } else if ( operator == Operator.MEMBEROF ) {
- return ObjectMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return ObjectNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for ObjectEvaluator" );
- }
- }
-
- static class ObjectEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectEqualEvaluator();
- private static final ObjectEqualsComparator comparator = new ObjectEqualsComparator();
-
- private ObjectEqualEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- return comparator.equals( value1, value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value1 = context.declaration.getExtractor().getValue( workingMemory, left );
- final Object value2 = ((ObjectVariableContextEntry) context).right;
- return comparator.equals( value1, value2 );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value1 = context.extractor.getValue( workingMemory, right );
- final Object value2 = ((ObjectVariableContextEntry) context).left;
- return comparator.equals( value1, value2 );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- return comparator.equals( value1, value2 );
- }
-
- public String toString() {
- return "Object ==";
- }
-
- }
-
- static class ObjectNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectNotEqualEvaluator();
- private static final ObjectEqualsComparator comparator = new ObjectEqualsComparator();
-
- private ObjectNotEqualEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- return !comparator.equals( value1, value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value1 = context.declaration.getExtractor().getValue( workingMemory, left );
- final Object value2 = ((ObjectVariableContextEntry) context).right;
- return !comparator.equals( value1, value2 );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value1 = context.extractor.getValue( workingMemory, right );
- final Object value2 = ((ObjectVariableContextEntry) context).left;
- return !comparator.equals( value1, value2 );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- return !comparator.equals( value1, value2 );
- }
-
- public String toString() {
- return "Object !=";
- }
- }
-
- static class ObjectLessEvaluator extends BaseEvaluator {
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectLessEvaluator();
- private static final ObjectComparator comparator = new ObjectComparator();
-
- private ObjectLessEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Comparable comp = (Comparable) extractor.getValue( workingMemory, object1 );
- return comparator.compare( comp, object2.getValue() ) < 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final Comparable comp = (Comparable) ((ObjectVariableContextEntry) context).right;
- return comparator.compare( comp, context.declaration.getExtractor().getValue( workingMemory, left ) ) < 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final Comparable comp = (Comparable) context.extractor.getValue( workingMemory, right );
- return comparator.compare( comp, ((ObjectVariableContextEntry) context).left ) < 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Comparable comp = (Comparable) extractor1.getValue( workingMemory, object1 );
- return comparator.compare( comp, extractor2.getValue( workingMemory, object2 ) ) < 0;
- }
-
- public String toString() {
- return "Object <";
- }
- }
-
- static class ObjectLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectLessOrEqualEvaluator();
- private static final ObjectComparator comparator = new ObjectComparator();
-
-
- private ObjectLessOrEqualEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Comparable comp = (Comparable) extractor.getValue( workingMemory, object1 );
- return comparator.compare( comp, object2.getValue() ) <= 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final Comparable comp = (Comparable) ((ObjectVariableContextEntry) context).right;
- return comparator.compare( comp, context.declaration.getExtractor().getValue( workingMemory, left ) ) <= 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final Comparable comp = (Comparable) context.extractor.getValue( workingMemory, right );
- return comparator.compare( comp, ((ObjectVariableContextEntry) context).left ) <= 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Comparable comp = (Comparable) extractor1.getValue( workingMemory, object1 );
- return comparator.compare( comp, extractor2.getValue( workingMemory, object2 ) ) <= 0;
- }
-
- public String toString() {
- return "Object <=";
- }
- }
-
- static class ObjectGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectGreaterEvaluator();
- private static final ObjectComparator comparator = new ObjectComparator();
-
-
- private ObjectGreaterEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Comparable comp = (Comparable) extractor.getValue( workingMemory, object1 );
- return comparator.compare( comp, object2.getValue() ) > 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final Comparable comp = (Comparable) ((ObjectVariableContextEntry) context).right;
- return comparator.compare( comp, context.declaration.getExtractor().getValue( workingMemory, left ) ) > 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final Comparable comp = (Comparable) context.extractor.getValue( workingMemory, right );
- return comparator.compare( comp, ((ObjectVariableContextEntry) context).left ) > 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Comparable comp = (Comparable) extractor1.getValue( workingMemory, object1 );
- return comparator.compare( comp, extractor2.getValue( workingMemory, object2 ) ) > 0;
- }
-
- public String toString() {
- return "Object >";
- }
- }
-
- static class ObjectGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectGreaterOrEqualEvaluator();
- private static final ObjectComparator comparator = new ObjectComparator();
-
-
- private ObjectGreaterOrEqualEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Comparable comp = (Comparable) extractor.getValue( workingMemory, object1 );
- return comparator.compare( comp, object2.getValue() ) >= 0;
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- final Comparable comp = (Comparable) ((ObjectVariableContextEntry) context).right;
- return comparator.compare( comp, context.declaration.getExtractor().getValue( workingMemory, left ) ) >= 0;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- final Comparable comp = (Comparable) context.extractor.getValue( workingMemory, right );
- return comparator.compare( comp, ((ObjectVariableContextEntry) context).left ) >= 0;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- final Comparable comp = (Comparable) extractor1.getValue( workingMemory, object1 );
- return comparator.compare( comp, extractor2.getValue( workingMemory, object2 ) ) >= 0;
- }
-
- public String toString() {
- return "Object >=";
- }
- }
-
- static class ObjectContainsEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectContainsEvaluator();
-
- private ObjectContainsEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.CONTAINS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value = object2.getValue();
- final Collection col = (Collection) extractor.getValue( workingMemory, object1 );
- return ( col == null ) ? false : ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- final Collection col = (Collection) ((ObjectVariableContextEntry) context).right;
- return ( col == null ) ? false : ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = ((ObjectVariableContextEntry) context).left;
- final Collection col = (Collection) context.extractor.getValue( workingMemory, right );
- return ( col == null ) ? false : ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value = extractor2.getValue( workingMemory, object2 );
- final Collection col = (Collection) extractor1.getValue( workingMemory, object1 );
- return ( col == null ) ? false : ShadowProxyUtils.contains( col, value );
- }
-
- public String toString() {
- return "Object contains";
- }
- }
-
- static class ObjectExcludesEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectExcludesEvaluator();
-
- private ObjectExcludesEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.EXCLUDES );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value = object2.getValue();
- final Collection col = (Collection) extractor.getValue( workingMemory, object1 );
- return ( col == null ) ? true : !ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- final Collection col = (Collection) ((ObjectVariableContextEntry) context).right;
- return ( col == null ) ? true : !ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = ((ObjectVariableContextEntry) context).left;
- final Collection col = (Collection) context.extractor.getValue( workingMemory, right );
- return ( col == null ) ? true : !ShadowProxyUtils.contains( col, value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value = extractor2.getValue( workingMemory, object2 );
- final Collection col = (Collection) extractor1.getValue( workingMemory, object1 );
- return ( col == null ) ? true : !ShadowProxyUtils.contains( col, value );
- }
-
- public String toString() {
- return "Object excludes";
- }
- }
-
- static class ObjectMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectMemberOfEvaluator();
-
- private ObjectMemberOfEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Object memberOf";
- }
- }
-
- static class ObjectNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ObjectNotMemberOfEvaluator();
-
- private ObjectNotMemberOfEvaluator() {
- super( ValueType.OBJECT_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Object not memberOf";
- }
- }
-
- protected static class ObjectEqualsComparator {
-
- // trying to implement runtime type coercion
- public boolean equals( Object arg0, Object arg1 ) {
- if ( arg0 == null ) {
- return arg1 == null;
- }
- if( arg1 != null && arg1 instanceof ShadowProxy ) {
- return arg1.equals( arg0 );
- }
- if( arg0 instanceof Number ){
- double val0 = ((Number) arg0).doubleValue();
- double val1 = 0;
- if( arg1 instanceof Number ) {
- val1 = ((Number) arg1).doubleValue();
- } else if( arg1 instanceof String ) {
- val1 = Double.parseDouble( ( String ) arg1 );
- } else {
- throw new ClassCastException( "Not possible to convert "+arg1.getClass()+" into a double value to compare it to "+arg0.getClass() );
- }
- return val0 == val1; // in the future we may need to handle rounding errors
- }
- if( arg0 instanceof String ) {
- return arg0.equals( arg1.toString() );
- }
- if( arg0 instanceof Boolean ) {
- if( arg1 instanceof String ) {
- return ((Boolean)arg0).booleanValue() == Boolean.valueOf( (String)arg1 ).booleanValue();
- }
- }
- if( arg0 instanceof Character ) {
- if( arg1 instanceof String && ((String) arg1).length() == 1 ) {
- return ((Character)arg0).charValue() == ((String)arg1).charAt( 0 );
- }
- }
- return arg0.equals( arg1 );
- }
- }
-
- protected static class ObjectComparator implements Comparator {
- // this is a stateless object, and so, can be shared among threads
- // PLEASE: do not add state to it, unless you remove all concurrent
- // calls to this class instances
-
- public int compare(Object arg0,
- Object arg1) {
- if( arg0 instanceof Double || arg0 instanceof Float ) {
- double val0 = ((Number) arg0).doubleValue();
- double val1 = 0;
- if( arg1 instanceof Number ) {
- val1 = ((Number) arg1).doubleValue();
- } else if( arg1 instanceof String ) {
- val1 = Double.parseDouble( ( String ) arg1 );
- } else {
- throw new ClassCastException( "Not possible to convert "+arg1.getClass()+" into a double value to compare it to "+arg0.getClass() );
- }
- return val0 > val1 ? 1 : val0 < val1 ? -1 : 0;
- } else if( arg0 instanceof Number ){
- long val0 = ((Number) arg0).longValue();
- long val1 = 0;
- if( arg1 instanceof Number ) {
- val1 = ((Number) arg1).longValue();
- } else if( arg1 instanceof String ) {
- val1 = Long.parseLong( ( String ) arg1 );
- } else {
- throw new ClassCastException( "Not possible to convert "+arg1.getClass()+" into a long value to compare it to "+arg0.getClass() );
- }
- return val0 > val1 ? 1 : val0 < val1 ? -1 : 0;
- } else if( arg0 instanceof String ) {
- try {
- double val0 = Double.parseDouble( (String) arg0 );
- double val1 = 0;
- if( arg1 instanceof Number ) {
- val1 = ((Number) arg1).doubleValue();
- } else if( arg1 instanceof String ) {
- val1 = Double.parseDouble( ( String ) arg1 );
- } else {
- throw new ClassCastException( "Not possible to convert "+arg1.getClass()+" into a double value to compare it to "+arg0.getClass() );
- }
- return val0 > val1 ? 1 : val0 < val1 ? -1 : 0;
- } catch( NumberFormatException nfe ) {
- return ( (String) arg0).compareTo( arg1.toString() );
- }
-
- }
- try {
- return ((Comparable)arg0).compareTo( arg1 );
- } catch ( ClassCastException cce ) {
- throw new ClassCastException( "Not possible to compare a "+arg0.getClass()+" with a "+arg1.getClass());
- }
- }
- }
-
-
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/Operator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/Operator.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/Operator.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,6 +1,9 @@
package org.drools.base.evaluators;
import java.io.Serializable;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
import org.drools.RuntimeDroolsException;
@@ -8,67 +11,85 @@
implements
Serializable {
- private static final long serialVersionUID = 400L;
+ private static final long serialVersionUID = 400L;
- public static final Operator EQUAL = new Operator( "==" );
- public static final Operator NOT_EQUAL = new Operator( "!=" );
- public static final Operator LESS = new Operator( "<" );
- public static final Operator LESS_OR_EQUAL = new Operator( "<=" );
- public static final Operator GREATER = new Operator( ">" );
- public static final Operator GREATER_OR_EQUAL = new Operator( ">=" );
- public static final Operator CONTAINS = new Operator( "contains" );
- public static final Operator EXCLUDES = new Operator( "excludes" );
- public static final Operator NOT_CONTAINS = new Operator( "not contains" );
- public static final Operator MATCHES = new Operator( "matches" );
- public static final Operator NOT_MATCHES = new Operator( "not matches" );
- public static final Operator MEMBEROF = new Operator( "memberOf" );
- public static final Operator NOTMEMBEROF = new Operator( "not memberOf" );
+ // a static private cache so that pluggable operator can register their implementations
+ // it is automatically initialized with common operator implementations
+ private static final Map<String, Operator> CACHE = Collections.synchronizedMap( new HashMap<String, Operator>() );
- public static final Operator SOUNDSLIKE = new Operator("soundslike");
+ // these static operator constants are kept here just to make it easier for the engine
+ // to reference common used operators. The addition of new constants here is not
+ // advisable though.
+ public static final Operator EQUAL = addOperatorToRegistry( "==",
+ false );
+ public static final Operator NOT_EQUAL = addOperatorToRegistry( "!=",
+ false );
+ public static final Operator LESS = addOperatorToRegistry( "<",
+ false );
+ public static final Operator LESS_OR_EQUAL = addOperatorToRegistry( "<=",
+ false );
+ public static final Operator GREATER = addOperatorToRegistry( ">",
+ false );
+ public static final Operator GREATER_OR_EQUAL = addOperatorToRegistry( ">=",
+ false );
- private String operator;
+ /**
+ * Creates a new Operator instance for the given parameters,
+ * adds it to the registry and return it
+ *
+ * @param operatorId the identification symbol of the operator
+ * @param isNegated true if it is negated
+ *
+ * @return the newly created operator
+ */
+ public static Operator addOperatorToRegistry(final String operatorId,
+ final boolean isNegated) {
+ Operator op = new Operator( operatorId,
+ isNegated );
+ CACHE.put( getKey( operatorId,
+ isNegated ),
+ op );
+ return op;
+ }
- private Operator(final String operator) {
+ /**
+ * Returns the operator instance for the given parameters
+ *
+ * @param operatorId the identification symbol of the operator
+ * @param isNegated true if it is negated
+ *
+ * @return the operator in case it exists
+ */
+ public static Operator determineOperator(final String operatorId,
+ final boolean isNegated) {
+ Operator op = CACHE.get( getKey( operatorId,
+ isNegated ) );
+ if ( op == null ) {
+ throw new RuntimeDroolsException( "unable to determine operator for symbol [" + (isNegated ? "not " : "") + operatorId + "]" );
+ }
+ return op;
+ }
+
+ private static String getKey(final String string,
+ final boolean isNegated) {
+ return isNegated + ":" + string;
+ }
+
+ // This class attributes
+ private String operator;
+ private boolean isNegated;
+
+ private Operator(final String operator,
+ final boolean isNegated) {
this.operator = operator;
+ this.isNegated = isNegated;
}
private Object readResolve() throws java.io.ObjectStreamException {
- return determineOperator( this.operator );
+ return determineOperator( this.operator,
+ this.isNegated );
}
- public static Operator determineOperator(final String string) {
- if ( string.equals( "==" ) ) {
- return Operator.EQUAL;
- } else if ( string.equals( "!=" ) ) {
- return Operator.NOT_EQUAL;
- } else if ( string.equals( "<" ) ) {
- return Operator.LESS;
- } else if ( string.equals( "<=" ) ) {
- return Operator.LESS_OR_EQUAL;
- } else if ( string.equals( ">" ) ) {
- return Operator.GREATER;
- } else if ( string.equals( ">=" ) ) {
- return Operator.GREATER_OR_EQUAL;
- } else if ( string.equals( "contains" ) ) {
- return Operator.CONTAINS;
- } else if ( string.equals( "not contains" ) ) {
- return Operator.NOT_CONTAINS;
- } else if ( string.equals( "matches" ) ) {
- return Operator.MATCHES;
- } else if ( string.equals( "not matches" ) ) {
- return Operator.NOT_MATCHES;
- } else if ( string.equals( "excludes" ) ) {
- return Operator.EXCLUDES;
- } else if ( string.equals( "memberOf" ) ) {
- return Operator.MEMBEROF;
- } else if ( string.equals( "not memberOf" ) ) {
- return Operator.NOTMEMBEROF;
- } else if ( string.equals( "soundslike" ) ) {
- return Operator.SOUNDSLIKE;
- }
- throw new RuntimeDroolsException( "unable to determine operator for String [" + string + "]" );
- }
-
public String toString() {
return "Operator = '" + this.operator + "'";
}
@@ -76,16 +97,31 @@
public String getOperatorString() {
return this.operator;
}
+
+ public boolean isNegated() {
+ return this.isNegated;
+ }
+ @Override
public int hashCode() {
- return this.operator.hashCode();
+ final int PRIME = 31;
+ int result = super.hashCode();
+ result = PRIME * result + (isNegated ? 1231 : 1237);
+ result = PRIME * result + ((operator == null) ? 0 : operator.hashCode());
+ return result;
}
- public boolean equals(final Object object) {
- if ( object == this ) {
- return true;
- }
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( getClass() != obj.getClass() ) return false;
+ final Operator other = (Operator) obj;
+ if ( isNegated != other.isNegated ) return false;
+ if ( operator == null ) {
+ if ( other.operator != null ) return false;
+ } else if ( !operator.equals( other.operator ) ) return false;
+ return true;
+ }
- return false;
- }
}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/SetEvaluatorsDefinition.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/evaluators/SetEvaluatorsDefinition.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/SetEvaluatorsDefinition.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/SetEvaluatorsDefinition.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,1108 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.base.evaluators;
+
+import java.util.Collection;
+
+import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
+import org.drools.rule.VariableRestriction.VariableContextEntry;
+import org.drools.spi.Evaluator;
+import org.drools.spi.Extractor;
+import org.drools.spi.FieldValue;
+import org.drools.util.ShadowProxyUtils;
+
+/**
+ * This class defines all the set built in
+ * evaluators like contains, memberOf, etc.
+ *
+ * @author etirelli
+ */
+public class SetEvaluatorsDefinition
+ implements
+ EvaluatorDefinition {
+
+ public static final Operator CONTAINS = Operator.addOperatorToRegistry( "contains",
+ false );
+ public static final Operator NOT_CONTAINS = Operator.addOperatorToRegistry( "contains",
+ true );
+ public static final Operator EXCLUDES = Operator.addOperatorToRegistry( "excludes",
+ false );
+ public static final Operator NOT_EXCLUDES = Operator.addOperatorToRegistry( "excludes",
+ true );
+ public static final Operator MEMBEROF = Operator.addOperatorToRegistry( "memberOf",
+ false );
+ public static final Operator NOT_MEMBEROF = Operator.addOperatorToRegistry( "memberOf",
+ true );
+
+ private static final String[] SUPPORTED_IDS = {CONTAINS.getOperatorString(), EXCLUDES.getOperatorString(), MEMBEROF.getOperatorString()};
+ private EvaluatorCache evaluators = new EvaluatorCache() {
+ private static final long serialVersionUID = 4782368623L;
+ {
+ addEvaluator( ValueType.ARRAY_TYPE, CONTAINS, ArrayContainsEvaluator.INSTANCE );
+ addEvaluator( ValueType.ARRAY_TYPE, NOT_CONTAINS, ArrayExcludesEvaluator.INSTANCE );
+ addEvaluator( ValueType.ARRAY_TYPE, EXCLUDES, ArrayExcludesEvaluator.INSTANCE );
+ addEvaluator( ValueType.ARRAY_TYPE, NOT_EXCLUDES, ArrayContainsEvaluator.INSTANCE );
+ addEvaluator( ValueType.ARRAY_TYPE, MEMBEROF, ArrayMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.ARRAY_TYPE, NOT_MEMBEROF, ArrayNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_DECIMAL_TYPE, MEMBEROF, BigDecimalMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_DECIMAL_TYPE, NOT_MEMBEROF, BigDecimalNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_INTEGER_TYPE, MEMBEROF, BigIntegerMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.BIG_INTEGER_TYPE, NOT_MEMBEROF, BigIntegerNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.BOOLEAN_TYPE, MEMBEROF, BooleanMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.BOOLEAN_TYPE, NOT_MEMBEROF, BooleanNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBOOLEAN_TYPE, MEMBEROF, BooleanMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBOOLEAN_TYPE, NOT_MEMBEROF, BooleanNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.BYTE_TYPE, MEMBEROF, ByteMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.BYTE_TYPE, NOT_MEMBEROF, ByteNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBYTE_TYPE, MEMBEROF, ByteMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PBYTE_TYPE, NOT_MEMBEROF, ByteNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.CHAR_TYPE, MEMBEROF, CharacterMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.CHAR_TYPE, NOT_MEMBEROF, CharacterNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PCHAR_TYPE, MEMBEROF, CharacterMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PCHAR_TYPE, NOT_MEMBEROF, CharacterNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.DATE_TYPE, MEMBEROF, DateMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.DATE_TYPE, NOT_MEMBEROF, DateNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.DOUBLE_TYPE, MEMBEROF, DoubleMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.DOUBLE_TYPE, NOT_MEMBEROF, DoubleNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PDOUBLE_TYPE, MEMBEROF, DoubleMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PDOUBLE_TYPE, NOT_MEMBEROF, DoubleNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.FLOAT_TYPE, MEMBEROF, FloatMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.FLOAT_TYPE, NOT_MEMBEROF, FloatNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PFLOAT_TYPE, MEMBEROF, FloatMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PFLOAT_TYPE, NOT_MEMBEROF, FloatNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.INTEGER_TYPE, MEMBEROF, IntegerMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.INTEGER_TYPE, NOT_MEMBEROF, IntegerNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PINTEGER_TYPE, MEMBEROF, IntegerMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PINTEGER_TYPE, NOT_MEMBEROF, IntegerNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.LONG_TYPE, MEMBEROF, LongMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.LONG_TYPE, NOT_MEMBEROF, LongNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PLONG_TYPE, MEMBEROF, LongMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PLONG_TYPE, NOT_MEMBEROF, LongNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, CONTAINS, ObjectContainsEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, NOT_CONTAINS, ObjectExcludesEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, EXCLUDES, ObjectExcludesEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, NOT_EXCLUDES, ObjectContainsEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, MEMBEROF, ObjectMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.OBJECT_TYPE, NOT_MEMBEROF, ObjectNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.SHORT_TYPE, MEMBEROF, ShortMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.SHORT_TYPE, NOT_MEMBEROF, ShortNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PSHORT_TYPE, MEMBEROF, ShortMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.PSHORT_TYPE, NOT_MEMBEROF, ShortNotMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.STRING_TYPE, MEMBEROF, StringMemberOfEvaluator.INSTANCE );
+ addEvaluator( ValueType.STRING_TYPE, NOT_MEMBEROF, StringNotMemberOfEvaluator.INSTANCE );
+ }
+ };
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator,
+ String parameterText) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+ public Evaluator getEvaluator(final ValueType type,
+ final String operatorId,
+ final boolean isNegated,
+ final String parameterText) {
+ return this.evaluators.getEvaluator( type,
+ Operator.determineOperator( operatorId,
+ isNegated ) );
+ }
+
+ public String[] getEvaluatorIds() {
+ return SUPPORTED_IDS;
+ }
+
+ public boolean isNegatable() {
+ return true;
+ }
+
+ public boolean operatesOnFactHandles() {
+ return false;
+ }
+
+ public boolean supportsType(ValueType type) {
+ return this.evaluators.supportsType( type );
+ }
+
+ /* *********************************************************
+ * Evaluator Implementations
+ * *********************************************************
+ */
+ static class ArrayContainsEvaluator extends BaseEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ArrayContainsEvaluator();
+
+ private ArrayContainsEvaluator() {
+ super( ValueType.ARRAY_TYPE,
+ CONTAINS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ final Object value = object2.getValue();
+ final Object[] array = (Object[]) extractor.getValue( workingMemory,
+ object1 );
+ if ( array == null ) return false;
+ return ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ final Object[] array = (Object[]) ((ObjectVariableContextEntry) context).right;
+ if ( array == null ) return false;
+ return ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object value = ((ObjectVariableContextEntry) context).left;
+ final Object[] array = (Object[]) context.extractor.getValue( workingMemory,
+ right );
+ if ( array == null ) return false;
+ return ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object value = extractor2.getValue( workingMemory,
+ object2 );
+ final Object[] array = (Object[]) extractor1.getValue( workingMemory,
+ object1 );
+
+ if ( array == null ) return false;
+ return ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public String toString() {
+ return "Array contains";
+ }
+ }
+
+ static class ArrayExcludesEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ArrayExcludesEvaluator();
+
+ private ArrayExcludesEvaluator() {
+ super( ValueType.ARRAY_TYPE,
+ EXCLUDES );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ final Object value = object2.getValue();
+ final Object[] array = (Object[]) extractor.getValue( workingMemory,
+ object1 );
+ if ( array == null ) return true;
+ return !ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ final Object[] array = (Object[]) ((ObjectVariableContextEntry) context).right;
+ if ( array == null ) return true;
+ return !ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object value = ((ObjectVariableContextEntry) context).left;
+ final Object[] array = (Object[]) context.extractor.getValue( workingMemory,
+ right );
+ if ( array == null ) return true;
+ return !ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object value = extractor2.getValue( workingMemory,
+ object2 );
+ final Object[] array = (Object[]) extractor1.getValue( workingMemory,
+ object1 );
+
+ if ( array == null ) return true;
+ return !ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public String toString() {
+ return "Array excludes";
+ }
+ }
+
+ static class ArrayMemberOfEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ArrayMemberOfEvaluator();
+
+ private ArrayMemberOfEvaluator() {
+ super( ValueType.ARRAY_TYPE,
+ MEMBEROF );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ final Object[] array = (Object[]) object2.getValue();
+ final Object value = extractor.getValue( workingMemory,
+ object1 );
+ if ( array == null ) return false;
+ return ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object[] array = (Object[]) context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ final Object value = ((ObjectVariableContextEntry) context).right;
+ if ( array == null ) return false;
+ return ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object[] array = (Object[]) ((ObjectVariableContextEntry) context).left;
+ final Object value = context.extractor.getValue( workingMemory,
+ right );
+ if ( array == null ) return false;
+ return ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object[] array = (Object[]) extractor2.getValue( workingMemory,
+ object2 );
+ final Object value = extractor1.getValue( workingMemory,
+ object1 );
+
+ if ( array == null ) return false;
+ return ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public String toString() {
+ return "Array memberOf";
+ }
+ }
+
+ static class ArrayNotMemberOfEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ArrayNotMemberOfEvaluator();
+
+ private ArrayNotMemberOfEvaluator() {
+ super( ValueType.ARRAY_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ final Object[] array = (Object[]) object2.getValue();
+ final Object value = extractor.getValue( workingMemory,
+ object1 );
+ if ( array == null ) return true;
+ return !ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object[] array = (Object[]) context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ final Object value = ((ObjectVariableContextEntry) context).right;
+ if ( array == null ) return true;
+ return !ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object[] array = (Object[]) ((ObjectVariableContextEntry) context).left;
+ final Object value = context.extractor.getValue( workingMemory,
+ right );
+ if ( array == null ) return true;
+ return !ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object[] array = (Object[]) extractor2.getValue( workingMemory,
+ object2 );
+ final Object value = extractor1.getValue( workingMemory,
+ object1 );
+
+ if ( array == null ) return true;
+ return !ShadowProxyUtils.contains( array,
+ value );
+ }
+
+ public String toString() {
+ return "Array not memberOf";
+ }
+ }
+
+ static abstract class BaseMemberOfEvaluator extends BaseEvaluator {
+
+ private static final long serialVersionUID = 2017803222427893249L;
+
+ public BaseMemberOfEvaluator(ValueType type,
+ Operator operator) {
+ super( type,
+ operator );
+ }
+
+ public ValueType getCoercedValueType() {
+ // during evaluation, always coerce to object
+ return ValueType.OBJECT_TYPE;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ if ( object2.isNull() ) {
+ return false;
+ } else if ( !object2.isCollectionField() ) {
+ throw new ClassCastException( "Can't check if an attribute is member of an object of class " + object2.getValue().getClass() );
+ }
+ final Collection col = (Collection) object2.getValue();
+ final Object value = extractor.getValue( workingMemory,
+ object1 );
+ return ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object object = context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ if ( object == null ) {
+ return false;
+ } else if ( !(object instanceof Collection) ) {
+ throw new ClassCastException( "Can't check if an attribute is member of an object of class " + object.getClass() );
+ }
+ final Collection col = (Collection) object;
+ final Object value = ((ObjectVariableContextEntry) context).right;
+ return ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object object = ((ObjectVariableContextEntry) context).left;
+ if ( object == null ) {
+ return false;
+ } else if ( !(object instanceof Collection) ) {
+ throw new ClassCastException( "Can't check if an attribute is member of an object of class " + object.getClass() );
+ }
+ final Collection col = (Collection) object;
+ final Object value = context.extractor.getValue( workingMemory,
+ right );
+ return ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object object = extractor2.getValue( workingMemory,
+ object2 );
+ if ( object == null ) {
+ return false;
+ } else if ( !(object instanceof Collection) ) {
+ throw new ClassCastException( "Can't check if an attribute is member of an object of class " + object.getClass() );
+ }
+ final Collection col = (Collection) object;
+ final Object value = extractor1.getValue( workingMemory,
+ object1 );
+ return ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public abstract String toString();
+
+ }
+
+ static abstract class BaseNotMemberOfEvaluator extends BaseEvaluator {
+
+ private static final long serialVersionUID = -8730331781980886901L;
+
+ public BaseNotMemberOfEvaluator(ValueType type,
+ Operator operator) {
+ super( type,
+ operator );
+ }
+
+ public ValueType getCoercedValueType() {
+ // during evaluation, always coerce to object
+ return ValueType.OBJECT_TYPE;
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ if ( object2.isNull() ) {
+ return false;
+ } else if ( !object2.isCollectionField() ) {
+ throw new ClassCastException( "Can't check if an attribute is not member of an object of class " + object2.getValue().getClass() );
+ }
+ final Collection col = (Collection) object2.getValue();
+ final Object value = extractor.getValue( workingMemory,
+ object1 );
+ return !ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object object = context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ if ( object == null ) {
+ return false;
+ } else if ( !(object instanceof Collection) ) {
+ throw new ClassCastException( "Can't check if an attribute is not member of an object of class " + object.getClass() );
+ }
+ final Collection col = (Collection) object;
+ final Object value = ((ObjectVariableContextEntry) context).right;
+ return !ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object object = ((ObjectVariableContextEntry) context).left;
+ if ( object == null ) {
+ return false;
+ } else if ( !(object instanceof Collection) ) {
+ throw new ClassCastException( "Can't check if an attribute is not member of an object of class " + object.getClass() );
+ }
+ final Collection col = (Collection) object;
+ final Object value = context.extractor.getValue( workingMemory,
+ right );
+ return !ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object object = extractor2.getValue( workingMemory,
+ object2 );
+ if ( object == null ) {
+ return false;
+ } else if ( !(object instanceof Collection) ) {
+ throw new ClassCastException( "Can't check if an attribute is not member of an object of class " + object.getClass() );
+ }
+ final Collection col = (Collection) object;
+ final Object value = extractor1.getValue( workingMemory,
+ object1 );
+ return !ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public abstract String toString();
+ }
+
+ static class BigDecimalMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigDecimalMemberOfEvaluator();
+
+ private BigDecimalMemberOfEvaluator() {
+ super( ValueType.BIG_DECIMAL_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "BigDecimal memberOf";
+ }
+ }
+
+ static class BigDecimalNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigDecimalNotMemberOfEvaluator();
+
+ private BigDecimalNotMemberOfEvaluator() {
+ super( ValueType.BIG_DECIMAL_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "BigDecimal not memberOf";
+ }
+ }
+
+ static class BigIntegerMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigIntegerMemberOfEvaluator();
+
+ private BigIntegerMemberOfEvaluator() {
+ super( ValueType.BIG_INTEGER_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "BigInteger memberOf";
+ }
+ }
+
+ static class BigIntegerNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BigIntegerNotMemberOfEvaluator();
+
+ private BigIntegerNotMemberOfEvaluator() {
+ super( ValueType.BIG_INTEGER_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "BigInteger not memberOf";
+ }
+ }
+
+ static class BooleanMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BooleanMemberOfEvaluator();
+
+ private BooleanMemberOfEvaluator() {
+ super( ValueType.PBOOLEAN_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Boolean memberOf";
+ }
+ }
+
+ static class BooleanNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new BooleanNotMemberOfEvaluator();
+
+ private BooleanNotMemberOfEvaluator() {
+ super( ValueType.PBOOLEAN_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Boolean not memberOf";
+ }
+ }
+
+ static class ByteMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ByteMemberOfEvaluator();
+
+ private ByteMemberOfEvaluator() {
+ super( ValueType.PBYTE_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Byte memberOf";
+ }
+ }
+
+ static class ByteNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ByteNotMemberOfEvaluator();
+
+ private ByteNotMemberOfEvaluator() {
+ super( ValueType.PBYTE_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Byte not memberOf";
+ }
+ }
+
+ static class CharacterMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new CharacterMemberOfEvaluator();
+
+ private CharacterMemberOfEvaluator() {
+ super( ValueType.PCHAR_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Character memberOf";
+ }
+ }
+
+ static class CharacterNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new CharacterNotMemberOfEvaluator();
+
+ private CharacterNotMemberOfEvaluator() {
+ super( ValueType.PCHAR_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Character not memberOf";
+ }
+ }
+
+ static class DateMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DateMemberOfEvaluator();
+
+ private DateMemberOfEvaluator() {
+ super( ValueType.DATE_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Date memberOf";
+ }
+ }
+
+ static class DateNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DateNotMemberOfEvaluator();
+
+ private DateNotMemberOfEvaluator() {
+ super( ValueType.DATE_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Date not memberOf";
+ }
+ }
+
+ static class DoubleMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DoubleMemberOfEvaluator();
+
+ private DoubleMemberOfEvaluator() {
+ super( ValueType.PDOUBLE_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Double memberOf";
+ }
+ }
+
+ static class DoubleNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new DoubleNotMemberOfEvaluator();
+
+ private DoubleNotMemberOfEvaluator() {
+ super( ValueType.PDOUBLE_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Double not memberOf";
+ }
+ }
+
+ static class FloatMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new FloatMemberOfEvaluator();
+
+ private FloatMemberOfEvaluator() {
+ super( ValueType.PFLOAT_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Float memberOf";
+ }
+ }
+
+ static class FloatNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new FloatNotMemberOfEvaluator();
+
+ private FloatNotMemberOfEvaluator() {
+ super( ValueType.PFLOAT_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Float not memberOf";
+ }
+ }
+
+ static class IntegerMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new IntegerMemberOfEvaluator();
+
+ private IntegerMemberOfEvaluator() {
+ super( ValueType.PINTEGER_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Integer memberOf";
+ }
+ }
+
+ static class IntegerNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new IntegerNotMemberOfEvaluator();
+
+ private IntegerNotMemberOfEvaluator() {
+ super( ValueType.PINTEGER_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Integer not memberOf";
+ }
+ }
+
+ static class LongMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new LongMemberOfEvaluator();
+
+ private LongMemberOfEvaluator() {
+ super( ValueType.PLONG_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Long memberOf";
+ }
+ }
+
+ static class LongNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new LongNotMemberOfEvaluator();
+
+ private LongNotMemberOfEvaluator() {
+ super( ValueType.PLONG_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Long not memberOf";
+ }
+ }
+
+ static class ObjectContainsEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectContainsEvaluator();
+
+ private ObjectContainsEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ CONTAINS );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ final Object value = object2.getValue();
+ final Collection col = (Collection) extractor.getValue( workingMemory,
+ object1 );
+ return (col == null) ? false : ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ final Collection col = (Collection) ((ObjectVariableContextEntry) context).right;
+ return (col == null) ? false : ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object value = ((ObjectVariableContextEntry) context).left;
+ final Collection col = (Collection) context.extractor.getValue( workingMemory,
+ right );
+ return (col == null) ? false : ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object value = extractor2.getValue( workingMemory,
+ object2 );
+ final Collection col = (Collection) extractor1.getValue( workingMemory,
+ object1 );
+ return (col == null) ? false : ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public String toString() {
+ return "Object contains";
+ }
+ }
+
+ static class ObjectExcludesEvaluator extends BaseEvaluator {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectExcludesEvaluator();
+
+ private ObjectExcludesEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ EXCLUDES );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1,
+ final FieldValue object2) {
+ final Object value = object2.getValue();
+ final Collection col = (Collection) extractor.getValue( workingMemory,
+ object1 );
+ return (col == null) ? true : !ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object left) {
+ final Object value = context.declaration.getExtractor().getValue( workingMemory,
+ left );
+ final Collection col = (Collection) ((ObjectVariableContextEntry) context).right;
+ return (col == null) ? true : !ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context,
+ final Object right) {
+ final Object value = ((ObjectVariableContextEntry) context).left;
+ final Collection col = (Collection) context.extractor.getValue( workingMemory,
+ right );
+ return (col == null) ? true : !ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2,
+ final Object object2) {
+ final Object value = extractor2.getValue( workingMemory,
+ object2 );
+ final Collection col = (Collection) extractor1.getValue( workingMemory,
+ object1 );
+ return (col == null) ? true : !ShadowProxyUtils.contains( col,
+ value );
+ }
+
+ public String toString() {
+ return "Object excludes";
+ }
+ }
+
+ static class ObjectMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectMemberOfEvaluator();
+
+ private ObjectMemberOfEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Object memberOf";
+ }
+ }
+
+ static class ObjectNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ObjectNotMemberOfEvaluator();
+
+ private ObjectNotMemberOfEvaluator() {
+ super( ValueType.OBJECT_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Object not memberOf";
+ }
+ }
+
+ static class ShortMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ShortMemberOfEvaluator();
+
+ private ShortMemberOfEvaluator() {
+ super( ValueType.PSHORT_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "Short memberOf";
+ }
+ }
+
+ static class ShortNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new ShortNotMemberOfEvaluator();
+
+ private ShortNotMemberOfEvaluator() {
+ super( ValueType.PSHORT_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "Short not memberOf";
+ }
+ }
+
+ static class StringMemberOfEvaluator extends BaseMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new StringMemberOfEvaluator();
+
+ private StringMemberOfEvaluator() {
+ super( ValueType.STRING_TYPE,
+ MEMBEROF );
+ }
+
+ public String toString() {
+ return "String memberOf";
+ }
+ }
+
+ static class StringNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new StringNotMemberOfEvaluator();
+
+ private StringNotMemberOfEvaluator() {
+ super( ValueType.STRING_TYPE,
+ NOT_MEMBEROF );
+ }
+
+ public String toString() {
+ return "String not memberOf";
+ }
+ }
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ShortFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ShortFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/ShortFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,434 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.LongVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-
-public class ShortFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new ShortFactory();
-
- private ShortFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( ShortFactory.INSTANCE == null ) {
- ShortFactory.INSTANCE = new ShortFactory();
- }
- return ShortFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return ShortEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return ShortNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS ) {
- return ShortLessEvaluator.INSTANCE;
- } else if ( operator == Operator.LESS_OR_EQUAL ) {
- return ShortLessOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER ) {
- return ShortGreaterEvaluator.INSTANCE;
- } else if ( operator == Operator.GREATER_OR_EQUAL ) {
- return ShortGreaterOrEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return ShortMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return ShortNotMemberOfEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for ShortEvaluator" );
- }
- }
-
- static class ShortEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private static final Evaluator INSTANCE = new ShortEqualEvaluator();
-
- private ShortEqualEvaluator() {
- super( ValueType.PSHORT_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return object2.isNull();
- } else if ( object2.isNull() ) {
- return false;
- }
-
- return extractor.getShortValue( workingMemory, object1 ) == object2.getShortValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return context.isRightNull();
- } else if ( context.isRightNull() ) {
- return false;
- }
-
- return context.declaration.getExtractor().getShortValue( workingMemory, left ) == ((LongVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right )) {
- return context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return false;
- }
-
- return ((LongVariableContextEntry) context).left == context.extractor.getShortValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return false;
- }
-
- return extractor1.getShortValue( workingMemory, object1 ) == extractor2.getShortValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Short ==";
- }
- }
-
- static class ShortNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private static final Evaluator INSTANCE = new ShortNotEqualEvaluator();
-
- private ShortNotEqualEvaluator() {
- super( ValueType.PSHORT_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if ( extractor.isNullValue( workingMemory, object1 ) ) {
- return !object2.isNull();
- } else if ( object2.isNull() ) {
- return true;
- }
-
- return extractor.getShortValue( workingMemory, object1 ) != object2.getShortValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if ( context.declaration.getExtractor().isNullValue( workingMemory, left ) ) {
- return !context.isRightNull();
- } else if ( context.isRightNull() ) {
- return true;
- }
-
- return context.declaration.getExtractor().getShortValue( workingMemory, left ) != ((LongVariableContextEntry) context).right;
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if ( context.extractor.isNullValue( workingMemory, right ) ) {
- return !context.isLeftNull();
- } else if ( context.isLeftNull() ) {
- return true;
- }
-
- return ((LongVariableContextEntry) context).left != context.extractor.getShortValue( workingMemory, right );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if (extractor1.isNullValue( workingMemory, object1 )) {
- return !extractor2.isNullValue( workingMemory, object2 );
- } else if (extractor2.isNullValue( workingMemory, object2 )) {
- return true;
- }
-
- return extractor1.getShortValue( workingMemory, object1 ) != extractor2.getShortValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Short !=";
- }
- }
-
- static class ShortLessEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private static final Evaluator INSTANCE = new ShortLessEvaluator();
-
- private ShortLessEvaluator() {
- super( ValueType.PSHORT_TYPE,
- Operator.LESS );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getShortValue( workingMemory, object1 ) < object2.getShortValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right < context.declaration.getExtractor().getShortValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getShortValue( workingMemory, right ) < ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getShortValue( workingMemory, object1 ) < extractor2.getShortValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Short <";
- }
- }
-
- static class ShortLessOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private static final Evaluator INSTANCE = new ShortLessOrEqualEvaluator();
-
- private ShortLessOrEqualEvaluator() {
- super( ValueType.PSHORT_TYPE,
- Operator.LESS_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getShortValue( workingMemory, object1 ) <= object2.getShortValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right <= context.declaration.getExtractor().getShortValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getShortValue( workingMemory, right ) <= ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getShortValue( workingMemory, object1 ) <= extractor2.getShortValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Boolean <=";
- }
- }
-
- static class ShortGreaterEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private static final Evaluator INSTANCE = new ShortGreaterEvaluator();
-
- private ShortGreaterEvaluator() {
- super( ValueType.PSHORT_TYPE,
- Operator.GREATER );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getShortValue( workingMemory, object1 ) > object2.getShortValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right > context.declaration.getExtractor().getShortValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getShortValue( workingMemory, right ) > ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getShortValue( workingMemory, object1 ) > extractor2.getShortValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Short >";
- }
- }
-
- static class ShortGreaterOrEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- private static final Evaluator INSTANCE = new ShortGreaterOrEqualEvaluator();
-
- private ShortGreaterOrEqualEvaluator() {
- super( ValueType.PSHORT_TYPE,
- Operator.GREATER_OR_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- if( extractor.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor.getShortValue( workingMemory, object1 ) >= object2.getShortValue();
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- if( context.rightNull ) {
- return false;
- }
- return ((LongVariableContextEntry) context).right >= context.declaration.getExtractor().getShortValue( workingMemory, left );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- if( context.extractor.isNullValue( workingMemory, right ) ) {
- return false;
- }
- return context.extractor.getShortValue( workingMemory, right ) >= ((LongVariableContextEntry) context).left;
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- if( extractor1.isNullValue( workingMemory, object1 ) ) {
- return false;
- }
- return extractor1.getShortValue( workingMemory, object1 ) >= extractor2.getShortValue( workingMemory, object2 );
- }
-
- public String toString() {
- return "Short >=";
- }
- }
-
- static class ShortMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ShortMemberOfEvaluator();
-
- private ShortMemberOfEvaluator() {
- super( ValueType.PSHORT_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "Short memberOf";
- }
- }
-
- static class ShortNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new ShortNotMemberOfEvaluator();
-
- private ShortNotMemberOfEvaluator() {
- super( ValueType.PSHORT_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "Short not memberOf";
- }
- }
-
-}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/SoundslikeEvaluatorsDefinition.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/base/evaluators/SoundslikeEvaluatorsDefinition.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/SoundslikeEvaluatorsDefinition.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/SoundslikeEvaluatorsDefinition.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,214 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.base.evaluators;
+
+import org.drools.base.BaseEvaluator;
+import org.drools.base.ValueType;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
+import org.drools.rule.VariableRestriction.VariableContextEntry;
+import org.drools.spi.Evaluator;
+import org.drools.spi.Extractor;
+import org.drools.spi.FieldValue;
+import org.mvel.Soundex;
+
+/**
+ * This class defines the soundslike evaluator
+ *
+ * @author etirelli
+ */
+public class SoundslikeEvaluatorsDefinition implements EvaluatorDefinition {
+
+ public static final Operator SOUNDSLIKE = Operator.addOperatorToRegistry( "soundslike",
+ false );
+ public static final Operator NOT_SOUNDSLIKE = Operator.addOperatorToRegistry( "soundslike",
+ true );
+
+ private static final String[] SUPPORTED_IDS = { SOUNDSLIKE.getOperatorString() };
+ private EvaluatorCache evaluators = new EvaluatorCache() {
+ private static final long serialVersionUID = 4782368623L;
+ {
+ addEvaluator( ValueType.STRING_TYPE, SOUNDSLIKE, StringSoundsLikeEvaluator.INSTANCE );
+ addEvaluator( ValueType.STRING_TYPE, NOT_SOUNDSLIKE, StringNotSoundsLikeEvaluator.INSTANCE );
+ }
+ };
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+ /**
+ * @inheridDoc
+ */
+ public Evaluator getEvaluator(ValueType type,
+ Operator operator,
+ String parameterText) {
+ return this.evaluators.getEvaluator( type,
+ operator );
+ }
+
+ public Evaluator getEvaluator(final ValueType type,
+ final String operatorId,
+ final boolean isNegated,
+ final String parameterText) {
+ return this.evaluators.getEvaluator( type,
+ Operator.determineOperator( operatorId,
+ isNegated ) );
+ }
+
+ public String[] getEvaluatorIds() {
+ return SUPPORTED_IDS;
+ }
+
+ public boolean isNegatable() {
+ return true;
+ }
+
+ public boolean operatesOnFactHandles() {
+ return false;
+ }
+
+ public boolean supportsType(ValueType type) {
+ return this.evaluators.supportsType( type );
+ }
+
+ /* *********************************************************
+ * Evaluator Implementations
+ * *********************************************************
+ */
+ static class StringSoundsLikeEvaluator extends BaseEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new StringSoundsLikeEvaluator();
+
+ private StringSoundsLikeEvaluator() {
+ super( ValueType.STRING_TYPE,
+ SOUNDSLIKE );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final String value1 = (String) extractor.getValue( workingMemory, object1 );
+ final String value2 = (String) object2.getValue();
+ if ( value1 == null ) {
+ return false;
+ }
+
+ return Soundex.soundex( value1 ).equals( Soundex.soundex(value2) );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final String value = (String) ((ObjectVariableContextEntry) context).right;
+ if ( value == null ) {
+ return false;
+ }
+ return Soundex.soundex( value ).equals( Soundex.soundex((String) context.declaration.getExtractor().getValue( workingMemory, left )) );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final String value = (String) context.extractor.getValue( workingMemory, right );
+ if ( value == null ) {
+ return false;
+ }
+ return Soundex.soundex(value).equals( Soundex.soundex((String) ((ObjectVariableContextEntry) context).left ));
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return false;
+ }
+ return Soundex.soundex( ((String) value1)).equals( Soundex.soundex( (String) value2 ));
+ }
+
+ public String toString() {
+ return "Strings sound alike";
+ }
+ }
+
+ static class StringNotSoundsLikeEvaluator extends BaseEvaluator {
+
+ private static final long serialVersionUID = 400L;
+ public final static Evaluator INSTANCE = new StringNotSoundsLikeEvaluator();
+
+ private StringNotSoundsLikeEvaluator() {
+ super( ValueType.STRING_TYPE,
+ NOT_SOUNDSLIKE );
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor,
+ final Object object1, final FieldValue object2) {
+ final String value1 = (String) extractor.getValue( workingMemory, object1 );
+ final String value2 = (String) object2.getValue();
+ if ( value1 == null ) {
+ return false;
+ }
+
+ return ! Soundex.soundex( value1 ).equals( Soundex.soundex(value2) );
+ }
+
+ public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object left) {
+ final String value = (String) ((ObjectVariableContextEntry) context).right;
+ if ( value == null ) {
+ return false;
+ }
+ return ! Soundex.soundex( value ).equals( Soundex.soundex((String) context.declaration.getExtractor().getValue( workingMemory, left )) );
+ }
+
+ public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
+ final VariableContextEntry context, final Object right) {
+ final String value = (String) context.extractor.getValue( workingMemory, right );
+ if ( value == null ) {
+ return false;
+ }
+ return ! Soundex.soundex(value).equals( Soundex.soundex((String) ((ObjectVariableContextEntry) context).left ));
+ }
+
+ public boolean evaluate(InternalWorkingMemory workingMemory,
+ final Extractor extractor1,
+ final Object object1,
+ final Extractor extractor2, final Object object2) {
+ final Object value1 = extractor1.getValue( workingMemory, object1 );
+ final Object value2 = extractor2.getValue( workingMemory, object2 );
+ if ( value1 == null ) {
+ return false;
+ }
+ return ! Soundex.soundex( ((String) value1)).equals( Soundex.soundex( (String) value2 ));
+ }
+
+ public String toString() {
+ return "Strings not sound alike";
+ }
+ }
+
+
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/StringFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/StringFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/StringFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,395 +0,0 @@
-package org.drools.base.evaluators;
-
-/*
- * 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.
- */
-
-import org.drools.base.BaseEvaluator;
-import org.drools.base.ValueType;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.VariableRestriction.ObjectVariableContextEntry;
-import org.drools.rule.VariableRestriction.VariableContextEntry;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
-import org.drools.spi.FieldValue;
-import org.mvel.Soundex;
-
-/**
- * This is the misc "bucket" evaluator factory for objects.
- * It is fairly limited in operations,
- * and what operations are available are dependent on the exact type.
- *
- * @author Michael Neale
- */
-public class StringFactory
- implements
- EvaluatorFactory {
-
- private static final long serialVersionUID = 400L;
- private static EvaluatorFactory INSTANCE = new StringFactory();
-
- private StringFactory() {
-
- }
-
- public static EvaluatorFactory getInstance() {
- if ( StringFactory.INSTANCE == null ) {
- StringFactory.INSTANCE = new StringFactory();
- }
- return StringFactory.INSTANCE;
- }
-
- public Evaluator getEvaluator(final Operator operator) {
- if ( operator == Operator.EQUAL ) {
- return StringEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_EQUAL ) {
- return StringNotEqualEvaluator.INSTANCE;
- } else if ( operator == Operator.MATCHES ) {
- return StringMatchesEvaluator.INSTANCE;
- } else if ( operator == Operator.NOT_MATCHES ) {
- return StringNotMatchesEvaluator.INSTANCE;
- } else if ( operator == Operator.MEMBEROF ) {
- return StringMemberOfEvaluator.INSTANCE;
- } else if ( operator == Operator.NOTMEMBEROF ) {
- return StringNotMemberOfEvaluator.INSTANCE;
- } else if (operator == Operator.SOUNDSLIKE ){
- return StringSoundsLikeEvaluator.INSTANCE;
- } else {
- throw new RuntimeException( "Operator '" + operator + "' does not exist for StringEvaluator" );
- }
- }
-
- static class StringEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new StringEqualEvaluator();
-
- private StringEqualEvaluator() {
- super( ValueType.STRING_TYPE,
- Operator.EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right == null;
- }
- return value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value == null;
- }
- return ((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 == null;
- }
- return value1.equals( value2 );
- }
-
- public String toString() {
- return "String ==";
- }
-
- }
-
- static class StringNotEqualEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new StringNotEqualEvaluator();
-
- private StringNotEqualEvaluator() {
- super( ValueType.STRING_TYPE,
- Operator.NOT_EQUAL );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final Object value1 = extractor.getValue( workingMemory, object1 );
- final Object value2 = object2.getValue();
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final Object value = context.declaration.getExtractor().getValue( workingMemory, left );
- if ( value == null ) {
- return ((ObjectVariableContextEntry) context).right != null;
- }
- return !value.equals( ((ObjectVariableContextEntry) context).right );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final Object value = context.extractor.getValue( workingMemory, right );
- if ( ((ObjectVariableContextEntry) context).left == null ) {
- return value != null;
- }
- return !((ObjectVariableContextEntry) context).left.equals( value );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return value2 != null;
- }
- return !value1.equals( value2 );
- }
-
- public String toString() {
- return "String !=";
- }
- }
-
- static class StringMatchesEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new StringMatchesEvaluator();
-
- private StringMatchesEvaluator() {
- super( ValueType.STRING_TYPE,
- Operator.MATCHES );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final String value1 = (String) extractor.getValue( workingMemory, object1 );
- final String value2 = (String) object2.getValue();
- if ( value1 == null ) {
- return false;
- }
- return value1.matches( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final String value = (String) ((ObjectVariableContextEntry) context).right;
- if ( value == null ) {
- return false;
- }
- return value.matches( (String) context.declaration.getExtractor().getValue( workingMemory, left ) );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final String value = (String) context.extractor.getValue( workingMemory, right );
- if ( value == null ) {
- return false;
- }
- return value.matches( (String) ((ObjectVariableContextEntry) context).left );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return false;
- }
- return ((String) value1).matches( (String) value2 );
- }
-
- public String toString() {
- return "String matches";
- }
- }
-
- static class StringNotMatchesEvaluator extends BaseEvaluator {
- /**
- *
- */
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new StringNotMatchesEvaluator();
-
- private StringNotMatchesEvaluator() {
- super( ValueType.STRING_TYPE,
- Operator.NOT_MATCHES );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final String value1 = (String) extractor.getValue( workingMemory, object1 );
- final String value2 = (String) object2.getValue();
- if ( value1 == null ) {
- return false;
- }
- return ! value1.matches( value2 );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final String value = (String) ((ObjectVariableContextEntry) context).right;
- if ( value == null ) {
- return false;
- }
- return ! value.matches( (String) context.declaration.getExtractor().getValue( workingMemory, left ) );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final String value = (String) context.extractor.getValue( workingMemory, right );
- if ( value == null ) {
- return false;
- }
- return ! value.matches( (String) ((ObjectVariableContextEntry) context).left );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return false;
- }
- return ! ((String) value1).matches( (String) value2 );
- }
-
- public String toString() {
- return "String not matches";
- }
- }
-
- static class StringMemberOfEvaluator extends BaseMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new StringMemberOfEvaluator();
-
- private StringMemberOfEvaluator() {
- super( ValueType.STRING_TYPE,
- Operator.MEMBEROF );
- }
-
- public String toString() {
- return "String memberOf";
- }
- }
-
- static class StringNotMemberOfEvaluator extends BaseNotMemberOfEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new StringNotMemberOfEvaluator();
-
- private StringNotMemberOfEvaluator() {
- super( ValueType.STRING_TYPE,
- Operator.NOTMEMBEROF );
- }
-
- public String toString() {
- return "String not memberOf";
- }
- }
-
- static class StringSoundsLikeEvaluator extends BaseEvaluator {
-
- private static final long serialVersionUID = 400L;
- public final static Evaluator INSTANCE = new StringSoundsLikeEvaluator();
-
- private StringSoundsLikeEvaluator() {
- super( ValueType.STRING_TYPE,
- Operator.SOUNDSLIKE );
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor,
- final Object object1, final FieldValue object2) {
- final String value1 = (String) extractor.getValue( workingMemory, object1 );
- final String value2 = (String) object2.getValue();
- if ( value1 == null ) {
- return false;
- }
-
- return Soundex.soundex( value1 ).equals( Soundex.soundex(value2) );
- }
-
- public boolean evaluateCachedRight(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object left) {
- final String value = (String) ((ObjectVariableContextEntry) context).right;
- if ( value == null ) {
- return false;
- }
- return Soundex.soundex( value ).equals( Soundex.soundex((String) context.declaration.getExtractor().getValue( workingMemory, left )) );
- }
-
- public boolean evaluateCachedLeft(InternalWorkingMemory workingMemory,
- final VariableContextEntry context, final Object right) {
- final String value = (String) context.extractor.getValue( workingMemory, right );
- if ( value == null ) {
- return false;
- }
- return Soundex.soundex(value).equals( Soundex.soundex((String) ((ObjectVariableContextEntry) context).left ));
- }
-
- public boolean evaluate(InternalWorkingMemory workingMemory,
- final Extractor extractor1,
- final Object object1,
- final Extractor extractor2, final Object object2) {
- final Object value1 = extractor1.getValue( workingMemory, object1 );
- final Object value2 = extractor2.getValue( workingMemory, object2 );
- if ( value1 == null ) {
- return false;
- }
- return Soundex.soundex( ((String) value1)).equals( Soundex.soundex( (String) value2 ));
- }
-
- public String toString() {
- return "Strings sound alike";
- }
- }
-
-
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELCalendarCoercion.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELCalendarCoercion.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELCalendarCoercion.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -2,7 +2,7 @@
import java.util.Calendar;
-import org.drools.base.evaluators.DateFactory;
+import org.drools.util.DateUtils;
import org.mvel.ConversionHandler;
public class MVELCalendarCoercion implements ConversionHandler {
@@ -18,7 +18,7 @@
public Object convertFrom(Object o) {
if (o instanceof String) {
Calendar cal = Calendar.getInstance();
- cal.setTime( DateFactory.parseDate( (String) o) );
+ cal.setTime( DateUtils.parseDate( (String) o) );
return cal;
} else {
return o;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELDateCoercion.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELDateCoercion.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELDateCoercion.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -2,7 +2,7 @@
import java.util.Date;
-import org.drools.base.evaluators.DateFactory;
+import org.drools.util.DateUtils;
import org.mvel.ConversionHandler;
public class MVELDateCoercion implements ConversionHandler {
@@ -17,7 +17,7 @@
public Object convertFrom(Object o) {
if (o instanceof String) {
- return DateFactory.parseDate( (String) o);
+ return DateUtils.parseDate( (String) o);
} else {
return o;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractFactHandleFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.drools.WorkingMemory;
import org.drools.spi.FactHandleFactory;
import org.drools.util.PrimitiveLongStack;
@@ -39,24 +40,32 @@
/* (non-Javadoc)
* @see org.drools.reteoo.FactHandleFactory#newFactHandle()
*/
- public final InternalFactHandle newFactHandle(final Object object) {
+ public final InternalFactHandle newFactHandle( final Object object, final boolean isEvent, final WorkingMemory workingMemory ) {
if ( !this.factHandlePool.isEmpty() ) {
return newFactHandle( this.factHandlePool.pop(),
- object );
+ object,
+ isEvent,
+ workingMemory );
}
return newFactHandle( this.id++,
- object );
+ object,
+ isEvent,
+ workingMemory );
}
/* (non-Javadoc)
* @see org.drools.reteoo.FactHandleFactory#newFactHandle(long)
*/
protected final InternalFactHandle newFactHandle(final long id,
- final Object object) {
+ final Object object,
+ final boolean isEvent,
+ final WorkingMemory workingMemory ) {
return newFactHandle( id,
object,
- this.counter++ );
+ this.counter++,
+ isEvent,
+ workingMemory );
}
/* (non-Javadoc)
@@ -64,7 +73,9 @@
*/
protected abstract InternalFactHandle newFactHandle(final long id,
final Object object,
- final long recency);
+ final long recency,
+ final boolean isEvent,
+ final WorkingMemory workingMemory );
/* (non-Javadoc)
* @see org.drools.reteoo.FactHandleFactory#increaseFactHandleRecency(org.drools.FactHandle)
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -49,6 +49,7 @@
import org.drools.objenesis.Objenesis;
import org.drools.objenesis.ObjenesisStd;
import org.drools.rule.CompositePackageClassLoader;
+import org.drools.rule.ImportDeclaration;
import org.drools.rule.InvalidPatternException;
import org.drools.rule.MapBackedClassLoader;
import org.drools.rule.Package;
@@ -156,7 +157,7 @@
this.packageClassLoader = new CompositePackageClassLoader( this.config.getClassLoader() );
this.classLoader = new MapBackedClassLoader( this.config.getClassLoader() );
this.packageClassLoader.addClassLoader( this.classLoader );
- this.pkgs = new HashMap();
+ this.pkgs = new HashMap<String, Package>();
this.processes = new HashMap();
this.globals = new HashMap();
this.statefulSessions = new ObjectHashSet();
@@ -448,7 +449,7 @@
private void mergePackage(final Package pkg,
final Package newPkg) throws PackageIntegrationException {
final Map globals = pkg.getGlobals();
- final Set imports = pkg.getImports();
+ final Map<String, ImportDeclaration> imports = pkg.getImports();
// First update the binary files
// @todo: this probably has issues if you add classes in the incorrect order - functions, rules, invokers.
@@ -461,7 +462,7 @@
}
// Merge imports
- imports.addAll( newPkg.getImports() );
+ imports.putAll( newPkg.getImports() );
// Add invokers
compilationData.putAllInvokers( newCompilationData.getInvokers() );
@@ -777,6 +778,15 @@
// since the event support is thread-safe, no need for locks... right?
return this.eventSupport.getEventListeners();
}
+
+ public boolean isEvent( Class clazz ) {
+ for( Package pkg : this.pkgs.values() ) {
+ if( pkg.isEvent( clazz ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
public static class ReloadPackageCompilationData
implements
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -53,7 +53,11 @@
import org.drools.event.RuleFlowEventSupport;
import org.drools.event.WorkingMemoryEventListener;
import org.drools.event.WorkingMemoryEventSupport;
+import org.drools.facttemplates.Fact;
+import org.drools.reteoo.ClassObjectTypeConf;
+import org.drools.reteoo.FactTemplateTypeConf;
import org.drools.reteoo.LIANodePropagation;
+import org.drools.reteoo.ObjectTypeConf;
import org.drools.rule.Declaration;
import org.drools.rule.Rule;
import org.drools.rule.TimeMachine;
@@ -70,6 +74,7 @@
import org.drools.spi.FactHandleFactory;
import org.drools.spi.GlobalResolver;
import org.drools.spi.PropagationContext;
+import org.drools.temporal.SessionClock;
import org.drools.util.JavaIteratorAdapter;
import org.drools.util.ObjectHashMap;
import org.drools.util.PrimitiveLongMap;
@@ -90,76 +95,80 @@
// ------------------------------------------------------------
// Constants
// ------------------------------------------------------------
- protected static final Class[] ADD_REMOVE_PROPERTY_CHANGE_LISTENER_ARG_TYPES = new Class[]{PropertyChangeListener.class};
+ protected static final Class[] ADD_REMOVE_PROPERTY_CHANGE_LISTENER_ARG_TYPES = new Class[]{PropertyChangeListener.class};
// ------------------------------------------------------------
// Instance members
// ------------------------------------------------------------
- protected long id;
+ protected long id;
/** The arguments used when adding/removing a property change listener. */
- protected final Object[] addRemovePropertyChangeListenerArgs = new Object[]{this};
+ protected final Object[] addRemovePropertyChangeListenerArgs = new Object[]{this};
/** The actual memory for the <code>JoinNode</code>s. */
- protected final PrimitiveLongMap nodeMemories = new PrimitiveLongMap( 32,
- 8 );
+ protected final PrimitiveLongMap nodeMemories = new PrimitiveLongMap( 32,
+ 8 );
/** Object-to-handle mapping. */
- private final ObjectHashMap assertMap;
- private final ObjectHashMap identityMap;
+ private final ObjectHashMap assertMap;
+ private final ObjectHashMap identityMap;
- protected Map queryResults = Collections.EMPTY_MAP;
+ protected Map queryResults = Collections.EMPTY_MAP;
/** Global values which are associated with this memory. */
- protected GlobalResolver globalResolver;
+ protected GlobalResolver globalResolver;
- protected static final Object NULL = new Serializable() {
- private static final long serialVersionUID = 400L;
- };
+ protected static final Object NULL = new Serializable() {
+ private static final long serialVersionUID = 400L;
+ };
/** The eventSupport */
- protected WorkingMemoryEventSupport workingMemoryEventSupport = new WorkingMemoryEventSupport();
+ protected WorkingMemoryEventSupport workingMemoryEventSupport = new WorkingMemoryEventSupport();
- protected AgendaEventSupport agendaEventSupport = new AgendaEventSupport();
+ protected AgendaEventSupport agendaEventSupport = new AgendaEventSupport();
- protected RuleFlowEventSupport ruleFlowEventSupport = new RuleFlowEventSupport();
+ protected RuleFlowEventSupport ruleFlowEventSupport = new RuleFlowEventSupport();
/** The <code>RuleBase</code> with which this memory is associated. */
- protected transient InternalRuleBase ruleBase;
+ protected transient InternalRuleBase ruleBase;
- protected final FactHandleFactory handleFactory;
+ protected final FactHandleFactory handleFactory;
- protected final TruthMaintenanceSystem tms;
+ protected final TruthMaintenanceSystem tms;
/** Rule-firing agenda. */
- protected DefaultAgenda agenda;
+ protected DefaultAgenda agenda;
- protected final List actionQueue = new ArrayList();
+ protected final List actionQueue = new ArrayList();
- protected final ReentrantLock lock = new ReentrantLock();
+ protected final ReentrantLock lock = new ReentrantLock();
- protected final boolean discardOnLogicalOverride;
+ protected final boolean discardOnLogicalOverride;
- protected long propagationIdCounter;
+ protected long propagationIdCounter;
- private final boolean maintainTms;
+ private final boolean maintainTms;
- private final boolean sequential;
+ private final boolean sequential;
- private List liaPropagations = Collections.EMPTY_LIST;
+ private List liaPropagations = Collections.EMPTY_LIST;
/** Flag to determine if a rule is currently being fired. */
- protected boolean firing;
+ protected boolean firing;
- protected boolean halt;
+ protected boolean halt;
- private Map processInstances = new HashMap();
-
+ private Map processInstances = new HashMap();
+
private int processCounter;
-
- private WorkItemManager taskInstanceManager;
- private TimeMachine timeMachine = new TimeMachine();
+ private WorkItemManager taskInstanceManager;
+ private TimeMachine timeMachine = new TimeMachine();
+
+ private Map<Object, ObjectTypeConf> typeConfMap;
+
+ private SessionClock sessionClock;
+
// ------------------------------------------------------------
// Constructors
// ------------------------------------------------------------
@@ -204,7 +213,10 @@
} else {
this.discardOnLogicalOverride = false;
}
- this.taskInstanceManager = new WorkItemManager(this);
+
+ this.taskInstanceManager = new WorkItemManager( this );
+
+ this.typeConfMap = new HashMap<Object, ObjectTypeConf>();
}
// ------------------------------------------------------------
@@ -392,7 +404,7 @@
public long getId() {
return this.id;
}
-
+
public void setId(long id) {
this.id = id;
}
@@ -716,10 +728,14 @@
return null;
}
+ ObjectTypeConf typeConf = getObjectTypeConf( object );
+
InternalFactHandle handle = null;
if ( isSequential() ) {
- handle = this.handleFactory.newFactHandle( object );
+ handle = this.handleFactory.newFactHandle( object,
+ typeConf.isEvent(),
+ this );
addHandleToMaps( handle );
insert( handle,
object,
@@ -771,7 +787,9 @@
if ( key == null ) {
// key is also null, so treat as a totally new stated/logical
// assert
- handle = this.handleFactory.newFactHandle( object );
+ handle = this.handleFactory.newFactHandle( object,
+ typeConf.isEvent(),
+ this );
addHandleToMaps( handle );
key = new EqualityKey( handle );
@@ -825,7 +843,9 @@
} else {
// override, then instantiate new handle for assertion
key.setStatus( EqualityKey.STATED );
- handle = this.handleFactory.newFactHandle( object );
+ handle = this.handleFactory.newFactHandle( object,
+ typeConf.isEvent(),
+ this );
handle.setEqualityKey( key );
key.addFactHandle( handle );
addHandleToMaps( handle );
@@ -833,7 +853,9 @@
}
} else {
- handle = this.handleFactory.newFactHandle( object );
+ handle = this.handleFactory.newFactHandle( object,
+ typeConf.isEvent(),
+ this );
addHandleToMaps( handle );
key.addFactHandle( handle );
handle.setEqualityKey( key );
@@ -860,7 +882,9 @@
if ( handle != null ) {
return handle;
}
- handle = this.handleFactory.newFactHandle( object );
+ handle = this.handleFactory.newFactHandle( object,
+ typeConf.isEvent(),
+ this );
addHandleToMaps( handle );
}
@@ -1420,35 +1444,36 @@
processInstance.setWorkingMemory( this );
processInstance.setProcess( process );
processInstance.setId( ++processCounter );
- processInstances.put(new Long(processInstance.getId()), processInstance);
- getRuleFlowEventSupport().fireBeforeRuleFlowProcessStarted(
- processInstance, this);
+ processInstances.put( new Long( processInstance.getId() ),
+ processInstance );
+ getRuleFlowEventSupport().fireBeforeRuleFlowProcessStarted( processInstance,
+ this );
processInstance.start();
- getRuleFlowEventSupport().fireAfterRuleFlowProcessStarted(
- processInstance, this);
+ getRuleFlowEventSupport().fireAfterRuleFlowProcessStarted( processInstance,
+ this );
return processInstance;
} else {
throw new IllegalArgumentException( "Unknown process type: " + process.getClass() );
}
}
-
+
public Collection getProcessInstances() {
- return Collections.unmodifiableCollection(processInstances.values());
+ return Collections.unmodifiableCollection( processInstances.values() );
}
-
+
public ProcessInstance getProcessInstance(long id) {
- return (ProcessInstance) processInstances.get(new Long(id));
+ return (ProcessInstance) processInstances.get( new Long( id ) );
}
-
+
public void removeProcessInstance(ProcessInstance processInstance) {
- processInstances.remove(processInstance);
+ processInstances.remove( processInstance );
}
-
+
public WorkItemManager getWorkItemManager() {
return taskInstanceManager;
}
-
+
public List iterateObjectsToList() {
List result = new ArrayList();
Iterator iterator = iterateObjects();
@@ -1489,16 +1514,63 @@
/**
* The time machine tells you what time it is.
*/
- public TimeMachine getTimeMachine() {
- return timeMachine;
- }
+ public TimeMachine getTimeMachine() {
+ return timeMachine;
+ }
- /**
- * The time machine defaults to returning the current time when asked. However, you can use tell it to go back in time.
- * @param timeMachine
- */
- public void setTimeMachine(TimeMachine timeMachine) {
- this.timeMachine = timeMachine;
- }
+ /**
+ * The time machine defaults to returning the current time when asked. However, you can use tell it to go back in time.
+ * @param timeMachine
+ */
+ public void setTimeMachine(TimeMachine timeMachine) {
+ this.timeMachine = timeMachine;
+ }
+ /**
+ * Returns the ObjectTypeConfiguration object for the given object
+ * or creates a new one if none is found in the cache
+ *
+ * @param object
+ * @return
+ */
+ public ObjectTypeConf getObjectTypeConf(Object object) {
+ ObjectTypeConf objectTypeConf;
+
+ if ( object instanceof Fact ) {
+ String key = ((Fact) object).getFactTemplate().getName();
+ objectTypeConf = (ObjectTypeConf) this.typeConfMap.get( key );
+ if ( objectTypeConf == null ) {
+ objectTypeConf = new FactTemplateTypeConf( ((Fact) object).getFactTemplate(),
+ this.ruleBase );
+ this.typeConfMap.put( key,
+ objectTypeConf );
+ }
+ object = key;
+ } else {
+ Class cls = null;
+ if ( object instanceof ShadowProxy ) {
+ cls = ((ShadowProxy) object).getShadowedObject().getClass();
+ } else {
+ cls = object.getClass();
+ }
+
+ objectTypeConf = (ObjectTypeConf) this.typeConfMap.get( cls );
+ if ( objectTypeConf == null ) {
+
+ final boolean isEvent = this.ruleBase.isEvent( cls );
+ objectTypeConf = new ClassObjectTypeConf( cls,
+ isEvent,
+ this.ruleBase );
+ this.typeConfMap.put( cls,
+ objectTypeConf );
+ }
+
+ }
+ return objectTypeConf;
+ }
+
+ public Map<Object, ObjectTypeConf> getObjectTypeConfMap() {
+ return this.typeConfMap;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaConstraints.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaConstraints.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -17,7 +17,7 @@
public void updateFromFactHandle(InternalWorkingMemory workingMemory,
InternalFactHandle handle);
- public boolean isAllowedCachedLeft(Object object);
+ public boolean isAllowedCachedLeft(InternalFactHandle handle);
public boolean isAllowedCachedRight(ReteTuple tuple);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -30,11 +30,9 @@
import org.drools.rule.VariableConstraint;
import org.drools.spi.BetaNodeFieldConstraint;
import org.drools.spi.Constraint;
-import org.drools.util.Entry;
-import org.drools.util.FactHashTable;
import org.drools.util.FactHandleIndexHashTable;
+import org.drools.util.FactHashTable;
import org.drools.util.FactList;
-import org.drools.util.Iterator;
import org.drools.util.LinkedList;
import org.drools.util.LinkedListEntry;
import org.drools.util.TupleHashTable;
@@ -155,14 +153,14 @@
/* (non-Javadoc)
* @see org.drools.common.BetaNodeConstraints#isAllowedCachedLeft(java.lang.Object)
*/
- public boolean isAllowedCachedLeft(final Object object) {
+ public boolean isAllowedCachedLeft(final InternalFactHandle handle) {
// skip the indexed constraints
LinkedListEntry entry = (LinkedListEntry) findNode( this.indexed );
ContextEntry context = findContext( this.indexed );
while ( entry != null ) {
if ( !((BetaNodeFieldConstraint) entry.getObject()).isAllowedCachedLeft( context,
- object ) ) {
+ handle ) ) {
return false;
}
entry = (LinkedListEntry) entry.getNext();
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -52,10 +52,9 @@
public DefaultFactHandle(final long id,
final Object object) {
- this.id = id;
- this.recency = id;
- this.object = object;
- this.objectHashCode = object.hashCode();
+ this( id,
+ object,
+ id );
}
/**
@@ -107,7 +106,7 @@
* @see FactHandle
*/
public String toExternalForm() {
- return "[fid:" + this.id + ":" + this.recency + ":" + this.object + "]";
+ return "[fact fid:" + this.id + ":" + this.recency + ":" + this.object + "]";
}
/**
@@ -163,4 +162,12 @@
public void setEqualityKey(final EqualityKey key) {
this.key = key;
}
+
+ /**
+ * Always returns false, since the DefaultFactHandle is
+ * only used for regular Facts, and not for Events
+ */
+ public boolean isEvent() {
+ return false;
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -29,8 +29,8 @@
import org.drools.rule.ContextEntry;
import org.drools.rule.VariableConstraint;
import org.drools.spi.BetaNodeFieldConstraint;
+import org.drools.util.FactHandleIndexHashTable;
import org.drools.util.FactHashTable;
-import org.drools.util.FactHandleIndexHashTable;
import org.drools.util.FactList;
import org.drools.util.LinkedList;
import org.drools.util.LinkedListEntry;
@@ -67,7 +67,7 @@
public DoubleBetaConstraints(final BetaNodeFieldConstraint[] constraints,
final RuleBaseConfiguration conf,
final boolean disableIndexing) {
- if ( disableIndexing || ( !conf.isIndexLeftBetaMemory() && !conf.isIndexRightBetaMemory() ) ) {
+ if ( disableIndexing || (!conf.isIndexLeftBetaMemory() && !conf.isIndexRightBetaMemory()) ) {
this.indexed0 = false;
this.indexed1 = false;
} else {
@@ -115,7 +115,7 @@
} else {
return false;
}
- }
+ }
/* (non-Javadoc)
* @see org.drools.common.BetaNodeConstraints#updateFromTuple(org.drools.reteoo.ReteTuple)
@@ -142,10 +142,10 @@
/* (non-Javadoc)
* @see org.drools.common.BetaNodeConstraints#isAllowedCachedLeft(java.lang.Object)
*/
- public boolean isAllowedCachedLeft(final Object object) {
+ public boolean isAllowedCachedLeft(final InternalFactHandle handle) {
return (this.indexed0 || this.constraint0.isAllowedCachedLeft( this.context0,
- object )) && (this.indexed1 || this.constraint1.isAllowedCachedLeft( this.context1,
- object ));
+ handle )) && (this.indexed1 || this.constraint1.isAllowedCachedLeft( this.context1,
+ handle ));
}
/* (non-Javadoc)
@@ -160,7 +160,7 @@
public boolean isIndexed() {
return this.indexed0;
}
-
+
public int getIndexCount() {
int count = 0;
if ( this.indexed0 ) {
@@ -168,9 +168,9 @@
}
if ( this.indexed1 ) {
count++;
- }
- return count;
- }
+ }
+ return count;
+ }
public boolean isEmpty() {
return false;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -63,7 +63,7 @@
/* (non-Javadoc)
* @see org.drools.common.BetaNodeConstraints#isAllowedCachedLeft(java.lang.Object)
*/
- public boolean isAllowedCachedLeft(final Object object) {
+ public boolean isAllowedCachedLeft(final InternalFactHandle handle) {
return true;
}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EventFactHandle.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/common/EventFactHandle.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EventFactHandle.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EventFactHandle.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,117 @@
+package org.drools.common;
+
+import org.drools.FactHandle;
+
+public class EventFactHandle extends DefaultFactHandle {
+
+ private static final long serialVersionUID = 5997141759543399455L;
+
+ private final long startTimestamp;
+ private final long duration;
+
+ // ----------------------------------------------------------------------
+ // Constructors
+ // ----------------------------------------------------------------------
+
+ public EventFactHandle() {
+ super();
+ this.startTimestamp = 0;
+ this.duration = 0;
+ }
+
+ public EventFactHandle(final long id,
+ final Object object) {
+ super( id,
+ object );
+ this.startTimestamp = 0;
+ this.duration = 0;
+ }
+
+ /**
+ * Construct.
+ *
+ * @param id
+ * Handle id.
+ */
+ public EventFactHandle(final long id,
+ final Object object,
+ final long recency) {
+ super( id,
+ object,
+ recency );
+ this.startTimestamp = 0;
+ this.duration = 0;
+ }
+
+ /**
+ * Creates a new event fact handle.
+ *
+ * @param id this event fact handle ID
+ * @param object the event object encapsulated in this event fact handle
+ * @param recency the recency of this event fact handle
+ * @param timestamp the timestamp of the occurence of this event
+ * @param duration the duration of this event. May be 0 (zero) in case this is a primitive event.
+ */
+ public EventFactHandle( final long id,
+ final Object object,
+ final long recency,
+ final long timestamp,
+ final long duration ) {
+ super( id,
+ object,
+ recency );
+ this.startTimestamp = timestamp;
+ this.duration = duration;
+ }
+
+ /**
+ * @see FactHandle
+ */
+ public String toExternalForm() {
+ return "[event fid:" + getId() + ":" + getRecency() + ":" + getObject() + "]";
+ }
+
+ /**
+ * @see Object
+ */
+ public String toString() {
+ return toExternalForm();
+ }
+
+ /**
+ * Always returns true, since the EventFactHandle is
+ * only used for Events, and not for regular Facts
+ */
+ public boolean isEvent() {
+ return true;
+ }
+
+ /**
+ * Returns the timestamp of the occurrence of this event.
+ * @return
+ */
+ public long getStartTimestamp() {
+ return startTimestamp;
+ }
+
+ /**
+ * Returns the duration of this event. In case this is a primitive event,
+ * returns 0 (zero).
+ *
+ * @return
+ */
+ public long getDuration() {
+ return duration;
+ }
+
+ /**
+ * Returns the end timestamp for this event. This is the same as:
+ *
+ * startTimestamp + duration
+ *
+ * @return
+ */
+ public long getEndTimestamp() {
+ return this.startTimestamp + this.duration;
+ }
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -62,8 +62,8 @@
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
- return ((InstanceEqualsConstraintContextEntry) context).left == object;
+ final InternalFactHandle handle) {
+ return ((InstanceEqualsConstraintContextEntry) context).left == handle.getObject();
}
public boolean isAllowedCachedRight(final ReteTuple tuple,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -58,8 +58,8 @@
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
- return ((InstanceNotEqualsConstraintContextEntry) context).left != object;
+ final InternalFactHandle handle) {
+ return ((InstanceNotEqualsConstraintContextEntry) context).left != handle.getObject();
}
public boolean isAllowedCachedRight(final ReteTuple tuple,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalFactHandle.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalFactHandle.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalFactHandle.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -42,4 +42,13 @@
public boolean isShadowFact();
public void setShadowFact(boolean shadowFact);
+
+ /**
+ * Returns true if this FactHandle represents
+ * and Event or false if this FactHandle represents
+ * a regular Fact
+ *
+ * @return
+ */
+ public boolean isEvent();
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -104,6 +104,14 @@
public InternalWorkingMemory[] getWorkingMemories();
public Process getProcess(String id);
+
+ /**
+ * Returns true if clazz represents an Event class. False otherwise.
+ *
+ * @param clazz
+ * @return
+ */
+ public boolean isEvent( Class clazz );
public Objenesis getObjenesis();
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalWorkingMemory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,5 +1,6 @@
package org.drools.common;
+import java.util.Map;
import java.util.concurrent.locks.Lock;
import org.drools.FactException;
@@ -9,6 +10,7 @@
import org.drools.event.RuleFlowEventSupport;
import org.drools.event.WorkingMemoryEventSupport;
import org.drools.reteoo.LIANodePropagation;
+import org.drools.reteoo.ObjectTypeConf;
import org.drools.rule.Rule;
import org.drools.rule.TimeMachine;
import org.drools.ruleflow.common.instance.ProcessInstance;
@@ -71,4 +73,21 @@
public void setTimeMachine(TimeMachine tm);
public void removeProcessInstance(ProcessInstance processInstance);
+
+ /**
+ * Returns the ObjectTypeConfiguration object for the given object
+ * or creates a new one if none is found in the cache
+ *
+ * @param object
+ * @return
+ */
+ public ObjectTypeConf getObjectTypeConf(Object object);
+
+ /**
+ * Returns the Map<Object key, ObjectTypeConf conf> of object type
+ * confs in this working memory
+ *
+ * @return
+ */
+ public Map<Object, ObjectTypeConf> getObjectTypeConfMap();
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -29,8 +29,8 @@
import org.drools.rule.ContextEntry;
import org.drools.rule.VariableConstraint;
import org.drools.spi.BetaNodeFieldConstraint;
+import org.drools.util.FactHandleIndexHashTable;
import org.drools.util.FactHashTable;
-import org.drools.util.FactHandleIndexHashTable;
import org.drools.util.FactList;
import org.drools.util.LinkedList;
import org.drools.util.LinkedListEntry;
@@ -203,18 +203,18 @@
/* (non-Javadoc)
* @see org.drools.common.BetaNodeConstraints#isAllowedCachedLeft(java.lang.Object)
*/
- public boolean isAllowedCachedLeft(final Object object) {
+ public boolean isAllowedCachedLeft(final InternalFactHandle handle) {
// return ( this.indexed0 || this.constraint0.isAllowedCachedLeft( context0,
// object ) ) && this.constraint1.isAllowedCachedLeft( context1,
// object ) && this.constraint2.isAllowedCachedLeft( context2,
// object );
return (this.indexed0 || this.constraint0.isAllowedCachedLeft( this.context0,
- object )) && (this.indexed1 || this.constraint1.isAllowedCachedLeft( this.context1,
- object )) && (this.indexed2 || this.constraint2.isAllowedCachedLeft( this.context2,
- object ))
+ handle )) && (this.indexed1 || this.constraint1.isAllowedCachedLeft( this.context1,
+ handle )) && (this.indexed2 || this.constraint2.isAllowedCachedLeft( this.context2,
+ handle ))
&& (this.indexed3 || this.constraint3.isAllowedCachedLeft( this.context3,
- object ));
+ handle ));
}
/* (non-Javadoc)
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -113,9 +113,9 @@
/* (non-Javadoc)
* @see org.drools.common.BetaNodeConstraints#isAllowedCachedLeft(java.lang.Object)
*/
- public boolean isAllowedCachedLeft(final Object object) {
+ public boolean isAllowedCachedLeft(final InternalFactHandle handle) {
return this.indexed || this.constraint.isAllowedCachedLeft( this.context,
- object );
+ handle );
}
/* (non-Javadoc)
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -169,16 +169,16 @@
/* (non-Javadoc)
* @see org.drools.common.BetaNodeConstraints#isAllowedCachedLeft(java.lang.Object)
*/
- public boolean isAllowedCachedLeft(final Object object) {
+ public boolean isAllowedCachedLeft(final InternalFactHandle handle) {
// return ( this.indexed0 || this.constraint0.isAllowedCachedLeft( context0,
// object ) ) && this.constraint1.isAllowedCachedLeft( context1,
// object ) && this.constraint2.isAllowedCachedLeft( context2,
// object );
return (this.indexed0 || this.constraint0.isAllowedCachedLeft( this.context0,
- object )) && (this.indexed1 || this.constraint1.isAllowedCachedLeft( this.context1,
- object )) && (this.indexed2 || this.constraint2.isAllowedCachedLeft( this.context2,
- object ));
+ handle )) && (this.indexed1 || this.constraint1.isAllowedCachedLeft( this.context1,
+ handle )) && (this.indexed2 || this.constraint2.isAllowedCachedLeft( this.context2,
+ handle ));
}
/* (non-Javadoc)
@@ -194,7 +194,7 @@
public boolean isIndexed() {
return this.indexed0;
}
-
+
public int getIndexCount() {
int count = 0;
if ( this.indexed0 ) {
@@ -205,9 +205,9 @@
}
if ( this.indexed2 ) {
count++;
- }
- return count;
- }
+ }
+ return count;
+ }
public boolean isEmpty() {
return false;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TupleStartEqualsConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TupleStartEqualsConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TupleStartEqualsConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -74,9 +74,9 @@
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
// object MUST be a ReteTuple
- final ReteTuple tuple = ((ReteTuple) object).getSubTuple( ((TupleStartEqualsConstraintContextEntry) context).compareSize );
+ final ReteTuple tuple = ((ReteTuple) handle.getObject()).getSubTuple( ((TupleStartEqualsConstraintContextEntry) context).compareSize );
return ((TupleStartEqualsConstraintContextEntry) context).left.equals( tuple );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,7 +16,6 @@
* limitations under the License.
*/
-import org.drools.base.ClassObjectType;
import org.drools.base.ValueType;
import org.drools.spi.ObjectType;
@@ -42,11 +41,13 @@
/** FieldTemplate. */
protected FactTemplate factTemplate;
+ private boolean isEvent;
+
// ------------------------------------------------------------
// Constructors
// ------------------------------------------------------------
- /**
+ /**
* Construct.
*
* @param objectTypeClass
@@ -90,27 +91,35 @@
return false;
}
}
-
+
public boolean isAssignableFrom(Object object) {
return this.factTemplate.equals( object );
- }
-
+ }
+
public boolean isAssignableFrom(ObjectType objectType) {
- if ( ! ( objectType instanceof FactTemplateObjectType ) ) {
+ if ( !(objectType instanceof FactTemplateObjectType) ) {
return false;
} else {
- return this.factTemplate.equals( ((FactTemplateObjectType) objectType).getFactTemplate() );
+ return this.factTemplate.equals( ((FactTemplateObjectType) objectType).getFactTemplate() );
}
- }
+ }
public ValueType getValueType() {
return ValueType.FACTTEMPLATE_TYPE;
}
-
- public String toString() {
- return "[ClassObjectType class=" + this.factTemplate.getName() + "]";
+
+ public boolean isEvent() {
+ return isEvent;
}
+ public void setEvent(boolean isEvent) {
+ this.isEvent = isEvent;
+ }
+
+ public String toString() {
+ return "[FactTemplateObjectType "+( this.isEvent ? "event=" : "template=") + this.factTemplate.getName() + "]";
+ }
+
/**
* Determine if another object is equal to this.
*
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -119,7 +119,7 @@
for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
+ if ( this.constraints.isAllowedCachedLeft( handle ) ) {
if ( this.unwrapRightObject ) {
// if there is a subnetwork, handle must be unwrapped
ReteTuple tuple = (ReteTuple) handle.getObject();
@@ -150,8 +150,10 @@
// First alpha node filters
boolean isAllowed = true;
+ final InternalFactHandle handle = workingMemory.getFactHandleFactory().newFactHandle( result, false, workingMemory ); // so far, result is not an event
+
for ( int i = 0, length = this.resultConstraints.length; i < length; i++ ) {
- if ( !this.resultConstraints[i].isAllowed( result,
+ if ( !this.resultConstraints[i].isAllowed( handle,
workingMemory ) ) {
isAllowed = false;
break;
@@ -160,15 +162,18 @@
if ( isAllowed ) {
this.resultBinder.updateFromTuple( workingMemory,
leftTuple );
- if ( this.resultBinder.isAllowedCachedLeft( result ) ) {
- final InternalFactHandle handle = workingMemory.getFactHandleFactory().newFactHandle( result );
+ if ( this.resultBinder.isAllowedCachedLeft( handle ) ) {
accresult.handle = handle;
this.sink.propagateAssertTuple( leftTuple,
handle,
context,
workingMemory );
+ } else {
+ workingMemory.getFactHandleFactory().destroyFactHandle( handle );
}
+ } else {
+ workingMemory.getFactHandleFactory().destroyFactHandle( handle );
}
}
@@ -368,8 +373,9 @@
// First alpha node filters
boolean isAllowed = true;
+ final InternalFactHandle createdHandle = workingMemory.getFactHandleFactory().newFactHandle( result, false, workingMemory ); // so far, result is not an event
for ( int i = 0, length = this.resultConstraints.length; i < length; i++ ) {
- if ( !this.resultConstraints[i].isAllowed( result,
+ if ( !this.resultConstraints[i].isAllowed( createdHandle,
workingMemory ) ) {
isAllowed = false;
break;
@@ -378,15 +384,18 @@
if ( isAllowed ) {
this.resultBinder.updateFromTuple( workingMemory,
leftTuple );
- if ( this.resultBinder.isAllowedCachedLeft( result ) ) {
- final InternalFactHandle createdHandle = workingMemory.getFactHandleFactory().newFactHandle( result );
+ if ( this.resultBinder.isAllowedCachedLeft( createdHandle ) ) {
accresult.handle = createdHandle;
this.sink.propagateAssertTuple( leftTuple,
createdHandle,
context,
workingMemory );
+ } else {
+ workingMemory.getFactHandleFactory().destroyFactHandle( createdHandle );
}
+ } else {
+ workingMemory.getFactHandleFactory().destroyFactHandle( createdHandle );
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -129,7 +129,7 @@
public void assertObject(final InternalFactHandle handle,
final PropagationContext context,
final InternalWorkingMemory workingMemory) throws FactException {
- if ( this.constraint.isAllowed( handle.getObject(),
+ if ( this.constraint.isAllowed( handle,
workingMemory ) ) {
if ( isObjectMemoryEnabled() ) {
final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( this );
@@ -151,7 +151,7 @@
final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( this );
propagate = memory.remove( handle );
} else {
- propagate = this.constraint.isAllowed( handle.getObject(),
+ propagate = this.constraint.isAllowed( handle,
workingMemory );
}
if ( propagate ) {
@@ -311,7 +311,7 @@
public void assertObject(final InternalFactHandle handle,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- if ( this.constraint.isAllowed( handle.getObject(),
+ if ( this.constraint.isAllowed( handle,
workingMemory ) ) {
this.sink.assertObject( handle,
context,
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ClassObjectTypeConf.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,298 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Nov 26, 2007
+ */
+package org.drools.reteoo;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.FactException;
+import org.drools.RuntimeDroolsException;
+import org.drools.base.ClassObjectType;
+import org.drools.base.DroolsQuery;
+import org.drools.base.ShadowProxy;
+import org.drools.base.ShadowProxyFactory;
+import org.drools.common.DroolsObjectInputStream;
+import org.drools.common.InternalRuleBase;
+import org.drools.objenesis.Objenesis;
+import org.drools.objenesis.ObjenesisStd;
+import org.drools.objenesis.instantiator.ObjectInstantiator;
+import org.drools.reteoo.builder.BuildContext;
+import org.drools.reteoo.builder.PatternBuilder;
+import org.drools.spi.ObjectType;
+import org.drools.util.Iterator;
+import org.drools.util.ObjectHashMap.ObjectEntry;
+
+public class ClassObjectTypeConf
+ implements
+ ObjectTypeConf,
+ Serializable {
+ // Objenesis instance without cache (false)
+ private static final Objenesis OBJENESIS = new ObjenesisStd( false );
+
+ private final Class cls;
+ private transient InternalRuleBase ruleBase;
+ private ObjectTypeNode[] objectTypeNodes;
+
+ protected boolean shadowEnabled;
+ protected Class shadowClass;
+ protected transient ObjectInstantiator instantiator;
+
+ private ObjectTypeNode concreteObjectTypeNode;
+
+ public ClassObjectTypeConf(final Class clazz, final boolean isEvent,
+ final InternalRuleBase ruleBase) {
+ this.cls = clazz;
+ this.ruleBase = ruleBase;
+
+ ObjectType objectType = new ClassObjectType( clazz, isEvent );
+ this.concreteObjectTypeNode = (ObjectTypeNode) ruleBase.getRete().getObjectTypeNodes().get( objectType );
+ if ( this.concreteObjectTypeNode == null ) {
+ BuildContext context = new BuildContext( ruleBase,
+ ((ReteooRuleBase) ruleBase.getRete().getRuleBase()).getReteooBuilder().getIdGenerator() );
+ if ( DroolsQuery.class == clazz ) {
+ context.setTupleMemoryEnabled( false );
+ context.setObjectTypeNodeMemoryEnabled( false );
+ context.setTerminalNodeMemoryEnabled( false );
+ } else if ( context.getRuleBase().getConfiguration().isSequential() ) {
+ // We are in sequential mode, so no nodes should have memory
+ context.setTupleMemoryEnabled( false );
+ context.setObjectTypeNodeMemoryEnabled( false );
+ context.setTerminalNodeMemoryEnabled( false );
+ } else {
+ context.setTupleMemoryEnabled( true );
+ context.setObjectTypeNodeMemoryEnabled( true );
+ context.setTerminalNodeMemoryEnabled( true );
+ }
+ // there must exist an ObjectTypeNode for this concrete class
+ this.concreteObjectTypeNode = PatternBuilder.attachObjectTypeNode( context,
+ objectType );
+ }
+
+ defineShadowProxyData( clazz );
+ }
+
+ public boolean isAssignableFrom(Object object) {
+ return this.cls.isAssignableFrom( (Class) object );
+ }
+
+ public ObjectTypeNode getConcreteObjectTypeNode() {
+ return this.concreteObjectTypeNode;
+ }
+
+ 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;
+ }
+
+ //String pkgName = (pkg != null) ? pkg.getName() : "";
+ String pkgName = getPackageName( clazz,
+ clazz.getPackage() );
+ 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();
+ }
+ }
+
+ /**
+ * This will return the package name - if the package is null, it will
+ * work it out from the class name (this is in cases where funky classloading is used).
+ */
+ public static String getPackageName(Class clazz,
+ Package pkg) {
+ String pkgName = "";
+ if ( pkg == null ) {
+ int index = clazz.getName().lastIndexOf( '.' );
+ if ( index != -1 ) pkgName = clazz.getName().substring( 0,
+ index );
+ } else {
+ pkgName = pkg.getName();
+ }
+ return pkgName;
+
+ }
+
+ private Class loadOrGenerateProxy(Class clazz,
+ Rete rete) {
+ Class shadowClass = null;
+ 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( 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 '" + clazz + "'" );
+ }
+ }
+
+ }
+ return shadowClass;
+ }
+
+ 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].getSinkPropagator().size() == 0 || nodes[i].isAssignableFrom( 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].getSinkPropagator().size() == 0 || nodes[j].isAssignableFrom( 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,
+ ClassNotFoundException {
+ stream.defaultReadObject();
+ this.ruleBase = ((DroolsObjectInputStream) stream).getRuleBase();
+ }
+
+ /**
+ *
+ */
+ private void setInstantiator() {
+ this.instantiator = OBJENESIS.getInstantiatorOf( this.shadowClass );
+ }
+
+ public Object getShadow(final Object fact) throws RuntimeDroolsException {
+ ShadowProxy proxy = null;
+ if ( isShadowEnabled() ) {
+ try {
+ 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} );
+ } catch ( Exception e ) {
+ // not possible to instantiate using constructor
+ }
+ }
+ if ( proxy == null ) {
+ if ( this.instantiator == null ) {
+ this.setInstantiator();
+ }
+ proxy = (ShadowProxy) this.instantiator.newInstance();
+ }
+ proxy.setShadowedObject( fact );
+ } catch ( final Exception e ) {
+ throw new RuntimeDroolsException( "Error creating shadow fact for object: " + fact,
+ e );
+ }
+ }
+ return proxy;
+ }
+
+ public boolean isShadowEnabled() {
+ return this.shadowEnabled;
+ }
+
+ public void resetCache() {
+ this.objectTypeNodes = null;
+ defineShadowProxyData( cls );
+ }
+
+ public ObjectTypeNode[] getObjectTypeNodes() {
+ if ( this.objectTypeNodes == null ) {
+ this.objectTypeNodes = getMatchingObjectTypes( this.cls );
+ }
+ 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.isAssignableFrom( clazz ) ) {
+ cache.add( node );
+ }
+ }
+
+ return (ObjectTypeNode[]) cache.toArray( new ObjectTypeNode[cache.size()] );
+ }
+
+ public boolean isActive() {
+ return getConcreteObjectTypeNode().getSinkPropagator().getSinks().length > 0;
+ }
+
+ public boolean isEvent() {
+ return this.concreteObjectTypeNode.getObjectType().isEvent();
+ }
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -20,7 +20,6 @@
import java.util.Collection;
import org.drools.common.BetaConstraints;
-import org.drools.common.EmptyBetaConstraints;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.builder.BuildContext;
@@ -107,7 +106,7 @@
final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
final Collection result = this.collect.instantiateResultObject();
- final InternalFactHandle resultHandle = workingMemory.getFactHandleFactory().newFactHandle( result );
+ final InternalFactHandle resultHandle = workingMemory.getFactHandleFactory().newFactHandle( result, false, workingMemory );
CollectResult colresult = new CollectResult();
colresult.handle = resultHandle;
colresult.propagated = false;
@@ -127,7 +126,7 @@
for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
+ if ( this.constraints.isAllowedCachedLeft( handle ) ) {
if( this.unwrapRightObject ) {
handle = ((ReteTuple) handle.getObject()).getLastHandle();
}
@@ -138,7 +137,7 @@
// First alpha node filters
boolean isAllowed = true;
for ( int i = 0, length = this.resultConstraints.length; i < length; i++ ) {
- if ( !this.resultConstraints[i].isAllowed( result,
+ if ( !this.resultConstraints[i].isAllowed( resultHandle,
workingMemory ) ) {
isAllowed = false;
break;
@@ -147,7 +146,7 @@
if ( isAllowed ) {
this.resultsBinder.updateFromTuple( workingMemory,
leftTuple );
- if ( this.resultsBinder.isAllowedCachedLeft( result ) ) {
+ if ( this.resultsBinder.isAllowedCachedLeft( resultHandle ) ) {
colresult.propagated = true;
this.sink.propagateAssertTuple( leftTuple,
resultHandle,
@@ -301,7 +300,7 @@
// First alpha node filters
boolean isAllowed = true;
for ( int i = 0, length = this.resultConstraints.length; i < length; i++ ) {
- if ( !this.resultConstraints[i].isAllowed( result.handle.getObject(),
+ if ( !this.resultConstraints[i].isAllowed( result.handle,
workingMemory ) ) {
isAllowed = false;
break;
@@ -310,7 +309,7 @@
if ( isAllowed ) {
this.resultsBinder.updateFromTuple( workingMemory,
leftTuple );
- if ( this.resultsBinder.isAllowedCachedLeft( result.handle.getObject() ) ) {
+ if ( this.resultsBinder.isAllowedCachedLeft( result.handle ) ) {
result.propagated = true;
this.sink.propagateAssertTuple( leftTuple,
result.handle,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -17,7 +17,6 @@
package org.drools.reteoo;
import org.drools.common.BetaConstraints;
-import org.drools.common.EmptyBetaConstraints;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.builder.BuildContext;
@@ -101,7 +100,7 @@
leftTuple );
for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
final InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
+ if ( this.constraints.isAllowedCachedLeft( handle ) ) {
leftTuple.setMatch( handle );
break;
}
@@ -185,7 +184,7 @@
for ( FactEntry entry = (FactEntry) tupleIt.next(); entry != null; entry = (FactEntry) tupleIt.next() ) {
final InternalFactHandle rightHandle = entry.getFactHandle();
- if ( this.constraints.isAllowedCachedLeft( rightHandle.getObject() ) ) {
+ if ( this.constraints.isAllowedCachedLeft( rightHandle ) ) {
tuple.setMatch( rightHandle );
break;
}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FactTemplateTypeConf.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/FactTemplateTypeConf.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FactTemplateTypeConf.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FactTemplateTypeConf.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Nov 26, 2007
+ */
+package org.drools.reteoo;
+
+import java.io.Serializable;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.common.InternalRuleBase;
+import org.drools.facttemplates.FactTemplate;
+import org.drools.facttemplates.FactTemplateObjectType;
+import org.drools.reteoo.builder.BuildContext;
+import org.drools.reteoo.builder.PatternBuilder;
+import org.drools.spi.ObjectType;
+
+public class FactTemplateTypeConf
+ implements
+ ObjectTypeConf,
+ Serializable {
+ private InternalRuleBase ruleBase;
+ private FactTemplate factTemplate;
+ private ObjectTypeNode concreteObjectTypeNode;
+ private ObjectTypeNode[] cache;
+
+ public FactTemplateTypeConf(FactTemplate factTemplate,
+ InternalRuleBase ruleBase) {
+ this.ruleBase = ruleBase;
+ this.factTemplate = factTemplate;
+ ObjectType objectType = new FactTemplateObjectType( factTemplate );
+ this.concreteObjectTypeNode = (ObjectTypeNode) ruleBase.getRete().getObjectTypeNodes().get( objectType );
+ if ( this.concreteObjectTypeNode == null ) {
+ BuildContext context = new BuildContext( ruleBase,
+ ((ReteooRuleBase) ruleBase.getRete().getRuleBase()).getReteooBuilder().getIdGenerator() );
+ if ( context.getRuleBase().getConfiguration().isSequential() ) {
+ // We are in sequential mode, so no nodes should have memory
+ context.setTupleMemoryEnabled( false );
+ context.setObjectTypeNodeMemoryEnabled( false );
+ context.setTerminalNodeMemoryEnabled( false );
+ } else {
+ context.setTupleMemoryEnabled( true );
+ context.setObjectTypeNodeMemoryEnabled( true );
+ context.setTerminalNodeMemoryEnabled( true );
+ }
+ // there must exist an ObjectTypeNode for this concrete class
+ this.concreteObjectTypeNode = PatternBuilder.attachObjectTypeNode( context,
+ objectType );
+ }
+ this.cache = new ObjectTypeNode[]{this.concreteObjectTypeNode};
+ }
+
+ public ObjectTypeNode getConcreteObjectTypeNode() {
+ return this.concreteObjectTypeNode;
+ }
+
+ public ObjectTypeNode[] getObjectTypeNodes() {
+ if ( this.cache == null ) {
+ this.cache = new ObjectTypeNode[]{this.concreteObjectTypeNode};
+ }
+ return this.cache;
+ }
+
+ public Object getShadow(Object fact) throws RuntimeDroolsException {
+ return null;
+ }
+
+ public boolean isShadowEnabled() {
+ return false;
+ }
+
+ public boolean isAssignableFrom(Object object) {
+ return this.factTemplate.equals( object );
+ }
+
+ public void resetCache() {
+ this.cache = null;
+ }
+
+ public boolean isActive() {
+ return true;
+ }
+
+ public boolean isEvent() {
+ return false;
+ }
+
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -66,31 +66,30 @@
context ); it.hasNext(); ) {
final Object object = it.next();
+ final InternalFactHandle handle = workingMemory.getFactHandleFactory().newFactHandle( object, false, workingMemory );
+
+ boolean isAllowed = true;
if ( this.alphaConstraints != null ) {
// First alpha node filters
- boolean isAllowed = true;
for ( int i = 0, length = this.alphaConstraints.length; i < length; i++ ) {
- if ( !this.alphaConstraints[i].isAllowed( object,
+ if ( !this.alphaConstraints[i].isAllowed( handle,
workingMemory ) ) {
// next iteration
isAllowed = false;
break;
}
}
- if ( !isAllowed ) {
- continue;
- }
}
- if ( this.betaConstraints.isAllowedCachedLeft( object ) ) {
- final InternalFactHandle handle = workingMemory.getFactHandleFactory().newFactHandle( object );
-
+ if ( isAllowed && this.betaConstraints.isAllowedCachedLeft( handle ) ) {
list.add( new LinkedListEntry( handle ) );
this.sink.propagateAssertTuple( leftTuple,
handle,
context,
workingMemory );
+ } else {
+ workingMemory.getFactHandleFactory().destroyFactHandle( handle );
}
}
if ( !list.isEmpty() ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -103,7 +103,7 @@
leftTuple );
for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
final InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
+ if ( this.constraints.isAllowedCachedLeft( handle ) ) {
this.sink.propagateAssertTuple( leftTuple,
handle,
context,
@@ -212,7 +212,7 @@
leftTuple );
for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
final InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
+ if ( this.constraints.isAllowedCachedLeft( handle ) ) {
this.sink.propagateRetractTuple( leftTuple,
handle,
context,
@@ -237,7 +237,7 @@
tuple );
for ( FactEntry entry = (FactEntry) objectIter.next(); entry != null; entry = (FactEntry) objectIter.next() ) {
final InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
+ if ( this.constraints.isAllowedCachedLeft( handle ) ) {
sink.assertTuple( new ReteTuple( tuple,
handle ),
context,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -99,7 +99,7 @@
for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
final InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
+ if ( this.constraints.isAllowedCachedLeft( handle ) ) {
leftTuple.setMatch( handle );
break;
}
@@ -185,7 +185,7 @@
for ( FactEntry entry = (FactEntry) tupleIt.next(); entry != null; entry = (FactEntry) tupleIt.next() ) {
final InternalFactHandle rightHandle = entry.getFactHandle();
- if ( this.constraints.isAllowedCachedLeft( rightHandle.getObject() ) ) {
+ if ( this.constraints.isAllowedCachedLeft( rightHandle ) ) {
tuple.setMatch( rightHandle );
break;
}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeConf.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ObjectTypeConf.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeConf.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeConf.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Nov 26, 2007
+ */
+package org.drools.reteoo;
+
+import org.drools.RuntimeDroolsException;
+
+public interface ObjectTypeConf {
+ public ObjectTypeNode[] getObjectTypeNodes();
+
+ public boolean isShadowEnabled();
+
+ public Object getShadow(final Object fact) throws RuntimeDroolsException;
+
+ public ObjectTypeNode getConcreteObjectTypeNode();
+
+ public void resetCache();
+
+ public boolean isAssignableFrom(Object object);
+
+ public boolean isActive();
+
+ public boolean isEvent();
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -19,37 +19,20 @@
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import org.drools.FactException;
-import org.drools.RuleBaseConfiguration;
-import org.drools.RuntimeDroolsException;
-import org.drools.base.ClassObjectType;
-import org.drools.base.DroolsQuery;
import org.drools.base.ShadowProxy;
-import org.drools.base.ShadowProxyFactory;
import org.drools.common.BaseNode;
import org.drools.common.DroolsObjectInputStream;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalRuleBase;
import org.drools.common.InternalWorkingMemory;
import org.drools.common.NodeMemory;
-import org.drools.facttemplates.Fact;
-import org.drools.facttemplates.FactTemplate;
-import org.drools.facttemplates.FactTemplateObjectType;
-import org.drools.objenesis.instantiator.ObjectInstantiator;
-import org.drools.reteoo.builder.BuildContext;
-import org.drools.reteoo.builder.PatternBuilder;
import org.drools.spi.ObjectType;
import org.drools.spi.PropagationContext;
import org.drools.util.FactEntry;
import org.drools.util.FactHashTable;
import org.drools.util.Iterator;
import org.drools.util.ObjectHashMap;
-import org.drools.util.ObjectHashMap.ObjectEntry;
/**
* The Rete-OO network.
@@ -73,8 +56,7 @@
public class Rete extends ObjectSource
implements
Serializable,
- ObjectSink,
- NodeMemory {
+ ObjectSink {
// ------------------------------------------------------------
// Instance members
// ------------------------------------------------------------
@@ -123,53 +105,22 @@
public void assertObject(final InternalFactHandle handle,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- final ObjectHashMap memory = (ObjectHashMap) workingMemory.getNodeMemory( this );
- Object object = handle.getObject();
+ ObjectTypeConf objectTypeConf = workingMemory.getObjectTypeConf( handle.getObject() );
- ObjectTypeConf ojectTypeConf;
- if ( object instanceof Fact ) {
- String key = ((Fact) object).getFactTemplate().getName();
- ojectTypeConf = (ObjectTypeConf) memory.get( key );
- if ( ojectTypeConf == null ) {
- ojectTypeConf = new FactTemplateTypeConf( ((Fact) object).getFactTemplate(),
- this.ruleBase );
- memory.put( key,
- ojectTypeConf,
- false );
- }
- object = key;
- } else {
- Class cls = null;
- if ( object instanceof ShadowProxy ) {
- cls = ((ShadowProxy) object).getShadowedObject().getClass();
+ // checks if shadow is enabled
+ if ( objectTypeConf.isShadowEnabled() ) {
+ // need to improve this
+ if ( !(handle.getObject() instanceof ShadowProxy) ) {
+ // replaces the actual object by its shadow before propagating
+ handle.setObject( objectTypeConf.getShadow( handle.getObject() ) );
+ handle.setShadowFact( true );
} else {
- cls = object.getClass();
+ ((ShadowProxy) handle.getObject()).updateProxy();
}
-
- ojectTypeConf = (ObjectTypeConf) memory.get( cls );
- if ( ojectTypeConf == null ) {
- ojectTypeConf = new ClassObjectTypeConf( cls,
- this.ruleBase );
- memory.put( cls,
- ojectTypeConf,
- false );
- }
-
- // checks if shadow is enabled
- if ( ojectTypeConf.isShadowEnabled() ) {
- // need to improve this
- if ( !(handle.getObject() instanceof ShadowProxy) ) {
- // replaces the actual object by its shadow before propagating
- handle.setObject( ojectTypeConf.getShadow( handle.getObject() ) );
- handle.setShadowFact( true );
- } else {
- ((ShadowProxy) handle.getObject()).updateProxy();
- }
- }
}
- ObjectTypeNode[] cachedNodes = ojectTypeConf.getObjectTypeNodes();
+ ObjectTypeNode[] cachedNodes = objectTypeConf.getObjectTypeNodes();
for ( int i = 0, length = cachedNodes.length; i < length; i++ ) {
cachedNodes[i].assertObject( handle,
@@ -190,17 +141,9 @@
public void retractObject(final InternalFactHandle handle,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- final ObjectHashMap memory = (ObjectHashMap) workingMemory.getNodeMemory( this );
-
final Object object = handle.getObject();
- ObjectTypeConf objectTypeConf;
- if ( object instanceof ShadowProxy ) {
- objectTypeConf = (ObjectTypeConf) memory.get( ((ShadowProxy) object).getShadowedObject().getClass() );
- } else {
- objectTypeConf = (ObjectTypeConf) memory.get( object.getClass() );
- }
-
+ ObjectTypeConf objectTypeConf = workingMemory.getObjectTypeConf( object );
ObjectTypeNode[] cachedNodes = objectTypeConf.getObjectTypeNodes();
if ( cachedNodes == null ) {
@@ -257,10 +200,6 @@
return this.objectTypeNodes;
}
- public Object createMemory(final RuleBaseConfiguration config) {
- return new ObjectHashMap();
- }
-
public InternalRuleBase getRuleBase() {
return this.ruleBase;
}
@@ -286,14 +225,10 @@
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
// JBRULES-612: the cache MUST be invalidated when a new node type is added to the network, so iterate and reset all caches.
- final ObjectHashMap memory = (ObjectHashMap) workingMemory.getNodeMemory( this );
- Iterator it = memory.iterator();
final ObjectTypeNode node = (ObjectTypeNode) sink;
+ final ObjectType newObjectType = node.getObjectType();
- ObjectType newObjectType = node.getObjectType();
-
- for ( ObjectEntry entry = (ObjectEntry) it.next(); entry != null; entry = (ObjectEntry) it.next() ) {
- ObjectTypeConf objectTypeConf = (ObjectTypeConf) entry.getValue();
+ for ( ObjectTypeConf objectTypeConf : workingMemory.getObjectTypeConfMap().values() ) {
if ( newObjectType.isAssignableFrom( objectTypeConf.getConcreteObjectTypeNode().getObjectType() ) ) {
objectTypeConf.resetCache();
ObjectTypeNode sourceNode = objectTypeConf.getConcreteObjectTypeNode();
@@ -306,20 +241,6 @@
}
}
}
-
- // ObjectType
- // this.c
-
- // final ObjectTypeNode node = (ObjectTypeNode) sink;
- // it = workingMemory.getFactHandleMap().iterator();
- // for ( ObjectEntry entry = (ObjectEntry) it.next(); entry != null; entry = (ObjectEntry) it.next() ) {
- // final InternalFactHandle handle = (InternalFactHandle) entry.getValue();
- // if ( node.matches( handle.getObject() ) ) {
- // node.assertObject( handle,
- // context,
- // workingMemory );
- // }
- // }
}
public boolean isObjectMemoryEnabled() {
@@ -328,339 +249,6 @@
public void setObjectMemoryEnabled(boolean objectMemoryEnabled) {
throw new UnsupportedOperationException("ORete has no Object memory");
- }
-
- public static interface ObjectTypeConf {
- public ObjectTypeNode[] getObjectTypeNodes();
-
- public boolean isShadowEnabled();
-
- public Object getShadow(final Object fact) throws RuntimeDroolsException;
-
- public ObjectTypeNode getConcreteObjectTypeNode();
-
- public void resetCache();
-
- public boolean isAssignableFrom(Object object);
-
- public boolean isActive();
}
- public static class FactTemplateTypeConf
- implements
- ObjectTypeConf,
- Serializable {
- private InternalRuleBase ruleBase;
- private FactTemplate factTemplate;
- private ObjectTypeNode concreteObjectTypeNode;
- private ObjectTypeNode[] cache;
-
- public FactTemplateTypeConf(FactTemplate factTemplate,
- InternalRuleBase ruleBase) {
- this.ruleBase = ruleBase;
- this.factTemplate = factTemplate;
- ObjectType objectType = new FactTemplateObjectType( factTemplate );
- this.concreteObjectTypeNode = (ObjectTypeNode) ruleBase.getRete().getObjectTypeNodes().get( objectType );
- if ( this.concreteObjectTypeNode == null ) {
- BuildContext context = new BuildContext( ruleBase,
- ((ReteooRuleBase) ruleBase.getRete().getRuleBase()).getReteooBuilder().getIdGenerator() );
- if ( context.getRuleBase().getConfiguration().isSequential() ) {
- // We are in sequential mode, so no nodes should have memory
- context.setTupleMemoryEnabled( false );
- context.setObjectTypeNodeMemoryEnabled( false );
- context.setTerminalNodeMemoryEnabled( false );
- } else {
- context.setTupleMemoryEnabled( true );
- context.setObjectTypeNodeMemoryEnabled( true );
- context.setTerminalNodeMemoryEnabled( true );
- }
- // there must exist an ObjectTypeNode for this concrete class
- this.concreteObjectTypeNode = PatternBuilder.attachObjectTypeNode( context,
- objectType );
- }
- this.cache = new ObjectTypeNode[]{this.concreteObjectTypeNode};
- }
-
- public ObjectTypeNode getConcreteObjectTypeNode() {
- return this.concreteObjectTypeNode;
- }
-
- public ObjectTypeNode[] getObjectTypeNodes() {
- if ( this.cache == null ) {
- this.cache = new ObjectTypeNode[]{this.concreteObjectTypeNode};
- }
- return this.cache;
- }
-
- public Object getShadow(Object fact) throws RuntimeDroolsException {
- return null;
- }
-
- public boolean isShadowEnabled() {
- return false;
- }
-
- public boolean isAssignableFrom(Object object) {
- return this.factTemplate.equals( object );
- }
-
- public void resetCache() {
- this.cache = null;
- }
-
- public boolean isActive() {
- return true;
- }
-
- }
-
- public static class ClassObjectTypeConf
- implements
- ObjectTypeConf,
- Serializable {
-
- private final Class cls;
- private transient InternalRuleBase ruleBase;
- private ObjectTypeNode[] objectTypeNodes;
-
- protected boolean shadowEnabled;
- protected Class shadowClass;
- protected transient ObjectInstantiator instantiator;
-
- private ObjectTypeNode concreteObjectTypeNode;
-
- public ClassObjectTypeConf(Class clazz,
- InternalRuleBase ruleBase) {
- this.cls = clazz;
- this.ruleBase = ruleBase;
-
- ObjectType objectType = new ClassObjectType( clazz );
- this.concreteObjectTypeNode = (ObjectTypeNode) ruleBase.getRete().getObjectTypeNodes().get( objectType );
- if ( this.concreteObjectTypeNode == null ) {
- BuildContext context = new BuildContext( ruleBase,
- ((ReteooRuleBase) ruleBase.getRete().getRuleBase()).getReteooBuilder().getIdGenerator() );
- if ( DroolsQuery.class == clazz ) {
- context.setTupleMemoryEnabled( false );
- context.setObjectTypeNodeMemoryEnabled( false );
- context.setTerminalNodeMemoryEnabled( false );
- } else if ( context.getRuleBase().getConfiguration().isSequential() ) {
- // We are in sequential mode, so no nodes should have memory
- context.setTupleMemoryEnabled( false );
- context.setObjectTypeNodeMemoryEnabled( false );
- context.setTerminalNodeMemoryEnabled( false );
- } else {
- context.setTupleMemoryEnabled( true );
- context.setObjectTypeNodeMemoryEnabled( true );
- context.setTerminalNodeMemoryEnabled( true );
- }
- // there must exist an ObjectTypeNode for this concrete class
- this.concreteObjectTypeNode = PatternBuilder.attachObjectTypeNode( context,
- objectType );
- }
-
- defineShadowProxyData( clazz );
- }
-
- public boolean isAssignableFrom(Object object) {
- return this.cls.isAssignableFrom( (Class) object );
- }
-
- public ObjectTypeNode getConcreteObjectTypeNode() {
- return this.concreteObjectTypeNode;
- }
-
- 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;
- }
-
- //String pkgName = (pkg != null) ? pkg.getName() : "";
- String pkgName = getPackageName( clazz,
- clazz.getPackage() );
- 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();
- }
- }
-
- /**
- * This will return the package name - if the package is null, it will
- * work it out from the class name (this is in cases where funky classloading is used).
- */
- public static String getPackageName(Class clazz,
- Package pkg) {
- String pkgName = "";
- if ( pkg == null ) {
- int index = clazz.getName().lastIndexOf( '.' );
- if ( index != -1 ) pkgName = clazz.getName().substring( 0,
- index );
- } else {
- pkgName = pkg.getName();
- }
- return pkgName;
-
- }
-
- private Class loadOrGenerateProxy(Class clazz,
- Rete rete) {
- Class shadowClass = null;
- 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( 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 '" + clazz + "'" );
- }
- }
-
- }
- return shadowClass;
- }
-
- 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].getSinkPropagator().size() == 0 || nodes[i].isAssignableFrom( 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].getSinkPropagator().size() == 0 || nodes[j].isAssignableFrom( 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,
- ClassNotFoundException {
- stream.defaultReadObject();
- this.ruleBase = ((DroolsObjectInputStream) stream).getRuleBase();
- }
-
- /**
- *
- */
- private void setInstantiator() {
- this.instantiator = ruleBase.getObjenesis().getInstantiatorOf(this.shadowClass);
- }
-
- public Object getShadow(final Object fact) throws RuntimeDroolsException {
- ShadowProxy proxy = null;
- if ( isShadowEnabled() ) {
- try {
- 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} );
- } catch ( Exception e ) {
- // not possible to instantiate using constructor
- }
- }
- if ( proxy == null ) {
- if ( this.instantiator == null ) {
- this.setInstantiator();
- }
- proxy = (ShadowProxy) this.instantiator.newInstance();
- }
- proxy.setShadowedObject( fact );
- } catch ( final Exception e ) {
- throw new RuntimeDroolsException( "Error creating shadow fact for object: " + fact,
- e );
- }
- }
- return proxy;
- }
-
- public boolean isShadowEnabled() {
- return this.shadowEnabled;
- }
-
- public void resetCache() {
- this.objectTypeNodes = null;
- defineShadowProxyData( cls );
- }
-
- public ObjectTypeNode[] getObjectTypeNodes() {
- if ( this.objectTypeNodes == null ) {
- this.objectTypeNodes = getMatchingObjectTypes( this.cls );
- }
- 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.isAssignableFrom( clazz ) ) {
- cache.add( node );
- }
- }
-
- return (ObjectTypeNode[]) cache.toArray( new ObjectTypeNode[cache.size()] );
- }
-
- public boolean isActive() {
- return getConcreteObjectTypeNode().getSinkPropagator().getSinks().length > 0;
- }
- }
-
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooFactHandleFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,10 +16,14 @@
* limitations under the License.
*/
+import org.drools.TemporalSession;
+import org.drools.WorkingMemory;
import org.drools.common.AbstractFactHandleFactory;
import org.drools.common.DefaultFactHandle;
+import org.drools.common.EventFactHandle;
import org.drools.common.InternalFactHandle;
import org.drools.spi.FactHandleFactory;
+import org.drools.temporal.SessionClock;
public class ReteooFactHandleFactory extends AbstractFactHandleFactory {
@@ -30,10 +34,21 @@
*/
protected final InternalFactHandle newFactHandle(final long id,
final Object object,
- final long recency) {
- return new DefaultFactHandle( id,
- object,
- recency );
+ final long recency,
+ final boolean isEvent,
+ final WorkingMemory workingMemory ) {
+ if ( isEvent ) {
+ SessionClock clock = ((TemporalSession) workingMemory).getSessionClock();
+ return new EventFactHandle( id,
+ object,
+ recency,
+ clock.getCurrentTime(),
+ 0 ); // primitive events have 0 duration
+ } else {
+ return new DefaultFactHandle( id,
+ object,
+ recency );
+ }
}
/* (non-Javadoc)
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -22,12 +22,14 @@
import java.io.Serializable;
import java.util.Iterator;
+import org.drools.ClockType;
import org.drools.FactException;
import org.drools.FactHandle;
import org.drools.RuleBase;
import org.drools.RuleBaseConfiguration;
import org.drools.StatefulSession;
import org.drools.StatelessSession;
+import org.drools.TemporalSession;
import org.drools.common.AbstractRuleBase;
import org.drools.common.DefaultFactHandle;
import org.drools.common.InternalFactHandle;
@@ -37,8 +39,8 @@
import org.drools.event.RuleBaseEventListener;
import org.drools.reteoo.ReteooWorkingMemory.WorkingMemoryReteAssertAction;
import org.drools.rule.InvalidPatternException;
+import org.drools.rule.Package;
import org.drools.rule.Rule;
-import org.drools.rule.Package;
import org.drools.spi.ExecutorServiceFactory;
import org.drools.spi.FactHandleFactory;
import org.drools.spi.PropagationContext;
@@ -218,10 +220,22 @@
workingMemory );
}
+ public synchronized StatefulSession newStatefulSession( final boolean keepReference ) {
+ return newStatefulSession( keepReference, null );
+ }
+
+ public synchronized TemporalSession newTemporalSession( final ClockType clockType ) {
+ return (TemporalSession) newStatefulSession( true, clockType);
+ }
+
+ public synchronized TemporalSession newTemporalSession( final boolean keepReference, final ClockType clockType ) {
+ return (TemporalSession) newStatefulSession( keepReference, clockType );
+ }
+
/**
* @see RuleBase
*/
- public synchronized StatefulSession newStatefulSession(final boolean keepReference) {
+ private StatefulSession newStatefulSession( final boolean keepReference, final ClockType clockType ) {
if ( this.config.isSequential() ) {
throw new RuntimeException( "Cannot have a stateful rule session, with sequential configuration set to true" );
}
@@ -229,9 +243,16 @@
synchronized ( this.pkgs ) {
ExecutorService executor = ExecutorServiceFactory.createExecutorService( this.config.getExecutorService() );;
- session = new ReteooStatefulSession( nextWorkingMemoryCounter(),
- this,
- executor );
+ if( clockType == null ) {
+ session = new ReteooStatefulSession( nextWorkingMemoryCounter(),
+ this,
+ executor );
+ } else {
+ session = new ReteooTemporalSession( nextWorkingMemoryCounter(),
+ this,
+ executor,
+ clockType.createInstance() );
+ }
executor.setCommandExecutor( new CommandExecutor( session ) );
@@ -242,7 +263,7 @@
}
}
- final InitialFactHandle handle = new InitialFactHandle( session.getFactHandleFactory().newFactHandle( new InitialFactHandleDummyObject() ) );
+ final InitialFactHandle handle = new InitialFactHandle( session.getFactHandleFactory().newFactHandle( new InitialFactHandleDummyObject(), false, session ) );
session.queueWorkingMemoryAction( new WorkingMemoryReteAssertAction( handle,
false,
@@ -280,4 +301,5 @@
Serializable {
private static final long serialVersionUID = 400L;
}
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatelessSession.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatelessSession.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooStatelessSession.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -60,7 +60,7 @@
wm.setAgendaEventSupport( this.agendaEventSupport );
wm.setRuleFlowEventSupport( ruleFlowEventSupport );
- final InitialFactHandle handle = new InitialFactHandle( wm.getFactHandleFactory().newFactHandle( new InitialFactHandleDummyObject() ) );
+ final InitialFactHandle handle = new InitialFactHandle( wm.getFactHandleFactory().newFactHandle( new InitialFactHandleDummyObject(), false, wm ) );
wm.queueWorkingMemoryAction( new WorkingMemoryReteAssertAction( handle,
false,
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooTemporalSession.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/reteoo/ReteooTemporalSession.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooTemporalSession.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooTemporalSession.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Nov 28, 2007
+ */
+package org.drools.reteoo;
+
+import org.drools.TemporalSession;
+import org.drools.common.InternalRuleBase;
+import org.drools.concurrent.ExecutorService;
+import org.drools.temporal.SessionClock;
+
+/**
+ * ReteooStatefulTemporalSession implements a temporal enabled session
+ * for Reteoo rulebases
+ *
+ * @author etirelli
+ */
+public class ReteooTemporalSession<T extends SessionClock> extends ReteooStatefulSession
+ implements
+ TemporalSession<T> {
+
+ private static final long serialVersionUID = -2129661675928809928L;
+
+ private T sessionClock;
+
+ public ReteooTemporalSession(int id,
+ InternalRuleBase ruleBase,
+ ExecutorService executorService,
+ T clock) {
+ super( id,
+ ruleBase,
+ executorService );
+ this.sessionClock = clock;
+ }
+
+ public T getSessionClock() {
+ return this.sessionClock;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -87,7 +87,7 @@
public QueryResults getQueryResults(final String query, final Object[] arguments) {
Object object = new DroolsQuery( query, arguments );
- InternalFactHandle handle = this.handleFactory.newFactHandle( object );
+ InternalFactHandle handle = this.handleFactory.newFactHandle( object, false, this );
insert( handle,
object,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -92,7 +92,7 @@
final InternalWorkingMemory workingMemory) {
// creating a dummy fact handle to wrap the tuple
- final InternalFactHandle handle = workingMemory.getFactHandleFactory().newFactHandle( tuple );
+ final InternalFactHandle handle = workingMemory.getFactHandleFactory().newFactHandle( tuple, false, workingMemory );
if ( this.tupleMemoryEnabled ) {
final ObjectHashMap memory = (ObjectHashMap) workingMemory.getNodeMemory( this );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,5 +1,6 @@
package org.drools.rule;
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.spi.Extractor;
@@ -14,11 +15,11 @@
}
public boolean isAllowed(final Extractor extractor,
- final Object object,
+ final InternalFactHandle handle,
final InternalWorkingMemory workingMemory) {
for ( int i = 0, ilength = this.restrictions.length; i < ilength; i++ ) {
if ( !this.restrictions[i].isAllowed( extractor,
- object,
+ handle,
workingMemory ) ) {
return false;
}
@@ -27,10 +28,10 @@
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
for ( int i = 0, ilength = this.restrictions.length; i < ilength; i++ ) {
if ( !this.restrictions[i].isAllowedCachedLeft( this.contextEntry.contextEntries[i],
- object ) ) {
+ handle ) ) {
return false;
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -19,6 +19,7 @@
import java.util.Arrays;
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.spi.AlphaNodeFieldConstraint;
@@ -40,11 +41,11 @@
/**
* {@inheritDoc}
*/
- public boolean isAllowed(Object object,
+ public boolean isAllowed(InternalFactHandle handle,
InternalWorkingMemory workingMemory) {
if ( this.alphaConstraints.length > 0 ) {
for ( int i = 0; i < this.alphaConstraints.length; i++ ) {
- if ( !this.alphaConstraints[i].isAllowed( object,
+ if ( !this.alphaConstraints[i].isAllowed( handle,
workingMemory ) ) {
return false;
}
@@ -57,11 +58,11 @@
* {@inheritDoc}
*/
public boolean isAllowedCachedLeft(ContextEntry context,
- Object object) {
+ InternalFactHandle handle) {
if ( this.betaConstraints.length > 0 ) {
for ( int i = 0; i < this.betaConstraints.length; i++ ) {
if ( !this.betaConstraints[i].isAllowedCachedLeft( ((MultiFieldConstraintContextEntry)context).contexts[i],
- object ) ) {
+ handle ) ) {
return false;
}
}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ImportDeclaration.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,130 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Nov 7, 2007
+ */
+package org.drools.rule;
+
+import java.io.Serializable;
+
+/**
+ * A class to represent an import declaration. That declaration
+ * may have additional metadata associated to it, like a flag
+ * stating if the imported class is an event or not
+ *
+ * @author etirelli
+ */
+public class ImportDeclaration implements Serializable {
+
+ private static final long serialVersionUID = 6410032114027977766L;
+
+ private String target;
+ private boolean isEvent;
+
+ /**
+ * Creates an empty import declaration
+ */
+ public ImportDeclaration() {
+ this( null, false );
+ }
+
+ /**
+ * Creates an import declaration for the given target.
+ *
+ * @param target
+ */
+ public ImportDeclaration( String target ) {
+ this( target, false );
+ }
+
+ /**
+ * Creates an import declaration for the given target.
+ *
+ * @param target the import target
+ * @param isEvent true if the target is an event-type target, false otherwise.
+ */
+ public ImportDeclaration(String target,
+ boolean isEvent) {
+ super();
+ this.target = target;
+ this.isEvent = isEvent;
+ }
+
+ public boolean isEvent() {
+ return isEvent;
+ }
+
+ public void setEvent(boolean isEvent) {
+ this.isEvent = isEvent;
+ }
+
+ public String getTarget() {
+ return target;
+ }
+
+ public void setTarget(String target) {
+ this.target = target;
+ }
+
+ public int hashCode() {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + (isEvent ? 1231 : 1237);
+ result = PRIME * result + ((target == null) ? 0 : target.hashCode());
+ return result;
+ }
+
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( getClass() != obj.getClass() ) return false;
+ final ImportDeclaration other = (ImportDeclaration) obj;
+ if ( isEvent != other.isEvent ) return false;
+ if ( target == null ) {
+ if ( other.target != null ) return false;
+ } else if ( !target.equals( other.target ) ) return false;
+ return true;
+ }
+
+ /**
+ * Returns true if this ImportDeclaration correctly matches to
+ * the given clazz
+ *
+ * @param name
+ * @return
+ */
+ public boolean matches( Class clazz ) {
+ // fully qualified import?
+ if( this.target.equals( clazz.getName() ) ) {
+ return true;
+ }
+
+ // wild card imports
+ if( this.target.endsWith( ".*" ) ) {
+ String prefix = this.target.substring( 0, this.target.indexOf( ".*" ) );
+
+ // package import: import my.package.*
+ if( prefix.equals( clazz.getPackage().getName() ) ) {
+ return true;
+ }
+
+ // inner class imports with wild card?
+ // by looking at the ClassTypeResolver class, it seems we do not support
+ // the usage of wild cards when importing static inner classes like the
+ // java static imports allow
+ }
+ return false;
+ }
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.Evaluator;
@@ -77,10 +78,10 @@
newDecl );
}
- public boolean isAllowed(final Object object,
+ public boolean isAllowed(final InternalFactHandle handle,
final InternalWorkingMemory workingMemory) {
return this.restriction.isAllowed( this.extractor,
- object,
+ handle,
workingMemory );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -56,19 +56,19 @@
}
public boolean isAllowed(final Extractor extractor,
- final Object object,
+ final InternalFactHandle handle,
final InternalWorkingMemory workingMemoiry) {
return this.evaluator.evaluate( null,
extractor,
- object,
+ handle.getObject(),
this.field );
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
return this.evaluator.evaluate( null,
((LiteralContextEntry) context).getFieldExtractor(),
- object,
+ handle.getObject(),
this.field );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,5 +1,6 @@
package org.drools.rule;
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.spi.AlphaNodeFieldConstraint;
@@ -65,10 +66,10 @@
return this.extractor.equals( other.extractor ) && this.restrictions.equals( other.restrictions );
}
- public boolean isAllowed(final Object object,
+ public boolean isAllowed(final InternalFactHandle handle,
final InternalWorkingMemory workingMemory) {
return this.restrictions.isAllowed( this.extractor,
- object,
+ handle,
workingMemory );
}
@@ -77,9 +78,9 @@
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
return this.restrictions.isAllowedCachedLeft( context,
- object );
+ handle );
}
public boolean isAllowedCachedRight(final ReteTuple tuple,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,5 +1,6 @@
package org.drools.rule;
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.spi.Extractor;
@@ -14,11 +15,11 @@
}
public boolean isAllowed(final Extractor extractor,
- final Object object,
+ final InternalFactHandle handle,
final InternalWorkingMemory workingMemory) {
for ( int i = 0, ilength = this.restrictions.length; i < ilength; i++ ) {
if ( this.restrictions[i].isAllowed( extractor,
- object,
+ handle,
workingMemory ) ) {
return true;
}
@@ -27,10 +28,10 @@
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
for ( int i = 0, ilength = this.restrictions.length; i < ilength; i++ ) {
if ( this.restrictions[i].isAllowedCachedLeft( this.contextEntry.contextEntries[i],
- object ) ) {
+ handle ) ) {
return true;
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -18,6 +18,7 @@
import java.util.Arrays;
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.spi.AlphaNodeFieldConstraint;
@@ -42,11 +43,11 @@
/**
* {@inheritDoc}
*/
- public boolean isAllowed(Object object,
+ public boolean isAllowed(InternalFactHandle handle,
InternalWorkingMemory workingMemory) {
if ( this.alphaConstraints.length > 0 ) {
for ( int i = 0; i < this.alphaConstraints.length; i++ ) {
- if ( this.alphaConstraints[i].isAllowed( object,
+ if ( this.alphaConstraints[i].isAllowed( handle,
workingMemory ) ) {
return true;
}
@@ -60,11 +61,11 @@
* {@inheritDoc}
*/
public boolean isAllowedCachedLeft(ContextEntry context,
- Object object) {
+ InternalFactHandle handle) {
if ( this.betaConstraints.length > 0 ) {
for ( int i = 0; i < this.betaConstraints.length; i++ ) {
if ( this.betaConstraints[i].isAllowedCachedLeft( ((MultiFieldConstraintContextEntry)context).contexts[i],
- object ) ) {
+ handle ) ) {
return true;
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Package.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -57,37 +57,37 @@
/**
*
*/
- private static final long serialVersionUID = 400L;
+ private static final long serialVersionUID = 400L;
// ------------------------------------------------------------
// Instance members
// ------------------------------------------------------------
/** Name of the pkg. */
- private String name;
+ private String name;
/** Set of all rule-names in this <code>Package</code>. */
- private Map rules;
+ private Map rules;
- private Set imports;
+ private Map<String, ImportDeclaration> imports;
- private List functions;
+ private List functions;
- private Set staticImports;
+ private Set staticImports;
- private Map globals;
+ private Map globals;
- private Map factTemplates;
+ private Map factTemplates;
- private Map ruleFlows;
+ private Map ruleFlows;
- private PackageCompilationData packageCompilationData;
+ private PackageCompilationData packageCompilationData;
/** This is to indicate the the package has no errors during the compilation/building phase */
- private boolean valid = true;
+ private boolean valid = true;
/** This will keep a summary error message as to why this package is not valid */
- private String errorSummary;
+ private String errorSummary;
// ------------------------------------------------------------
// Constructors
@@ -121,7 +121,7 @@
public Package(final String name,
ClassLoader parentClassLoader) {
this.name = name;
- this.imports = new HashSet();
+ this.imports = new HashMap<String, ImportDeclaration>();
this.staticImports = Collections.EMPTY_SET;
this.rules = new LinkedHashMap();
this.ruleFlows = Collections.EMPTY_MAP;
@@ -150,12 +150,11 @@
stream.writeObject( this.imports );
stream.writeObject( this.staticImports );
stream.writeObject( this.functions );
- stream.writeObject( this.factTemplates );
+ stream.writeObject( this.factTemplates );
stream.writeObject( this.ruleFlows );
stream.writeObject( this.globals );
stream.writeBoolean( this.valid );
-
// Rules must be restored by an ObjectInputStream that can resolve using a given ClassLoader to handle seaprately by storing as
// a byte[]
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
@@ -175,11 +174,11 @@
// PackageCompilationData must be restored before Rules as it has the ClassLoader needed to resolve the generated code references in Rules
this.packageCompilationData = (PackageCompilationData) stream.readObject();
this.name = (String) stream.readObject();
- this.imports = (Set) stream.readObject();
+ this.imports = (Map<String, ImportDeclaration>) stream.readObject();
this.staticImports = (Set) stream.readObject();
this.functions = (List) stream.readObject();
this.factTemplates = (Map) stream.readObject();
- this.ruleFlows = (Map) stream.readObject();
+ this.ruleFlows = (Map) stream.readObject();
this.globals = (Map) stream.readObject();
this.valid = stream.readBoolean();
@@ -189,7 +188,6 @@
// Use a custom ObjectInputStream that can resolve against a given classLoader
final DroolsObjectInputStream streamWithLoader = new DroolsObjectInputStream( new ByteArrayInputStream( bytes ),
this.packageCompilationData.getClassLoader() );
-
this.rules = (Map) streamWithLoader.readObject();
}
@@ -207,15 +205,15 @@
return this.name;
}
- public void addImport(final String importEntry) {
- this.imports.add( importEntry );
+ public void addImport(final ImportDeclaration importDecl) {
+ this.imports.put( importDecl.getTarget(), importDecl );
}
public void removeImport(final String importEntry) {
this.imports.remove( importEntry );
}
- public Set getImports() {
+ public Map<String, ImportDeclaration> getImports() {
return this.imports;
}
@@ -264,7 +262,7 @@
}
public PackageCompilationData removeFunction(final String functionName) {
- if ( !this.functions.remove( functionName )) {
+ if ( !this.functions.remove( functionName ) ) {
return null;
}
this.packageCompilationData.remove( this.name + "." + StringUtils.ucFirst( functionName ) );
@@ -449,15 +447,44 @@
public int hashCode() {
return this.name.hashCode();
}
+
+ /**
+ * Returns true if clazz is imported as an Event class in this package
+ * @param clazz
+ * @return
+ */
+ public boolean isEvent( Class clazz ) {
+ if( clazz == null ) {
+ return false;
+ }
+ // check if clazz is resolved by any of the import declarations
+ for( ImportDeclaration imp : this.imports.values() ) {
+ if( imp.isEvent() && imp.matches( clazz ) ) {
+ return true;
+ }
+ }
+ // if it is not resolved, try superclass
+ if( this.isEvent( clazz.getSuperclass() ) ) {
+ return true;
+ }
+
+ // if it is no resolved, try interfaces
+ for( Class interf : clazz.getInterfaces() ) {
+ if( this.isEvent( interf ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
public void clear() {
this.rules.clear();
this.packageCompilationData.clear();
- this.ruleFlows.clear();
+ this.ruleFlows.clear();
this.imports.clear();
this.functions.clear();
this.staticImports.clear();
this.globals.clear();
- this.factTemplates.clear();
+ this.factTemplates.clear();
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -214,10 +214,10 @@
return new PredicateContextEntry();
}
- public boolean isAllowed(final Object object,
+ public boolean isAllowed(final InternalFactHandle handle,
final InternalWorkingMemory workingMemory) {
try {
- return this.expression.evaluate( object,
+ return this.expression.evaluate( handle.getObject(),
null,
this.previousDeclarations,
this.localDeclarations,
@@ -229,16 +229,16 @@
}
public boolean isAllowed(Extractor extractor,
- Object object,
+ InternalFactHandle handle,
InternalWorkingMemory workingMemory) {
throw new UnsupportedOperationException("Method not supported. Please contact development team.");
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
try {
final PredicateContextEntry ctx = (PredicateContextEntry) context;
- return this.expression.evaluate( object,
+ return this.expression.evaluate( handle.getObject(),
ctx.leftTuple,
this.previousDeclarations,
this.localDeclarations,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -17,6 +17,7 @@
*/
import org.drools.RuntimeDroolsException;
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.ReturnValueRestriction.ReturnValueContextEntry;
@@ -97,11 +98,11 @@
return this.restriction.getContextEntry();
}
- public boolean isAllowed(final Object object,
+ public boolean isAllowed(final InternalFactHandle handle,
final InternalWorkingMemory workingMemory) {
try {
return this.restriction.isAllowed( this.fieldExtractor,
- object,
+ handle,
null,
workingMemory );
} catch ( final Exception e ) {
@@ -111,11 +112,11 @@
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
try {
final ReturnValueContextEntry ctx = (ReturnValueContextEntry) context;
return this.restriction.isAllowed( this.fieldExtractor,
- object,
+ handle,
ctx.getTuple(),
ctx.getWorkingMemory() );
} catch ( final Exception e ) {
@@ -129,7 +130,7 @@
try {
final ReturnValueContextEntry ctx = (ReturnValueContextEntry) context;
return this.restriction.isAllowed( this.fieldExtractor,
- ctx.getObject(),
+ ctx.getHandle(),
tuple,
ctx.getWorkingMemory() );
} catch ( final Exception e ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -159,13 +159,13 @@
}
public boolean isAllowed(final Extractor extractor,
- final Object object,
+ final InternalFactHandle handle,
final Tuple tuple,
final WorkingMemory workingMemory) {
try {
return this.evaluator.evaluate( null,
extractor,
- object, this.expression.evaluate( object,
+ handle.getObject(), this.expression.evaluate( handle.getObject(),
tuple,
this.previousDeclarations,
this.localDeclarations,
@@ -176,13 +176,13 @@
}
public boolean isAllowed(final Extractor extractor,
- final Object object,
+ final InternalFactHandle handle,
final InternalWorkingMemory workingMemoiry) {
throw new UnsupportedOperationException( "does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)" );
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
throw new UnsupportedOperationException( "does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)" );
}
@@ -284,7 +284,7 @@
private static final long serialVersionUID = 400L;
public FieldExtractor fieldExtractor;
- public Object object;
+ public InternalFactHandle handle;
public ReteTuple leftTuple;
public InternalWorkingMemory workingMemory;
public Declaration[] previousDeclarations;
@@ -311,7 +311,7 @@
public void updateFromFactHandle(final InternalWorkingMemory workingMemory,
final InternalFactHandle handle) {
this.workingMemory = workingMemory;
- this.object = handle.getObject();
+ this.handle = handle;
}
public void updateFromTuple(final InternalWorkingMemory workingMemory,
@@ -337,8 +337,8 @@
/* (non-Javadoc)
* @see org.drools.rule.ReturnValueContextEntry#getObject()
*/
- public Object getObject() {
- return this.object;
+ public InternalFactHandle getHandle() {
+ return this.handle;
}
/* (non-Javadoc)
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.spi.AlphaNodeFieldConstraint;
@@ -66,17 +67,17 @@
return this.restriction.getEvaluator();
}
- public boolean isAllowed(final Object object,
+ public boolean isAllowed(final InternalFactHandle handle,
final InternalWorkingMemory workingMemory) {
return this.restriction.isAllowed( this.fieldExtractor,
- object,
+ handle,
workingMemory );
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
return this.restriction.isAllowedCachedLeft( context,
- object );
+ handle );
}
public boolean isAllowedCachedRight(final ReteTuple tuple,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -18,7 +18,7 @@
import java.util.Arrays;
-import org.drools.base.evaluators.Operator;
+import org.drools.base.ValueType;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
@@ -69,27 +69,27 @@
}
public boolean isAllowed(final Extractor extractor,
- final Object object,
+ final InternalFactHandle handle,
final InternalWorkingMemory workingMemory) {
return this.evaluator.evaluate( workingMemory,
this.contextEntry.extractor,
- object,
+ this.evaluator.prepareObject( handle ),
this.contextEntry.declaration.getExtractor(),
- object );
+ this.evaluator.prepareObject( handle ) );
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
return this.evaluator.evaluateCachedLeft( ((VariableContextEntry) context).workingMemory,
(VariableContextEntry) context,
- object );
+ this.evaluator.prepareObject( handle ) );
}
public boolean isAllowedCachedRight(final ReteTuple tuple,
final ContextEntry context) {
return this.evaluator.evaluateCachedRight( ((VariableContextEntry) context).workingMemory,
(VariableContextEntry) context,
- tuple.get( this.declaration ).getObject() );
+ this.evaluator.prepareObject( tuple.get( this.declaration ) ) );
}
public String toString() {
@@ -125,26 +125,28 @@
private final VariableContextEntry createContextEntry(final Evaluator eval,
final FieldExtractor fieldExtractor) {
- if ( Operator.MEMBEROF.equals( eval.getOperator() ) || Operator.NOTMEMBEROF.equals( eval.getOperator() ) ) {
+ ValueType coerced = eval.getCoercedValueType();
+
+ if ( coerced.isBoolean() ) {
+ return new BooleanVariableContextEntry( fieldExtractor,
+ this.declaration,
+ this.evaluator );
+ } else if ( coerced.isFloatNumber() ) {
+ return new DoubleVariableContextEntry( fieldExtractor,
+ this.declaration,
+ this.evaluator );
+ } else if ( coerced.isIntegerNumber() ) {
+ return new LongVariableContextEntry( fieldExtractor,
+ this.declaration,
+ this.evaluator );
+ } else if ( coerced.isChar() ) {
+ return new CharVariableContextEntry( fieldExtractor,
+ this.declaration,
+ this.evaluator );
+ } else {
return new ObjectVariableContextEntry( fieldExtractor,
- this.declaration );
- } else {
- if ( fieldExtractor.getValueType().isBoolean() ) {
- return new BooleanVariableContextEntry( fieldExtractor,
- this.declaration );
- } else if ( fieldExtractor.getValueType().isFloatNumber() ) {
- return new DoubleVariableContextEntry( fieldExtractor,
- this.declaration );
- } else if ( fieldExtractor.getValueType().isIntegerNumber() ) {
- return new LongVariableContextEntry( fieldExtractor,
- this.declaration );
- } else if ( fieldExtractor.getValueType().isChar() ) {
- return new CharVariableContextEntry( fieldExtractor,
- this.declaration );
- } else {
- return new ObjectVariableContextEntry( fieldExtractor,
- this.declaration );
- }
+ this.declaration,
+ this.evaluator );
}
}
@@ -162,6 +164,7 @@
implements
ContextEntry {
public FieldExtractor extractor;
+ public Evaluator evaluator;
public Object object;
public Declaration declaration;
public ReteTuple reteTuple;
@@ -171,9 +174,11 @@
public InternalWorkingMemory workingMemory;
public VariableContextEntry(final FieldExtractor extractor,
- final Declaration declaration) {
+ final Declaration declaration,
+ final Evaluator evaluator) {
this.extractor = extractor;
this.declaration = declaration;
+ this.evaluator = evaluator;
}
public ContextEntry getNext() {
@@ -216,9 +221,11 @@
public Object right;
public ObjectVariableContextEntry(final FieldExtractor extractor,
- final Declaration declaration) {
+ final Declaration declaration,
+ final Evaluator evaluator) {
super( extractor,
- declaration );
+ declaration,
+ evaluator);
}
public void updateFromTuple(final InternalWorkingMemory workingMemory,
@@ -226,19 +233,19 @@
this.reteTuple = tuple;
this.workingMemory = workingMemory;
this.leftNull = this.declaration.getExtractor().isNullValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
this.left = this.declaration.getExtractor().getValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
}
public void updateFromFactHandle(final InternalWorkingMemory workingMemory,
final InternalFactHandle handle) {
- this.object = handle.getObject();
+ this.object = evaluator.prepareObject( handle );
this.workingMemory = workingMemory;
this.rightNull = this.extractor.isNullValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
this.right = this.extractor.getValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
}
}
@@ -250,9 +257,11 @@
public long right;
public LongVariableContextEntry(final FieldExtractor extractor,
- final Declaration declaration) {
+ final Declaration declaration,
+ final Evaluator evaluator) {
super( extractor,
- declaration );
+ declaration,
+ evaluator );
}
public void updateFromTuple(final InternalWorkingMemory workingMemory,
@@ -260,11 +269,11 @@
this.reteTuple = tuple;
this.workingMemory = workingMemory;
this.leftNull = this.declaration.getExtractor().isNullValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
if ( !leftNull ) {
this.left = this.declaration.getExtractor().getLongValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
} else {
this.left = 0;
}
@@ -272,14 +281,14 @@
public void updateFromFactHandle(final InternalWorkingMemory workingMemory,
final InternalFactHandle handle) {
- this.object = handle.getObject();
+ this.object = evaluator.prepareObject( handle );
this.workingMemory = workingMemory;
this.rightNull = this.extractor.isNullValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
if ( !rightNull ) { // avoid a NullPointerException
this.right = this.extractor.getLongValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
} else {
this.right = 0;
}
@@ -294,9 +303,11 @@
public char right;
public CharVariableContextEntry(final FieldExtractor extractor,
- final Declaration declaration) {
+ final Declaration declaration,
+ final Evaluator evaluator) {
super( extractor,
- declaration );
+ declaration,
+ evaluator );
}
public void updateFromTuple(final InternalWorkingMemory workingMemory,
@@ -304,11 +315,11 @@
this.reteTuple = tuple;
this.workingMemory = workingMemory;
this.leftNull = this.declaration.getExtractor().isNullValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
if ( !leftNull ) {
this.left = this.declaration.getExtractor().getCharValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
} else {
this.left = 0;
}
@@ -316,14 +327,14 @@
public void updateFromFactHandle(final InternalWorkingMemory workingMemory,
final InternalFactHandle handle) {
- this.object = handle.getObject();
+ this.object = evaluator.prepareObject( handle );
this.workingMemory = workingMemory;
this.rightNull = this.extractor.isNullValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
if ( !rightNull ) { // avoid a NullPointerException
this.right = this.extractor.getCharValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
} else {
this.right = 0;
}
@@ -338,9 +349,11 @@
public double right;
public DoubleVariableContextEntry(final FieldExtractor extractor,
- final Declaration declaration) {
+ final Declaration declaration,
+ final Evaluator evaluator) {
super( extractor,
- declaration );
+ declaration,
+ evaluator );
}
public void updateFromTuple(final InternalWorkingMemory workingMemory,
@@ -348,11 +361,11 @@
this.reteTuple = tuple;
this.workingMemory = workingMemory;
this.leftNull = this.declaration.getExtractor().isNullValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
if ( !leftNull ) {
this.left = this.declaration.getExtractor().getDoubleValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
} else {
this.left = 0;
}
@@ -360,14 +373,14 @@
public void updateFromFactHandle(final InternalWorkingMemory workingMemory,
final InternalFactHandle handle) {
- this.object = handle.getObject();
+ this.object = evaluator.prepareObject( handle );
this.workingMemory = workingMemory;
this.rightNull = this.extractor.isNullValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
if ( !rightNull ) { // avoid a NullPointerException
this.right = this.extractor.getDoubleValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
} else {
this.right = 0;
}
@@ -381,9 +394,11 @@
public boolean right;
public BooleanVariableContextEntry(final FieldExtractor extractor,
- final Declaration declaration) {
+ final Declaration declaration,
+ final Evaluator evaluator) {
super( extractor,
- declaration );
+ declaration,
+ evaluator );
}
public void updateFromTuple(final InternalWorkingMemory workingMemory,
@@ -391,11 +406,11 @@
this.reteTuple = tuple;
this.workingMemory = workingMemory;
this.leftNull = this.declaration.getExtractor().isNullValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
if ( !leftNull ) {
this.left = this.declaration.getExtractor().getBooleanValue( workingMemory,
- tuple.get( this.declaration ).getObject() );
+ evaluator.prepareObject( tuple.get( this.declaration ) ) );
} else {
this.left = false;
}
@@ -403,14 +418,14 @@
public void updateFromFactHandle(final InternalWorkingMemory workingMemory,
final InternalFactHandle handle) {
- this.object = handle.getObject();
+ this.object = evaluator.prepareObject( handle );
this.workingMemory = workingMemory;
this.rightNull = this.extractor.isNullValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
if ( !rightNull ) { // avoid a NullPointerException
this.right = this.extractor.getBooleanValue( workingMemory,
- handle.getObject() );
+ evaluator.prepareObject( handle ) );
} else {
this.right = false;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,12 +16,13 @@
* limitations under the License.
*/
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
public interface AlphaNodeFieldConstraint
extends
Constraint {
- public boolean isAllowed(Object object,
+ public boolean isAllowed(InternalFactHandle handle,
InternalWorkingMemory workingMemory);
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.drools.common.InternalFactHandle;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.ContextEntry;
@@ -24,7 +25,7 @@
Constraint {
public boolean isAllowedCachedLeft(ContextEntry context,
- Object object);
+ InternalFactHandle handle);
public boolean isAllowedCachedRight(ReteTuple tuple,
ContextEntry context);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Evaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Evaluator.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Evaluator.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -20,18 +20,56 @@
import org.drools.base.ValueType;
import org.drools.base.evaluators.Operator;
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.rule.VariableRestriction.VariableContextEntry;
+/**
+ * A public interface to be implemented by all evaluators
+ */
public interface Evaluator
extends
Serializable {
+ /**
+ * Returns the type of the values this evaluator operates upon.
+ *
+ * @return
+ */
public ValueType getValueType();
+ /**
+ * Returns the operator representation object for this evaluator
+ *
+ * @return
+ */
public Operator getOperator();
+
+ /**
+ * Returns the value type this evaluator will coerce
+ * operands to, during evaluation. This is useful for
+ * operators like "memberOf", that always convert to
+ * Object when evaluating, independently of the source
+ * operand value type.
+ *
+ * @return
+ */
+ public ValueType getCoercedValueType();
/**
+ * There are evaluators that operate on fact attributes and
+ * there are evaluators that operato on fact handle attributes
+ * (metadata).
+ *
+ * This method allows the evaluator to prepare the object
+ * to be evaluated. That includes, unwrapping the object if needed.
+ *
+ * @param handle
+ * @return
+ */
+ public Object prepareObject( InternalFactHandle handle );
+
+ /**
* This method will extract the value from the object1 using the
* extractor and compare it with the object2.
* @param workingMemory TODO
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FactHandleFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -19,6 +19,7 @@
import java.io.Serializable;
import org.drools.FactHandle;
+import org.drools.WorkingMemory;
import org.drools.common.InternalFactHandle;
/**
@@ -37,7 +38,7 @@
*
* @return The handle.
*/
- InternalFactHandle newFactHandle(Object object);
+ InternalFactHandle newFactHandle(Object object, boolean isEvent, WorkingMemory workingMemory );
/**
* Increases the recency of the FactHandle
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ObjectType.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ObjectType.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -18,7 +18,6 @@
import java.io.Serializable;
-import org.drools.base.ClassObjectType;
import org.drools.base.ValueType;
/**
@@ -45,7 +44,14 @@
boolean isAssignableFrom(Object object);
- boolean isAssignableFrom(ObjectType objectType);
+ boolean isAssignableFrom(ObjectType objectType);
+
+ /**
+ * Returns true if the object type represented by this object
+ * is an event object type. False otherwise.
+ * @return
+ */
+ boolean isEvent();
ValueType getValueType();
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Restriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Restriction.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Restriction.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -2,6 +2,7 @@
import java.io.Serializable;
+import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.ContextEntry;
@@ -14,11 +15,11 @@
Declaration[] getRequiredDeclarations();
public boolean isAllowed(Extractor extractor,
- Object object,
+ InternalFactHandle handle,
InternalWorkingMemory workingMemory);
public boolean isAllowedCachedLeft(ContextEntry context,
- Object object);
+ InternalFactHandle handle);
public boolean isAllowedCachedRight(ReteTuple tuple,
ContextEntry context);
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/temporal)
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionClock.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/temporal/SessionClock.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionClock.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,39 +0,0 @@
-/*
- * Copyright 2007 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.
- *
- * Created on Oct 17, 2007
- */
-package org.drools.temporal;
-
-/**
- * A clock interface that all engine clocks must implement
- *
- * @author etirelli
- */
-public interface SessionClock {
-
- /**
- * Returns the current time. There is no semantics attached
- * to the long return value, so it will depend on the actual
- * implementation. For isntance, for a real clock it may be
- * milliseconds.
- *
- * @return The current time. The unit of the time, depends on
- * the actual clock implementation.
- *
- */
- public long getCurrentTime();
-
-}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionClock.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/temporal/SessionClock.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionClock.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionClock.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Oct 17, 2007
+ */
+package org.drools.temporal;
+
+/**
+ * A clock interface that all engine clocks must implement
+ *
+ * @author etirelli
+ */
+public interface SessionClock {
+
+ /**
+ * Returns the current time. There is no semantics attached
+ * to the long return value, so it will depend on the actual
+ * implementation. For isntance, for a real clock it may be
+ * milliseconds.
+ *
+ * @return The current time. The unit of the time, depends on
+ * the actual clock implementation.
+ *
+ */
+ public long getCurrentTime();
+
+}
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionPseudoClock.java
===================================================================
--- labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/temporal/SessionPseudoClock.java 2007-12-10 14:54:35 UTC (rev 17159)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionPseudoClock.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,53 +0,0 @@
-/*
- * Copyright 2007 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.
- *
- * Created on Oct 17, 2007
- */
-package org.drools.temporal;
-
-/**
- * A SessionPseudoClock is a clock that allows the user to explicitly
- * control current time.
- *
- * @author etirelli
- *
- */
-public class SessionPseudoClock
- implements
- SessionClock {
-
- private long timer;
-
- public SessionPseudoClock() {
- this.timer = 0;
- }
-
- /* (non-Javadoc)
- * @see org.drools.temporal.SessionClock#getCurrentTime()
- */
- public long getCurrentTime() {
- return this.timer;
- }
-
- public long advanceTime( long millisecs ) {
- this.timer += millisecs;
- return this.timer;
- }
-
- public void setStartupTime(int i) {
- this.timer = i;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionPseudoClock.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/temporal/SessionPseudoClock.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionPseudoClock.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/temporal/SessionPseudoClock.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Oct 17, 2007
+ */
+package org.drools.temporal;
+
+/**
+ * A SessionPseudoClock is a clock that allows the user to explicitly
+ * control current time.
+ *
+ * @author etirelli
+ *
+ */
+public class SessionPseudoClock
+ implements
+ SessionClock {
+
+ private long timer;
+
+ public SessionPseudoClock() {
+ this.timer = 0;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.temporal.SessionClock#getCurrentTime()
+ */
+ public long getCurrentTime() {
+ return this.timer;
+ }
+
+ public long advanceTime( long millisecs ) {
+ this.timer += millisecs;
+ return this.timer;
+ }
+
+ public void setStartupTime(int i) {
+ this.timer = i;
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/DateUtils.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-core/src/main/java/org/drools/util/DateUtils.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/DateUtils.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/DateUtils.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2007 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.
+ *
+ * Created on Dec 6, 2007
+ */
+package org.drools.util;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @author etirelli
+ *
+ */
+public class DateUtils {
+
+ private static final long serialVersionUID = 400L;
+ private static final String DEFAULT_FORMAT_MASK = "dd-MMM-yyyy";
+ private static final String DATE_FORMAT_MASK = getDateFormatMask();
+ private static SimpleDateFormat df = new SimpleDateFormat( DATE_FORMAT_MASK );
+
+
+ /** Use the simple date formatter to read the date from a string */
+ public static Date parseDate(final String input) {
+ try {
+ return df.parse( input );
+ } catch ( final ParseException e ) {
+ throw new IllegalArgumentException( "Invalid date input format: [" + input + "] it should follow: [" + DATE_FORMAT_MASK + "]" );
+ }
+ }
+
+ /** Converts the right hand side date as appropriate */
+ public static Date getRightDate(final Object object2) {
+ if ( object2 == null ) {
+ return null;
+ }
+ if ( object2 instanceof String ) {
+ return parseDate( (String) object2 );
+ } else if ( object2 instanceof Date ) {
+ return (Date) object2;
+ } else {
+ throw new IllegalArgumentException( "Unable to convert " + object2.getClass() + " to a Date." );
+ }
+ }
+
+ /** Check for the system property override, if it exists */
+ public static String getDateFormatMask() {
+ String fmt = System.getProperty( "drools.dateformat" );
+ if ( fmt == null ) {
+ fmt = DEFAULT_FORMAT_MASK;
+ }
+ return fmt;
+ }
+}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -29,7 +29,7 @@
import junit.framework.TestCase;
-import org.drools.base.evaluators.Operator;
+import org.drools.base.evaluators.EvaluatorRegistry;
import org.drools.common.InternalWorkingMemory;
import org.drools.rule.Declaration;
import org.drools.rule.VariableRestriction.BooleanVariableContextEntry;
@@ -50,6 +50,8 @@
*/
public class EvaluatorFactoryTest extends TestCase {
+ private EvaluatorRegistry registry = new EvaluatorRegistry();
+
public void testObject() {
final List list = new ArrayList();
@@ -588,7 +590,9 @@
final Extractor extractor = new MockExtractor();
for ( int i = 0; i < data.length; i++ ) {
final Object[] row = data[i];
- final Evaluator evaluator = valueType.getEvaluator( Operator.determineOperator( (String) row[1] ) );
+ boolean isNegated = ((String) row[1]).startsWith("not ");
+ String evaluatorStr = isNegated ? ((String)row[1]).substring( 4 ) : (String)row[1];
+ final Evaluator evaluator = registry.getEvaluatorDefinition( evaluatorStr ).getEvaluator( valueType, evaluatorStr, isNegated, null );
checkEvaluatorMethodWithFieldValue( valueType,
extractor,
row,
@@ -723,105 +727,91 @@
final Declaration declaration = new Declaration( "test",
extractor,
null );
+ final ValueType coerced = evaluator.getCoercedValueType();
+
+ if ( coerced.isIntegerNumber() ) {
+ final LongVariableContextEntry context = new LongVariableContextEntry( extractor,
+ declaration,
+ evaluator );
- if( Operator.MEMBEROF.equals( evaluator.getOperator() ) ||
- Operator.NOTMEMBEROF.equals( evaluator.getOperator() ) ) {
-
- final ObjectVariableContextEntry context = new ObjectVariableContextEntry( extractor,
- declaration );
if (row[2] == null) {
- context.leftNull = true;
+ context.leftNull = true;
} else {
- context.left = row[2];
+ context.left = ((Number) row[2]).longValue();
}
if (row[0] == null) {
- context.rightNull = true;
+ context.rightNull = true;
} else {
- context.right = row[0];
+ context.right = ((Number) row[0]).longValue();
}
return context;
+ } else if ( coerced.isChar() ) {
+ final CharVariableContextEntry context = new CharVariableContextEntry( extractor,
+ declaration,
+ evaluator );
- } else {
- if ( valueType.isIntegerNumber() ) {
- final LongVariableContextEntry context = new LongVariableContextEntry( extractor,
- declaration );
+ if (row[2] == null) {
+ context.leftNull = true;
+ } else {
+ context.left = ((Character) row[2]).charValue();
+ }
- if (row[2] == null) {
- context.leftNull = true;
- } else {
- context.left = ((Number) row[2]).longValue();
- }
+ if (row[0] == null) {
+ context.rightNull = true;
+ } else {
+ context.right = ((Character) row[0]).charValue();
+ }
+ return context;
+ } else if ( coerced.isBoolean() ) {
+ final BooleanVariableContextEntry context = new BooleanVariableContextEntry( extractor,
+ declaration,
+ evaluator );
- if (row[0] == null) {
- context.rightNull = true;
- } else {
- context.right = ((Number) row[0]).longValue();
- }
- return context;
- } else if ( valueType.isChar() ) {
- final CharVariableContextEntry context = new CharVariableContextEntry( extractor,
- declaration );
+ if (row[2] == null) {
+ context.leftNull = true;
+ } else {
+ context.left = ((Boolean) row[2]).booleanValue();
+ }
- if (row[2] == null) {
- context.leftNull = true;
- } else {
- context.left = ((Character) row[2]).charValue();
- }
+ if (row[0] == null) {
+ context.rightNull = true;
+ } else {
+ context.right = ((Boolean) row[0]).booleanValue();
+ }
+ return context;
+ } else if ( coerced.isFloatNumber() ) {
+ final DoubleVariableContextEntry context = new DoubleVariableContextEntry( extractor,
+ declaration,
+ evaluator );
+ if (row[2] == null) {
+ context.leftNull = true;
+ } else {
+ context.left = ((Number) row[2]).doubleValue();
+ }
- if (row[0] == null) {
- context.rightNull = true;
- } else {
- context.right = ((Character) row[0]).charValue();
- }
- return context;
- } else if ( valueType.isBoolean() ) {
- final BooleanVariableContextEntry context = new BooleanVariableContextEntry( extractor,
- declaration );
-
- if (row[2] == null) {
- context.leftNull = true;
- } else {
- context.left = ((Boolean) row[2]).booleanValue();
- }
-
- if (row[0] == null) {
- context.rightNull = true;
- } else {
- context.right = ((Boolean) row[0]).booleanValue();
- }
- return context;
- } else if ( valueType.isFloatNumber() ) {
- final DoubleVariableContextEntry context = new DoubleVariableContextEntry( extractor,
- declaration );
- if (row[2] == null) {
- context.leftNull = true;
- } else {
- context.left = ((Number) row[2]).doubleValue();
- }
-
- if (row[0] == null) {
- context.rightNull = true;
- } else {
- context.right = ((Number) row[0]).doubleValue();
- }
- return context;
+ if (row[0] == null) {
+ context.rightNull = true;
} else {
- final ObjectVariableContextEntry context = new ObjectVariableContextEntry( extractor,
- declaration );
- if (row[2] == null) {
- context.leftNull = true;
- } else {
- context.left = row[2];
- }
+ context.right = ((Number) row[0]).doubleValue();
+ }
+ return context;
+ } else {
+ final ObjectVariableContextEntry context = new ObjectVariableContextEntry( extractor,
+ declaration,
+ evaluator );
+ if (row[2] == null) {
+ context.leftNull = true;
+ } else {
+ context.left = row[2];
+ }
- if (row[0] == null) {
- context.rightNull = true;
- } else {
- context.right = row[0];
- }
- return context;
+ if (row[0] == null) {
+ context.rightNull = true;
+ } else {
+ context.right = row[0];
}
+ return context;
}
}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELCalendarCoercionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELCalendarCoercionTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELCalendarCoercionTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -3,10 +3,10 @@
import java.util.Calendar;
import java.util.Date;
-import org.drools.base.evaluators.DateFactory;
-
import junit.framework.TestCase;
+import org.drools.util.DateUtils;
+
public class MVELCalendarCoercionTest extends TestCase {
public void testCalendar() {
@@ -23,7 +23,7 @@
assertTrue(co.canConvertFrom( Calendar.class ));
String dt = "10-Jul-1974";
- Date dt_ = DateFactory.parseDate( dt );
+ Date dt_ = DateUtils.parseDate( dt );
Calendar cal = Calendar.getInstance();
cal.setTime( dt_ );
assertEquals(cal, co.convertFrom( dt ));
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELDateCoercionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELDateCoercionTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/mvel/MVELDateCoercionTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -2,10 +2,10 @@
import java.util.Date;
-import org.drools.base.evaluators.DateFactory;
-
import junit.framework.TestCase;
+import org.drools.util.DateUtils;
+
public class MVELDateCoercionTest extends TestCase {
public void testDate() {
@@ -22,7 +22,7 @@
assertTrue(co.canConvertFrom( Date.class ));
String dt = "10-Jul-1974";
- Date dt_ = DateFactory.parseDate( dt );
+ Date dt_ = DateUtils.parseDate( dt );
assertEquals(dt_, co.convertFrom( dt ));
}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/BaseBetaConstraintsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/BaseBetaConstraintsTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/BaseBetaConstraintsTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -3,11 +3,18 @@
import java.util.ArrayList;
import java.util.List;
+import junit.framework.TestCase;
+
import org.drools.RuleBaseConfiguration;
import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.ClassObjectType;
+import org.drools.base.evaluators.ComparableEvaluatorsDefinition;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
+import org.drools.base.evaluators.EvaluatorRegistry;
+import org.drools.base.evaluators.MatchesEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
-import org.drools.base.evaluators.StringFactory;
+import org.drools.base.evaluators.SetEvaluatorsDefinition;
+import org.drools.base.evaluators.SoundslikeEvaluatorsDefinition;
import org.drools.reteoo.BetaMemory;
import org.drools.rule.Declaration;
import org.drools.rule.Pattern;
@@ -24,9 +31,16 @@
import org.drools.util.AbstractHashTable.FieldIndex;
import org.drools.util.AbstractHashTable.Index;
-import junit.framework.TestCase;
-
public abstract class BaseBetaConstraintsTest extends TestCase {
+
+ public static EvaluatorRegistry registry = new EvaluatorRegistry();
+ static {
+ registry.addEvaluatorDefinition( new EqualityEvaluatorsDefinition() );
+ registry.addEvaluatorDefinition( new ComparableEvaluatorsDefinition() );
+ registry.addEvaluatorDefinition( new SetEvaluatorsDefinition() );
+ registry.addEvaluatorDefinition( new MatchesEvaluatorsDefinition() );
+ registry.addEvaluatorDefinition( new SoundslikeEvaluatorsDefinition() );
+ }
protected BetaNodeFieldConstraint getConstraint(String identifier,
Operator operator,
@@ -39,7 +53,10 @@
extractor,
new Pattern( 0,
new ClassObjectType( clazz ) ) );
- Evaluator evaluator = StringFactory.getInstance().getEvaluator( operator );
+ Evaluator evaluator = registry.getEvaluatorDefinition( operator.getOperatorString() ).getEvaluator( extractor.getValueType(),
+ operator.getOperatorString(),
+ operator.isNegated(),
+ null );
return new VariableConstraint( extractor,
declaration,
evaluator );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/EqualityKeyTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/EqualityKeyTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/EqualityKeyTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -10,13 +10,13 @@
public void test1() {
ReteooFactHandleFactory factory = new ReteooFactHandleFactory();
- InternalFactHandle ch1 = factory.newFactHandle( new Cheese ("c", 10) );
+ InternalFactHandle ch1 = factory.newFactHandle( new Cheese ("c", 10), false, null );
EqualityKey key = new EqualityKey( ch1 );
assertSame( ch1, key.getFactHandle() );
assertNull( key.getOtherFactHandle() );
- InternalFactHandle ch2 = factory.newFactHandle( new Cheese ("c", 10) );
+ InternalFactHandle ch2 = factory.newFactHandle( new Cheese ("c", 10), false, null );
key.addFactHandle( ch2 );
assertEquals( 1, key.getOtherFactHandle().size() );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/TripleBetaConstraintsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/TripleBetaConstraintsTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/common/TripleBetaConstraintsTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,30 +1,9 @@
package org.drools.common;
-import java.util.ArrayList;
-import java.util.List;
-
import org.drools.Cheese;
-import org.drools.RuleBaseConfiguration;
-import org.drools.base.ClassFieldExtractorCache;
-import org.drools.base.ClassObjectType;
import org.drools.base.evaluators.Operator;
-import org.drools.base.evaluators.StringFactory;
-import org.drools.reteoo.BetaMemory;
-import org.drools.rule.Declaration;
-import org.drools.rule.Pattern;
import org.drools.rule.VariableConstraint;
-import org.drools.spi.BetaNodeFieldConstraint;
-import org.drools.spi.Evaluator;
-import org.drools.spi.FieldExtractor;
-import org.drools.util.FactHandleIndexHashTable;
-import org.drools.util.FactHashTable;
-import org.drools.util.TupleHashTable;
-import org.drools.util.TupleIndexHashTable;
-import org.drools.util.AbstractHashTable.FieldIndex;
-import org.drools.util.AbstractHashTable.Index;
-import junit.framework.TestCase;
-
public class TripleBetaConstraintsTest extends BaseBetaConstraintsTest {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/AgendaEventSupportTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/AgendaEventSupportTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/AgendaEventSupportTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -33,7 +33,13 @@
import org.drools.base.FieldFactory;
import org.drools.base.ShadowProxy;
import org.drools.base.ValueType;
+import org.drools.base.evaluators.ComparableEvaluatorsDefinition;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
+import org.drools.base.evaluators.EvaluatorRegistry;
+import org.drools.base.evaluators.MatchesEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
+import org.drools.base.evaluators.SetEvaluatorsDefinition;
+import org.drools.base.evaluators.SoundslikeEvaluatorsDefinition;
import org.drools.rule.LiteralConstraint;
import org.drools.rule.Package;
import org.drools.rule.Pattern;
@@ -47,6 +53,16 @@
* @author <a href="mailto:simon at redhillconsulting.com.au">Simon Harris</a>
*/
public class AgendaEventSupportTest extends TestCase {
+
+ public static EvaluatorRegistry registry = new EvaluatorRegistry();
+ static {
+ registry.addEvaluatorDefinition( new EqualityEvaluatorsDefinition() );
+ registry.addEvaluatorDefinition( new ComparableEvaluatorsDefinition() );
+ registry.addEvaluatorDefinition( new SetEvaluatorsDefinition() );
+ registry.addEvaluatorDefinition( new MatchesEvaluatorsDefinition() );
+ registry.addEvaluatorDefinition( new SoundslikeEvaluatorsDefinition() );
+ }
+
public void testIsSerializable() {
assertTrue( Serializable.class.isAssignableFrom( AgendaEventSupport.class ) );
}
@@ -68,7 +84,9 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = registry.getEvaluator( ValueType.STRING_TYPE,
+ Operator.EQUAL,
+ null );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/RuleBaseEventListenerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/RuleBaseEventListenerTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/event/RuleBaseEventListenerTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -28,6 +28,7 @@
import org.drools.base.ClassObjectType;
import org.drools.base.FieldFactory;
import org.drools.base.ValueType;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
import org.drools.rule.LiteralConstraint;
import org.drools.rule.Package;
@@ -72,7 +73,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = new EqualityEvaluatorsDefinition().getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL, null );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -33,22 +33,21 @@
import junit.framework.TestCase;
import org.drools.WorkingMemory;
-import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.ClassObjectType;
-import org.drools.base.ShadowProxyFactory;
import org.drools.base.ValueType;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
import org.drools.base.field.BooleanFieldImpl;
import org.drools.base.field.LongFieldImpl;
import org.drools.common.InternalWorkingMemory;
-import org.drools.rule.Pattern;
import org.drools.rule.Declaration;
import org.drools.rule.GroupElement;
import org.drools.rule.GroupElementFactory;
import org.drools.rule.InvalidRuleException;
import org.drools.rule.LiteralConstraint;
import org.drools.rule.Package;
+import org.drools.rule.Pattern;
import org.drools.rule.Rule;
import org.drools.rule.VariableConstraint;
import org.drools.spi.AlphaNodeFieldConstraint;
@@ -113,12 +112,11 @@
//shadow = ShadowProxyFactory.getProxy( Chosen.class );
this.chosenType = new ClassObjectType( Chosen.class );
- this.integerEqualEvaluator = ValueType.PINTEGER_TYPE.getEvaluator( Operator.EQUAL );
- //this.integerNotEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.NOT_EQUAL );
- this.objectEqualEvaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
- this.objectNotEqualEvaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.NOT_EQUAL );
- this.booleanEqualEvaluator = ValueType.PBOOLEAN_TYPE.getEvaluator( Operator.EQUAL );
- //this.booleanNotEqualEvaluator = ValueType.BOOLEAN_TYPE.getEvaluator( Operator.NOT_EQUAL );
+ EqualityEvaluatorsDefinition evals = new EqualityEvaluatorsDefinition();
+ this.integerEqualEvaluator = evals.getEvaluator( ValueType.PINTEGER_TYPE, Operator.EQUAL, null );
+ this.objectEqualEvaluator = evals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL, null );
+ this.objectNotEqualEvaluator = evals.getEvaluator( ValueType.OBJECT_TYPE, Operator.NOT_EQUAL, null );
+ this.booleanEqualEvaluator = evals.getEvaluator( ValueType.PBOOLEAN_TYPE, Operator.EQUAL, null );
this.pkg = new Package( "org.drools.examples.manners" );
this.pkg.addRule( getAssignFirstSeatRule() );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AccumulateNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AccumulateNodeTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AccumulateNodeTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -128,10 +128,10 @@
0,
this.sink.getAsserted().size() );
- this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" ) ),
+ this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null ) ),
this.context,
this.workingMemory );
- this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" ) ),
+ this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null ) ),
this.context,
this.workingMemory );
@@ -155,7 +155,7 @@
* Test method for {@link org.drools.reteoo.AccumulateNode#assertTuple(org.drools.reteoo.ReteTuple, org.drools.spi.PropagationContext, org.drools.reteoo.ReteooWorkingMemory)}.
*/
public void testAssertTuple() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
// assert tuple, should add one to left memory
@@ -171,7 +171,7 @@
this.accumulator.getMatchingObjects().isEmpty() );
// assert tuple, should add left memory
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple1 = new ReteTuple( f1 );
this.node.assertTuple( tuple1,
@@ -195,8 +195,8 @@
* Test method for {@link org.drools.reteoo.AccumulateNode#assertTuple(org.drools.reteoo.ReteTuple, org.drools.spi.PropagationContext, org.drools.reteoo.ReteooWorkingMemory)}.
*/
public void testAssertTupleWithObjects() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
@@ -244,7 +244,7 @@
* Test method for {@link org.drools.reteoo.AccumulateNode#retractTuple(org.drools.reteoo.ReteTuple, org.drools.spi.PropagationContext, org.drools.reteoo.ReteooWorkingMemory)}.
*/
public void testRetractTuple() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
@@ -275,8 +275,8 @@
* Test method for {@link org.drools.reteoo.AccumulateNode#assertObject(InternalFactHandle, org.drools.spi.PropagationContext, InternalWorkingMemory)}.
*/
public void testAssertObject() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
@@ -320,8 +320,8 @@
* Test method for {@link org.drools.reteoo.AccumulateNode#retractObject(InternalFactHandle, org.drools.spi.PropagationContext, InternalWorkingMemory)}.
*/
public void testRetractObject() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
@@ -431,8 +431,8 @@
this.memory = ((AccumulateMemory) this.workingMemory.getNodeMemory( this.node )).betaMemory;
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -27,6 +27,7 @@
import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.FieldFactory;
import org.drools.base.ValueType;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.common.PropagationContextImpl;
@@ -42,6 +43,7 @@
public class AlphaNodeTest extends DroolsTestCase {
ClassFieldExtractorCache cache = ClassFieldExtractorCache.getInstance();
+ EqualityEvaluatorsDefinition equals = new EqualityEvaluatorsDefinition();
public void testMemory() {
RuleBaseConfiguration config = new RuleBaseConfiguration();
@@ -83,7 +85,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -170,7 +172,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -233,7 +235,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -320,7 +322,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -407,7 +409,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -475,7 +477,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -559,7 +561,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -647,7 +649,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
@@ -731,7 +733,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.OBJECT_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -125,10 +125,10 @@
0,
this.sink.getAsserted().size() );
- this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" ) ),
+ this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null ) ),
this.contextAssert,
this.workingMemory );
- this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" ) ),
+ this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null ) ),
this.contextAssert,
this.workingMemory );
@@ -149,7 +149,7 @@
}
public void testAssertTuple() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
// assert tuple, should add one to left memory
@@ -165,7 +165,7 @@
((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 0 ))[0]).get( 1 )).getObject()).isEmpty() );
// assert tuple, should add left memory
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple1 = new ReteTuple( f1 );
this.node.assertTuple( tuple1,
@@ -185,8 +185,8 @@
}
public void testAssertTupleWithObjects() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
@@ -230,7 +230,7 @@
}
public void testRetractTuple() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
@@ -258,8 +258,8 @@
}
public void testAssertObject() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
@@ -302,8 +302,8 @@
}
public void testRetractObject() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
@@ -395,8 +395,8 @@
this.memory = (BetaMemory) this.workingMemory.getNodeMemory( this.node );
this.node.setTupleMemoryEnabled( false );
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
+ final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese", false, null );
+ final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese", false, null );
final ReteTuple tuple0 = new ReteTuple( f0 );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -8,9 +8,8 @@
import org.drools.RuleBaseFactory;
import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.ValueType;
-import org.drools.base.evaluators.CharacterFactory;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
-import org.drools.base.evaluators.StringFactory;
import org.drools.base.field.LongFieldImpl;
import org.drools.base.field.ObjectFieldImpl;
import org.drools.common.EmptyBetaConstraints;
@@ -25,6 +24,8 @@
public class CompositeObjectSinkAdapterTest extends TestCase {
private ReteooRuleBase ruleBase;
private BuildContext buildContext;
+
+ private EqualityEvaluatorsDefinition equals = new EqualityEvaluatorsDefinition();
protected void setUp() throws Exception {
this.ruleBase = (ReteooRuleBase) RuleBaseFactory.newRuleBase();
@@ -89,7 +90,7 @@
final CompositeObjectSinkAdapter ad = new CompositeObjectSinkAdapter();
final LiteralConstraint lit = new LiteralConstraint( new MockExtractor(),
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
new ObjectFieldImpl( "stilton" ) );
final AlphaNode al = new AlphaNode( buildContext.getNextId(),
lit,
@@ -115,7 +116,7 @@
final CompositeObjectSinkAdapter ad = new CompositeObjectSinkAdapter();
final LiteralConstraint lit = new LiteralConstraint( new MockExtractor(),
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
new ObjectFieldImpl( "stilton" ) );
final AlphaNode al = new AlphaNode( buildContext.getNextId(),
lit,
@@ -132,7 +133,7 @@
ad.getSinks()[0] );
final LiteralConstraint lit2 = new LiteralConstraint( new MockExtractor(),
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
new ObjectFieldImpl( "cheddar" ) );
final AlphaNode al2 = new AlphaNode( buildContext.getNextId(),
lit2,
@@ -177,7 +178,7 @@
this.getClass().getClassLoader() );
final LiteralConstraint lit = new LiteralConstraint( extractor,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
new ObjectFieldImpl( "stilton" ) );
final AlphaNode al = new AlphaNode( buildContext.getNextId(),
lit,
@@ -194,7 +195,7 @@
ad.getSinks()[0] );
final LiteralConstraint lit2 = new LiteralConstraint( extractor,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
new ObjectFieldImpl( "cheddar" ) );
final AlphaNode al2 = new AlphaNode( buildContext.getNextId(),
lit2,
@@ -208,7 +209,7 @@
ad.hashableSinks.size() );
final LiteralConstraint lit3 = new LiteralConstraint( extractor,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
new ObjectFieldImpl( "stinky" ) );
final AlphaNode al3 = new AlphaNode( buildContext.getNextId(),
lit3,
@@ -236,7 +237,7 @@
this.getClass().getClassLoader() );
final LiteralConstraint lit = new LiteralConstraint( extractor,
- CharacterFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( extractor.getValueType(), Operator.EQUAL ),
new LongFieldImpl( 65 ) ); // chars are handled as integers
final AlphaNode al = new AlphaNode( buildContext.getNextId(),
lit,
@@ -253,7 +254,7 @@
ad.getSinks()[0] );
final LiteralConstraint lit2 = new LiteralConstraint( extractor,
- CharacterFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( extractor.getValueType(), Operator.EQUAL ),
new LongFieldImpl( 66 ) );
final AlphaNode al2 = new AlphaNode( buildContext.getNextId(),
lit2,
@@ -267,7 +268,7 @@
ad.hashableSinks.size() );
final LiteralConstraint lit3 = new LiteralConstraint( extractor,
- CharacterFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( extractor.getValueType(), Operator.EQUAL ),
new LongFieldImpl( 67 ) );
final AlphaNode al3 = new AlphaNode( buildContext.getNextId(),
lit3,
@@ -315,7 +316,7 @@
"type",
this.getClass().getClassLoader() );
final LiteralConstraint lit1 = new LiteralConstraint( extractor,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
new ObjectFieldImpl( "stilton" ) );
final AlphaNode al1 = new AlphaNode( buildContext.getNextId(),
lit1,
@@ -323,7 +324,7 @@
buildContext );
final LiteralConstraint lit2 = new LiteralConstraint( extractor,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
new ObjectFieldImpl( "brie" ) );
final AlphaNode al2 = new AlphaNode( buildContext.getNextId(),
lit2,
@@ -331,7 +332,7 @@
buildContext );
final LiteralConstraint lit3 = new LiteralConstraint( extractor,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
new ObjectFieldImpl( "muzzarela" ) );
final AlphaNode al3 = new AlphaNode( buildContext.getNextId(),
lit3,
@@ -342,7 +343,7 @@
ad.addObjectSink( al2 );
ad.addObjectSink( al3 );
- InternalFactHandle handle = new ReteooFactHandleFactory().newFactHandle( new Cheese() );
+ InternalFactHandle handle = new ReteooFactHandleFactory().newFactHandle( new Cheese(), false, null );
try {
ad.propagateAssertObject( handle,
null,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/DefaultFactHandleFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/DefaultFactHandleFactoryTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/DefaultFactHandleFactoryTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -27,21 +27,21 @@
*/
public void testNewFactHandle() {
final ReteooFactHandleFactory factory = new ReteooFactHandleFactory();
- DefaultFactHandle handle = (DefaultFactHandle) factory.newFactHandle( "cheese" );
+ DefaultFactHandle handle = (DefaultFactHandle) factory.newFactHandle( "cheese", false, null );
assertEquals( 0,
handle.getId() );
assertEquals( 0,
handle.getRecency() );
// issue new handle
- handle = (DefaultFactHandle) factory.newFactHandle( "cheese" );
+ handle = (DefaultFactHandle) factory.newFactHandle( "cheese", false, null );
assertEquals( 1,
handle.getId() );
assertEquals( 1,
handle.getRecency() );
// issue new handle, under a different reference so we can destroy later
- final DefaultFactHandle handle2 = (DefaultFactHandle) factory.newFactHandle( "cheese" );
+ final DefaultFactHandle handle2 = (DefaultFactHandle) factory.newFactHandle( "cheese", false, null );
assertEquals( 2,
handle2.getId() );
assertEquals( 2,
@@ -53,7 +53,7 @@
handle.getRecency() );
// issue new handle and make sure recency is still inline
- handle = (DefaultFactHandle) factory.newFactHandle( "cheese" );
+ handle = (DefaultFactHandle) factory.newFactHandle( "cheese", false, null );
assertEquals( 3,
handle.getId() );
assertEquals( 4,
@@ -63,14 +63,14 @@
factory.destroyFactHandle( handle2 );
// issue new fact handle and make sure it recycled the id=2
- handle = (DefaultFactHandle) factory.newFactHandle( "cheese" );
+ handle = (DefaultFactHandle) factory.newFactHandle( "cheese", false, null );
assertEquals( 2,
handle.getId() );
assertEquals( 5,
handle.getRecency() );
// issue new handle making sure it correctly resumes ids and recency
- handle = (DefaultFactHandle) factory.newFactHandle( "cheese" );
+ handle = (DefaultFactHandle) factory.newFactHandle( "cheese", false, null );
assertEquals( 4,
handle.getId() );
assertEquals( 6,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -17,6 +17,7 @@
import org.drools.base.ClassObjectType;
import org.drools.base.FieldFactory;
import org.drools.base.ValueType;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
import org.drools.common.BetaConstraints;
import org.drools.common.DefaultFactHandle;
@@ -37,6 +38,7 @@
public class FromNodeTest extends TestCase {
ClassFieldExtractorCache cache = ClassFieldExtractorCache.getInstance();
+ EqualityEvaluatorsDefinition equals = new EqualityEvaluatorsDefinition();
public void testAlphaNode() {
final PropagationContext context = new PropagationContextImpl( 0,
@@ -51,7 +53,7 @@
final FieldValue field = FieldFactory.getFieldValue( "stilton" );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
- ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
field );
final List list = new ArrayList();
@@ -154,7 +156,7 @@
final VariableConstraint variableConstraint = new VariableConstraint( priceExtractor,
declaration,
- ValueType.PINTEGER_TYPE.getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.PINTEGER_TYPE, Operator.EQUAL ) );
final RuleBaseConfiguration configuration = new RuleBaseConfiguration();
configuration.setIndexRightBetaMemory( false );
configuration.setIndexLeftBetaMemory( false );
@@ -248,7 +250,7 @@
final FieldValue field = FieldFactory.getFieldValue( "stilton" );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
- ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL ),
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ),
field );
final List list = new ArrayList();
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeConfTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeConfTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeConfTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -1,6 +1,5 @@
package org.drools.reteoo;
-import org.drools.reteoo.Rete.ClassObjectTypeConf;
import junit.framework.TestCase;
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/QueryTerminalNodeTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -34,6 +34,7 @@
import org.drools.base.DroolsQuery;
import org.drools.base.FieldFactory;
import org.drools.base.ValueType;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
import org.drools.common.EmptyBetaConstraints;
import org.drools.reteoo.builder.BuildContext;
@@ -47,6 +48,7 @@
private BuildContext buildContext;
ClassFieldExtractorCache cache = ClassFieldExtractorCache.getInstance();
+ private EqualityEvaluatorsDefinition equals = new EqualityEvaluatorsDefinition();
protected void setUp() throws Exception {
this.ruleBase = (ReteooRuleBase) RuleBaseFactory.newRuleBase();
@@ -67,7 +69,7 @@
FieldValue field = FieldFactory.getFieldValue( "query-1" );
- final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL );
LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
field );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ReteTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -22,6 +22,7 @@
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
import org.drools.Cheese;
@@ -35,8 +36,6 @@
import org.drools.common.DefaultFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.common.PropagationContextImpl;
-import org.drools.reteoo.Rete.ClassObjectTypeConf;
-import org.drools.reteoo.Rete.ObjectTypeConf;
import org.drools.reteoo.ReteooBuilder.IdGenerator;
import org.drools.reteoo.builder.BuildContext;
import org.drools.spi.PropagationContext;
@@ -135,7 +134,7 @@
null ),
workingMemory );
- final ObjectHashMap map = (ObjectHashMap) workingMemory.getNodeMemory( rete );
+ final Map map = workingMemory.getObjectTypeConfMap();
ClassObjectTypeConf conf = (ClassObjectTypeConf) map.get( ArrayList.class );
assertLength( 3,
conf.getObjectTypeNodes() );
@@ -239,7 +238,7 @@
rete.getObjectTypeNodes().get( new ClassObjectType( List.class ) ) );
// ArrayConf should match two ObjectTypenodes for List and ArrayList
- ObjectHashMap memory = (ObjectHashMap) workingMemory.getNodeMemory( rete );
+ Map memory = workingMemory.getObjectTypeConfMap();
ObjectTypeConf arrayConf = (ObjectTypeConf) memory.get( ArrayList.class );
final ObjectTypeNode arrayOtn = arrayConf.getConcreteObjectTypeNode();
assertEquals( 2,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/FieldConstraintTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -30,6 +30,8 @@
import org.drools.base.FieldFactory;
import org.drools.base.ShadowProxy;
import org.drools.base.ValueType;
+import org.drools.base.evaluators.ComparableEvaluatorsDefinition;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
@@ -47,6 +49,8 @@
public class FieldConstraintTest extends TestCase {
ClassFieldExtractorCache cache = ClassFieldExtractorCache.getInstance();
+ EqualityEvaluatorsDefinition equals = new EqualityEvaluatorsDefinition();
+ ComparableEvaluatorsDefinition comparables = new ComparableEvaluatorsDefinition();
public FieldConstraintTest() {
super();
@@ -76,7 +80,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
@@ -88,7 +92,7 @@
final InternalFactHandle cheddarHandle = (InternalFactHandle) workingMemory.insert( cheddar );
// check constraint
- assertTrue( constraint.isAllowed( cheddarHandle.getObject(),
+ assertTrue( constraint.isAllowed( cheddarHandle,
workingMemory ) );
final Cheese stilton = new Cheese( "stilton",
@@ -97,7 +101,7 @@
final InternalFactHandle stiltonHandle = (InternalFactHandle) workingMemory.insert( stilton );
// check constraint
- assertFalse( constraint.isAllowed( stiltonHandle.getObject(),
+ assertFalse( constraint.isAllowed( stiltonHandle,
workingMemory ) );
}
@@ -122,7 +126,7 @@
final FieldValue field = FieldFactory.getFieldValue( 5 );
- final Evaluator evaluator = ValueType.PINTEGER_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.PINTEGER_TYPE, Operator.EQUAL );
final LiteralConstraint constraint = new LiteralConstraint( extractor,
evaluator,
@@ -134,7 +138,7 @@
final InternalFactHandle cheddarHandle = (InternalFactHandle) workingMemory.insert( cheddar );
// check constraint
- assertTrue( constraint.isAllowed( cheddarHandle.getObject(),
+ assertTrue( constraint.isAllowed( cheddarHandle,
workingMemory ) );
final Cheese stilton = new Cheese( "stilton",
@@ -143,7 +147,7 @@
final InternalFactHandle stiltonHandle = (InternalFactHandle) workingMemory.insert( stilton );
// check constraint
- assertFalse( constraint.isAllowed( stiltonHandle.getObject(),
+ assertFalse( constraint.isAllowed( stiltonHandle,
workingMemory ) );
}
@@ -228,7 +232,7 @@
context.updateFromTuple( workingMemory,
tuple );
assertTrue( constraint1.isAllowedCachedLeft( context,
- f1.getObject() ) );
+ f1 ) );
}
/**
@@ -284,7 +288,7 @@
new Declaration[]{priceDeclaration},
new Declaration[0],
new String[0],
- ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.INTEGER_TYPE, Operator.EQUAL ) );
final ReturnValueConstraint constraint1 = new ReturnValueConstraint( priceExtractor,
restriction1 );
@@ -294,7 +298,7 @@
new Declaration[]{priceDeclaration},
new Declaration[0],
new String[0],
- ValueType.INTEGER_TYPE.getEvaluator( Operator.GREATER ) );
+ comparables.getEvaluator( ValueType.INTEGER_TYPE, Operator.GREATER ) );
final ReturnValueConstraint constraint2 = new ReturnValueConstraint( priceExtractor,
restriction2 );
@@ -315,13 +319,13 @@
context1.updateFromTuple( workingMemory,
tuple );
assertTrue( constraint1.isAllowedCachedLeft( context1,
- f1.getObject() ) );
+ f1 ) );
final ReturnValueContextEntry context2 = (ReturnValueContextEntry) constraint2.getContextEntry();
context2.updateFromTuple( workingMemory,
tuple );
assertFalse( constraint2.isAllowedCachedLeft( context2,
- f1.getObject() ) );
+ f1 ) );
final Cheese cheddar2 = new Cheese( "cheddar",
11 );
@@ -329,7 +333,7 @@
final InternalFactHandle f2 = (InternalFactHandle) workingMemory.insert( cheddar2 );
assertTrue( constraint2.isAllowedCachedLeft( context2,
- f2.getObject() ) );
+ f2 ) );
}
/**
@@ -356,7 +360,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL );
final LiteralConstraint constraint1 = new LiteralConstraint( extractor,
evaluator,
@@ -368,7 +372,7 @@
final FieldValue priceField = FieldFactory.getFieldValue( 10 );
- final Evaluator priceEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.GREATER );
+ final Evaluator priceEvaluator = comparables.getEvaluator( ValueType.INTEGER_TYPE, Operator.GREATER );
final LiteralConstraint constraint2 = new LiteralConstraint( priceExtractor,
priceEvaluator,
@@ -384,22 +388,22 @@
final InternalFactHandle cheddarHandle = (InternalFactHandle) workingMemory.insert( cheddar );
// check constraint
- assertTrue( constraint.isAllowed( cheddarHandle.getObject(),
+ assertTrue( constraint.isAllowed( cheddarHandle,
workingMemory ) );
cheddar.setPrice( 5 );
((ShadowProxy) cheddarHandle.getObject()).updateProxy();
- assertFalse( constraint.isAllowed( cheddarHandle.getObject(),
+ assertFalse( constraint.isAllowed( cheddarHandle,
workingMemory ) );
cheddar.setType( "stilton" );
((ShadowProxy) cheddarHandle.getObject()).updateProxy();
- assertFalse( constraint.isAllowed( cheddarHandle.getObject(),
+ assertFalse( constraint.isAllowed( cheddarHandle,
workingMemory ) );
cheddar.setPrice( 15 );
((ShadowProxy) cheddarHandle.getObject()).updateProxy();
- assertFalse( constraint.isAllowed( cheddarHandle.getObject(),
+ assertFalse( constraint.isAllowed( cheddarHandle,
workingMemory ) );
}
@@ -426,7 +430,7 @@
final FieldValue field = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator evaluator = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator evaluator = equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL );
final LiteralConstraint constraint1 = new LiteralConstraint( extractor,
evaluator,
@@ -438,7 +442,7 @@
final FieldValue priceField = FieldFactory.getFieldValue( 10 );
- final Evaluator priceEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.GREATER );
+ final Evaluator priceEvaluator = comparables.getEvaluator( ValueType.INTEGER_TYPE, Operator.GREATER );
final LiteralConstraint constraint2 = new LiteralConstraint( priceExtractor,
priceEvaluator,
@@ -454,22 +458,22 @@
final InternalFactHandle cheddarHandle = (InternalFactHandle) workingMemory.insert( cheddar );
// check constraint
- assertTrue( constraint.isAllowed( cheddarHandle.getObject(),
+ assertTrue( constraint.isAllowed( cheddarHandle,
workingMemory ) );
cheddar.setPrice( 5 );
((ShadowProxy) cheddarHandle.getObject()).updateProxy();
- assertTrue( constraint.isAllowed( cheddarHandle.getObject(),
+ assertTrue( constraint.isAllowed( cheddarHandle,
workingMemory ) );
cheddar.setType( "stilton" );
((ShadowProxy) cheddarHandle.getObject()).updateProxy();
- assertFalse( constraint.isAllowed( cheddarHandle.getObject(),
+ assertFalse( constraint.isAllowed( cheddarHandle,
workingMemory ) );
cheddar.setPrice( 15 );
((ShadowProxy) cheddarHandle.getObject()).updateProxy();
- assertTrue( constraint.isAllowed( cheddarHandle.getObject(),
+ assertTrue( constraint.isAllowed( cheddarHandle,
workingMemory ) );
}
@@ -496,7 +500,7 @@
final FieldValue cheddarField = FieldFactory.getFieldValue( "cheddar" );
- final Evaluator stringEqual = ValueType.STRING_TYPE.getEvaluator( Operator.EQUAL );
+ final Evaluator stringEqual = equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL );
// type == 'cheddar'
final LiteralConstraint constraint1 = new LiteralConstraint( typeExtractor,
@@ -509,7 +513,7 @@
final FieldValue field10 = FieldFactory.getFieldValue( 10 );
- final Evaluator integerGreater = ValueType.INTEGER_TYPE.getEvaluator( Operator.GREATER );
+ final Evaluator integerGreater = comparables.getEvaluator( ValueType.INTEGER_TYPE, Operator.GREATER );
// price > 10
final LiteralConstraint constraint2 = new LiteralConstraint( priceExtractor,
@@ -527,7 +531,7 @@
stringEqual,
stiltonField );
- final Evaluator integerLess = ValueType.INTEGER_TYPE.getEvaluator( Operator.LESS );
+ final Evaluator integerLess = comparables.getEvaluator( ValueType.INTEGER_TYPE, Operator.LESS );
// price < 10
final LiteralConstraint constraint4 = new LiteralConstraint( priceExtractor,
@@ -550,22 +554,22 @@
final InternalFactHandle cheddarHandle = (InternalFactHandle) workingMemory.insert( cheddar );
// check constraint
- assertTrue( constraint.isAllowed( cheddarHandle.getObject(),
+ assertTrue( constraint.isAllowed( cheddarHandle,
workingMemory ) );
cheddar.setPrice( 5 );
((ShadowProxy) cheddarHandle.getObject()).updateProxy();
- assertFalse( constraint.isAllowed( cheddarHandle.getObject(),
+ assertFalse( constraint.isAllowed( cheddarHandle,
workingMemory ) );
cheddar.setType( "stilton" );
((ShadowProxy) cheddarHandle.getObject()).updateProxy();
- assertTrue( constraint.isAllowed( cheddarHandle.getObject(),
+ assertTrue( constraint.isAllowed( cheddarHandle,
workingMemory ) );
cheddar.setPrice( 15 );
((ShadowProxy) cheddarHandle.getObject()).updateProxy();
- assertFalse( constraint.isAllowed( cheddarHandle.getObject(),
+ assertFalse( constraint.isAllowed( cheddarHandle,
workingMemory ) );
}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -36,7 +36,7 @@
public boolean isAllowed = true;
- public boolean isAllowed(final Object object,
+ public boolean isAllowed(final InternalFactHandle handle,
final Tuple tuple,
final WorkingMemory workingMemory) {
return this.isAllowed;
@@ -78,7 +78,7 @@
}
public boolean isAllowedCachedLeft(final ContextEntry context,
- final Object object) {
+ final InternalFactHandle handle) {
return this.isAllowed;
}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockObjectType.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockObjectType.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -39,6 +39,8 @@
private static final long serialVersionUID = 400L;
/** Java object class. */
private boolean matches;
+
+ private boolean isEvent;
// ------------------------------------------------------------
// Constructors
@@ -88,4 +90,12 @@
return ValueType.OBJECT_TYPE;
}
+ public boolean isEvent() {
+ return isEvent;
+ }
+
+ public void setEvent(boolean isEvent) {
+ this.isEvent = isEvent;
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -5,8 +5,9 @@
import org.drools.Cheese;
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassFieldExtractorCache;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
-import org.drools.base.evaluators.StringFactory;
import org.drools.common.DefaultFactHandle;
import org.drools.common.InternalFactHandle;
import org.drools.util.AbstractHashTable.FactEntryImpl;
@@ -16,6 +17,7 @@
public class FieldIndexEntryTest extends TestCase {
ClassFieldExtractorCache cache = ClassFieldExtractorCache.getInstance();
+ EqualityEvaluatorsDefinition equals = new EqualityEvaluatorsDefinition();
public void testSingleEntry() {
final ClassFieldExtractor extractor = cache.getExtractor( Cheese.class,
@@ -24,7 +26,7 @@
final FieldIndex fieldIndex = new FieldIndex( extractor,
null,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ) );
final SingleIndex singleIndex = new SingleIndex( new FieldIndex[]{fieldIndex},
1 );
@@ -67,7 +69,7 @@
getClass().getClassLoader() );
final FieldIndex fieldIndex = new FieldIndex( extractor,
null,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ) );
final SingleIndex singleIndex = new SingleIndex( new FieldIndex[]{fieldIndex},
1 );
@@ -119,7 +121,7 @@
getClass().getClassLoader() );
final FieldIndex fieldIndex = new FieldIndex( extractor,
null,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ) );
final SingleIndex singleIndex = new SingleIndex( new FieldIndex[]{fieldIndex},
1 );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -9,9 +9,9 @@
import org.drools.Cheese;
import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.ClassObjectType;
-import org.drools.base.evaluators.ObjectFactory;
+import org.drools.base.ValueType;
+import org.drools.base.evaluators.EqualityEvaluatorsDefinition;
import org.drools.base.evaluators.Operator;
-import org.drools.base.evaluators.StringFactory;
import org.drools.common.DefaultFactHandle;
import org.drools.common.InternalFactHandle;
import org.drools.reteoo.ReteTuple;
@@ -25,6 +25,7 @@
public class FieldIndexHashTableTest extends TestCase {
ClassFieldExtractorCache cache = ClassFieldExtractorCache.getInstance();
+ EqualityEvaluatorsDefinition equals = new EqualityEvaluatorsDefinition();
public void testSingleEntry() throws Exception {
final FieldExtractor extractor = cache.getExtractor( Cheese.class,
@@ -40,7 +41,7 @@
final FieldIndex fieldIndex = new FieldIndex( extractor,
declaration,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ) );
final FactHandleIndexHashTable map = new FactHandleIndexHashTable( new FieldIndex[]{fieldIndex} );
@@ -89,7 +90,7 @@
final FieldIndex fieldIndex = new FieldIndex( extractor,
declaration,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ) );
final FactHandleIndexHashTable map = new FactHandleIndexHashTable( new FieldIndex[]{fieldIndex} );
@@ -146,7 +147,7 @@
final FieldIndex fieldIndex = new FieldIndex( extractor,
declaration,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ) );
final FactHandleIndexHashTable map = new FactHandleIndexHashTable( new FieldIndex[]{fieldIndex} );
@@ -203,7 +204,7 @@
final FieldIndex fieldIndex = new FieldIndex( extractor,
declaration,
- ObjectFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.OBJECT_TYPE, Operator.EQUAL ) );
final FactHandleIndexHashTable map = new FactHandleIndexHashTable( new FieldIndex[]{fieldIndex} );
@@ -250,7 +251,7 @@
final FieldIndex fieldIndex = new FieldIndex( extractor,
declaration,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ) );
final FactHandleIndexHashTable map = new FactHandleIndexHashTable( new FieldIndex[]{fieldIndex} );
@@ -317,7 +318,7 @@
final FieldIndex fieldIndex = new FieldIndex( extractor,
declaration,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ) );
final FactHandleIndexHashTable map = new FactHandleIndexHashTable( new FieldIndex[]{fieldIndex} );
@@ -534,7 +535,7 @@
final FieldIndex fieldIndex = new FieldIndex( extractor,
declaration,
- StringFactory.getInstance().getEvaluator( Operator.EQUAL ) );
+ equals.getEvaluator( ValueType.STRING_TYPE, Operator.EQUAL ) );
final FactHandleIndexHashTable map = new FactHandleIndexHashTable( new FieldIndex[]{fieldIndex} );
Modified: labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/ExternalSheetListenerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/ExternalSheetListenerTest.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-decisiontables/src/test/java/org/drools/decisiontable/parser/ExternalSheetListenerTest.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -29,6 +29,7 @@
import org.drools.spi.AgendaGroup;
import org.drools.spi.AsyncExceptionHandler;
import org.drools.spi.GlobalResolver;
+import org.drools.temporal.SessionClock;
public class ExternalSheetListenerTest extends TestCase {
@@ -402,6 +403,12 @@
// TODO Auto-generated method stub
return null;
}
+
+ public SessionClock getSessionClock() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
};
}
}
Copied: labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94EventFactHandle.java (from rev 17159, labs/jbossrules/branches/temporal_rete/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94EventFactHandle.java)
===================================================================
--- labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94EventFactHandle.java (rev 0)
+++ labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94EventFactHandle.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -0,0 +1,106 @@
+package org.drools.jsr94.rules;
+
+/*
+ * $Id: Jsr94FactHandle.java,v 1.14 2005/02/04 02:13:38 mproctor Exp $
+ *
+ * Copyright 2003-2004 (C) The Werken Company. All Rights Reserved.
+ *
+ * Redistribution and use of this software and associated documentation
+ * ("Software"), with or without modification, are permitted provided that the
+ * following conditions are met:
+ *
+ * 1. Redistributions of source code must retain copyright statements and
+ * notices. Redistributions must also contain a copy of this document.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The name "drools" must not be used to endorse or promote products derived
+ * from this Software without prior written permission of The Werken Company.
+ * For written permission, please contact bob at werken.com.
+ *
+ * 4. Products derived from this Software may not be called "drools" nor may
+ * "drools" appear in their names without prior written permission of The Werken
+ * Company. "drools" is a registered trademark of The Werken Company.
+ *
+ * 5. Due credit should be given to The Werken Company.
+ * (http://drools.werken.com/).
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE WERKEN COMPANY AND CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE WERKEN COMPANY OR ITS CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+import javax.rules.Handle;
+
+import org.drools.common.EventFactHandle;
+
+/**
+ * The Drools implementation of the <code>Handle</code> interface which provides
+ * a marker interface for Drools-specific object identity mechanism. When using
+ * the <code>StatefulRuleSession</code> objects that are added to rule session
+ * state are identified using a Drools-supplied <code>Handle</code>
+ * implementation.
+ * <p/>
+ * <code>Handle</code>s are used to unambigiously identify objects within the
+ * rule session state and should not suffer many of the object identity issues
+ * that arise when using muliple class loaders, serializing
+ * <code>StatefulRuleSessions</code>, or using <code>Object.equals</code> or
+ * <code>object1 == object2</code> reference equality.
+ */
+public class Jsr94EventFactHandle extends EventFactHandle
+ implements
+ Handle {
+
+ private static final long serialVersionUID = -7338909470403134407L;
+
+ /**
+ * Constructs a new <code>Handle</code>.
+ *
+ * @param id A unique <code>Handle</code> id.
+ * @param recency A value indicating the recency of this <code>Handle</code>
+ * (more recently created <code>Handle</code>s have greater values
+ * than <code>Handle</code>s created further in the past)
+ *
+ * @see org.drools.conflict.RecencyConflictResolver
+ */
+ Jsr94EventFactHandle(final long id,
+ final Object object,
+ final long recency) {
+ super( id,
+ object,
+ recency );
+ }
+
+ /**
+ * Creates a new event fact handle.
+ *
+ * @param id this event fact handle ID
+ * @param object the event object encapsulated in this event fact handle
+ * @param recency the recency of this event fact handle
+ * @param timestamp the timestamp of the occurence of this event
+ * @param duration the duration of this event. May be 0 (zero) in case this is a primitive event.
+ */
+ public Jsr94EventFactHandle(final long id,
+ final Object object,
+ final long recency,
+ final long timestamp,
+ final long duration) {
+ super( id,
+ object,
+ recency,
+ timestamp,
+ duration );
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94FactHandle.java
===================================================================
--- labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94FactHandle.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94FactHandle.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -61,6 +61,9 @@
public class Jsr94FactHandle extends DefaultFactHandle
implements
Handle {
+
+ private static final long serialVersionUID = 7664394510847222696L;
+
/**
* Constructs a new <code>Handle</code>.
*
Modified: labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94FactHandleFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94FactHandleFactory.java 2007-12-10 17:11:42 UTC (rev 17160)
+++ labs/jbossrules/trunk/drools-jsr94/src/main/java/org/drools/jsr94/rules/Jsr94FactHandleFactory.java 2007-12-10 18:37:22 UTC (rev 17161)
@@ -16,10 +16,12 @@
* limitations under the License.
*/
+import org.drools.TemporalSession;
+import org.drools.WorkingMemory;
import org.drools.common.AbstractFactHandleFactory;
-import org.drools.common.DefaultFactHandle;
import org.drools.common.InternalFactHandle;
import org.drools.spi.FactHandleFactory;
+import org.drools.temporal.SessionClock;
/**
* A factory for creating <code>Handle</code>s.
@@ -27,15 +29,29 @@
*/
public final class Jsr94FactHandleFactory extends AbstractFactHandleFactory {
+
+ private static final long serialVersionUID = 4964273923122006124L;
+
/* (non-Javadoc)
* @see org.drools.reteoo.FactHandleFactory#newFactHandle(long)
*/
protected final InternalFactHandle newFactHandle(final long id,
final Object object,
- final long recency) {
- return new Jsr94FactHandle( id,
- object,
- recency );
+ final long recency,
+ final boolean isEvent,
+ final WorkingMemory workingMemory ) {
+ if ( isEvent ) {
+ SessionClock clock = ((TemporalSession) workingMemory).getSessionClock();
+ return new Jsr94EventFactHandle( id,
+ object,
+ recency,
+ clock.getCurrentTime(),
+ 0 ); // for now, we are only handling primitive events
+ } else {
+ return new Jsr94FactHandle( id,
+ object,
+ recency );
+ }
}
/* (non-Javadoc)
More information about the jboss-svn-commits
mailing list