[
https://issues.jboss.org/browse/DROOLS-1318?page=com.atlassian.jira.plugi...
]
Mario Fusco commented on DROOLS-1318:
-------------------------------------
[~nheron] I also tried to define an enum in a top level class (as you can see in the
following test case) but it still works for me.
{code}
@Test
public void testMvelWithEnum() {
String drl =
"import " + Address.class.getCanonicalName() + ";\n"
+
"import " + AddressType.class.getCanonicalName() +
";\n" +
"rule R dialect \"mvel\" when\n" +
" $a : Address(addressType == AddressType.OFFICE)\n" +
"then\n" +
" $a.setAddressType(AddressType.HOME);\n" +
" update($a);\n" +
"end";
KieSession kieSession = new KieHelper().addContent(drl,
ResourceType.DRL).build().newKieSession();
Address address = new Address();
address.setAddressType( AddressType.OFFICE );
kieSession.insert( address );
kieSession.fireAllRules();
assertEquals(AddressType.HOME, address.getAddressType());
}
{code}
Using java enum when setting a variable of type enum does not work
------------------------------------------------------------------
Key: DROOLS-1318
URL:
https://issues.jboss.org/browse/DROOLS-1318
Project: Drools
Issue Type: Bug
Affects Versions: 6.4.0.Final
Reporter: Nicolas Heron
Assignee: Nicolas Heron
Labels: OnBoarding
In project
https://github.com/chtiJBUG/onboarding-nautic-project
when running the TestBirthday reduction
TestBirthdayReduction : [Error: could not access/write property (seasonType) in:
org.chtijbug.example.swimmingpool.Period] [Near :
the source code of the rule is
package org.training.leisure.swimmingpool;
import java.lang.Number;
import org.chtijbug.example.swimmingpool.CalculatedAttribute;
import org.chtijbug.example.swimmingpool.Price;
import org.chtijbug.example.swimmingpool.Person;
import org.chtijbug.example.swimmingpool.Period;
import org.chtijbug.example.swimmingpool.PriceType;
rule "BirthdayReduction"
dialect "mvel"
ruleflow-group "reduction"
when
ccat : CalculatedAttribute( key == "IsPersonBirthday" , stringValue ==
"true" )
pper : Person( calculatedAttributeList contains ccat , sprice : standardPrice > 0.0B
)
not (pprice : Price( description == "BirthdayReduction" ) and Person(
priceList contains pprice , this == pper ))
Period( seasonType == SeasonType.day )
then
Price nprice = new Price();
nprice.setDescription( "BirthdayReduction" );
nprice.setAmount( sprice.divide(new
BigDecimal("10.0"),BigDecimal.ROUND_HALF_UP) );
nprice.setPriceType( PriceType.promotion );
insert( nprice );
pper.addPrice( nprice );
modify( pper ) {
setPriceList( pper.getPriceList() )
}
end
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)