[jboss-jira] [JBoss JIRA] (DROOLS-1318) Using java enum when setting a variable of type enum does not work
Mario Fusco (JIRA)
issues at jboss.org
Wed Oct 5 12:25:00 EDT 2016
[ https://issues.jboss.org/browse/DROOLS-1318?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13303108#comment-13303108 ]
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)
More information about the jboss-jira
mailing list