[rules-users] Drools Compile Error

Mark Proctor mproctor at codehaus.org
Wed Feb 27 10:54:31 EST 2008


Narendra Valada wrote:
>
> Hi,
>  
> It appears that nested inner classes are not implemented correctly. I 
> am getting a compile error even when the rule is rewritten to include 
> the import statement :
>  
>
> package com.sample
>
> import com.sample.OuterClass.InnerClass.InnerInnerClass;
>
Yes, most likely we don't have the logic to reflect on inner inner 
classes. See this class to understand how we resolve a string name to a 
Class instance:
http://anonsvn.labs.jboss.com/labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/ClassObjectType.java

Maybe you can make a test case and a patch for us for the 4.0.x branch. 
I guess make it generic enough so that it can work with any numbers of 
nesting. Although I may be concerned on how this might impact reflection 
lookup.
>
>
> rule "Inner Class Test"
>
> when
>
> InnerInnerClass( )
>
> then
>
> System.out.println( "" );
>
>
> end
>
> Narendra
>
>
>  
> On 2/22/08, *Narendra Valada* <narendra.valada at gmail.com 
> <mailto:narendra.valada at gmail.com>> wrote:
>
>     Importing the class was the first thing I tried. That did not work
>     either.
>      
>     Thanks,
>      
>     Narendra
>
>      
>     On Fri, Feb 22, 2008 at 5:36 PM, Mark Proctor
>     <mproctor at codehaus.org <mailto:mproctor at codehaus.org>> wrote:
>
>         you need to import the inner classes, look at the HelloWorld
>         example which uses a nested Message object and see how it's
>         imported. Inner classes definitely work, let me know if
>         inner.inner classes don't.
>
>         Mark
>         Narendra Valada wrote:
>>         Hi,
>>          
>>         I have a rule that looks like this :
>>          
>>
>>         package com.sample
>>
>>
>>         rule "Inner Class Test"
>>
>>         when
>>
>>         com.sample.OuterClass.InnerClass.InnerInnerClass( )
>>
>>         then
>>
>>         System.out.println( "" );
>>
>>
>>         end
>>
>>         The inner class referenced by this rule is defined like this:
>>
>>         package com.sample;
>>
>>         public class OuterClass {
>>
>>            public class InnerClass {
>>
>>               public class InnerInnerClass { }
>>
>>            }
>>
>>         }
>>
>>         I am getting an error "Unable to resolve ObjectType
>>         'com.sample.OuterClass.InnerClass.InnerInnerClass'".
>>
>>         What am I doing wrong? I am using XMLBeans-generated POJOs in
>>         my application and these POJOS contain a lot of deeply nested
>>         inner classes and these are giving me compile-errors in Drools.
>>
>>         Thanks,
>>
>>         Narendra
>>
>>         ------------------------------------------------------------------------
>>
>>         _______________________________________________
>>         rules-users mailing list
>>         rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
>>         https://lists.jboss.org/mailman/listinfo/rules-users
>>           
>
>          
>
>         _______________________________________________
>         rules-users mailing list
>         rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
>         https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080227/15f95f3f/attachment.html 


More information about the rules-users mailing list