<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Narendra Valada wrote:
<blockquote
 cite="mid:aea77c910802270704y349479e7m241561af34130383@mail.gmail.com"
 type="cite">
  <div><br>
Hi,</div>
  <div>&nbsp;</div>
  <div>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 :</div>
  <div>&nbsp;</div>
  <p>package com.sample</p>
  <p>import com.sample.OuterClass.InnerClass.InnerInnerClass;</p>
</blockquote>
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:<br>
<a class="moz-txt-link-freetext" href="http://anonsvn.labs.jboss.com/labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/ClassObjectType.java">http://anonsvn.labs.jboss.com/labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/base/ClassObjectType.java</a><br>
<br>
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.<br>
<blockquote
 cite="mid:aea77c910802270704y349479e7m241561af34130383@mail.gmail.com"
 type="cite">
  <p><br>
rule "Inner Class Test"</p>
  <p>when</p>
  <p>InnerInnerClass( )</p>
  <p>then</p>
  <p>System.out.println( "" ); </p>
  <p><br>
end<br>
  </p>
  <p>Narendra</p>
  <div><br>
&nbsp;</div>
  <div><span class="gmail_quote">On 2/22/08, <b
 class="gmail_sendername">Narendra Valada</b> &lt;<a
 moz-do-not-send="true" href="mailto:narendra.valada@gmail.com">narendra.valada@gmail.com</a>&gt;
wrote:</span>
  <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;">
    <div>Importing the class was the first thing I tried. That did not
work either.</div>
    <div>&nbsp;</div>
    <div>Thanks,</div>
    <div>&nbsp;</div>
    <span class="sg">
    <div>Narendra<br>
    <br>
&nbsp;</div>
    </span>
    <div><span class="e" id="q_118442891e0c740c_2">
    <div class="gmail_quote">On Fri, Feb 22, 2008 at 5:36 PM, Mark
Proctor &lt;<a moz-do-not-send="true"
 onclick="return top.js.OpenExtLink(window,event,this)"
 href="mailto:mproctor@codehaus.org" target="_blank">mproctor@codehaus.org</a>&gt;
wrote:<br>
    <blockquote class="gmail_quote"
 style="border-left: 1px solid rgb(204, 204, 204); margin: 0px 0px 0px 0.8ex; padding-left: 1ex;">
      <div bgcolor="#ffffff" text="#000000">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.<br>
      <br>
Mark<br>
Narendra Valada wrote:
      <blockquote type="cite">
        <div>
        <div>
        <div>Hi,</div>
        <div>&nbsp;</div>
        <div>I have a rule that looks like this :</div>
        <div>&nbsp;</div>
        <div>
        <p>package com.sample</p>
        <p><br>
rule "Inner Class Test"</p>
        <p>when</p>
        <p>com.sample.OuterClass.InnerClass.InnerInnerClass( )</p>
        <p>then</p>
        <p>System.out.println( "" ); </p>
        <p><br>
end<br>
        </p>
        <p>The inner class referenced by this rule is defined like this:</p>
        <p>package com.sample;</p>
        <p>public class OuterClass {</p>
        <p>&nbsp;&nbsp; public class InnerClass {</p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public class InnerInnerClass { }</p>
        <p>&nbsp;&nbsp; }</p>
        <p>}</p>
        <p>I am getting an error "Unable to resolve ObjectType
'com.sample.OuterClass.InnerClass.InnerInnerClass'".</p>
        <p>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.</p>
        <p>Thanks,</p>
        <p>Narendra<br>
        </p>
        </div>
        </div>
        </div>
        <pre><hr size="4" width="90%">
_______________________________________________
rules-users mailing list
<a moz-do-not-send="true"
 onclick="return top.js.OpenExtLink(window,event,this)"
 href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a moz-do-not-send="true"
 onclick="return top.js.OpenExtLink(window,event,this)"
 href="https://lists.jboss.org/mailman/listinfo/rules-users"
 target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a>
  </pre>
      </blockquote>
      <br>
&nbsp;</div>
      <br>
_______________________________________________<br>
rules-users mailing list<br>
      <a moz-do-not-send="true"
 onclick="return top.js.OpenExtLink(window,event,this)"
 href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
      <a moz-do-not-send="true"
 onclick="return top.js.OpenExtLink(window,event,this)"
 href="https://lists.jboss.org/mailman/listinfo/rules-users"
 target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
      <br>
    </blockquote>
    </div>
    <br>
    </span></div>
  </blockquote>
  </div>
  <br>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
  </pre>
</blockquote>
<br>
</body>
</html>