[
https://issues.jboss.org/browse/DROOLS-1318?page=com.atlassian.jira.plugi...
]
Mario Fusco commented on DROOLS-1318:
-------------------------------------
I added an enum Type to our Address test pojo and used it in a test case as it follows
{code}
@Test
public void testMvelWithEnum() {
String drl =
"import " + Address.class.getCanonicalName() + ";\n"
+
"rule R dialect \"mvel\" when\n" +
" $a : Address(type == Address.Type.OFFICE)\n" +
"then\n" +
" $a.setType(Address.Type.HOME);\n" +
" update($a);\n" +
"end";
KieSession kieSession = new KieHelper().addContent(drl,
ResourceType.DRL).build().newKieSession();
Address address = new Address();
address.setType( Address.Type.OFFICE );
kieSession.insert( address );
kieSession.fireAllRules();
assertEquals(Address.Type.HOME, address.getType());
}
{code}
As you can see I'm using the enum in both LHS and RHS and it works as expected.
[~nheron] Please provide a reproducer for this issue.
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)