If I have <br>   class Type {<br>      int field;<br>      setField( int f ){ field = f; }<br>   }<br><br>and do<br><br>   modify( $type ){ setField( 42 ) }<br><br>where is there a &quot;nested accessor&quot;?<br><br>-W<br>
<br><div class="gmail_quote">On 23 June 2011 10:24, Mark Proctor <span dir="ltr">&lt;<a href="mailto:mproctor@codehaus.org">mproctor@codehaus.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<u></u>

  
    
  
  <div text="#000000" bgcolor="#ffffff"><div class="im">
    On 23/06/2011 07:03, Wolfgang Laun wrote:
    <blockquote type="cite">Eeek!<br>
      <br>
      Assume this: A is a field of B is a field of C is a field of D is
      a... <br>
      <br>
      Object references remain the same, in all objects; I simply modify
      A, and<br>
      &quot;when you change [A] you are also changing [B], so I must notify
      the<br>
      engine for [B]&quot; but that&#39;s a field of C...  D... E... and so on,
      until<br>
      &#39;I&#39; for infinity?!<br>
      <br>
      <u><b><i>It&#39;s just a change in some fact object&#39;s hashCode that
            causes this problem.</i></b></u><br>
    </blockquote></div>
    If you don&#39;t want any indexing in your rule engine. If you want
    indexing, you have to notify the engine. Changes to nested accessors
    have always been invisible to the engine. If a nested access
    changes, you must notify the engine of the root fact.<br><font color="#888888">
    <br>
    Mark</font><div><div></div><div class="h5"><br>
    <blockquote type="cite">
      <br>
      -W<br>
      <br>
      <br>
      <br>
      On 22 June 2011 22:37, Mark Proctor &lt;<a href="mailto:mproctor@codehaus.org" target="_blank">mproctor@codehaus.org</a>&gt;
      wrote:<br>
      &gt; As One is a field of Two. When you change One you are also
      changing Two, so<br>
      &gt; you most notify the engine for Two too.<br>
      &gt;<br>
      &gt; MArk<br>
      &gt; On 22/06/2011 14:37, Wolfgang Laun wrote:<br>
      &gt;<br>
      &gt; To avoid misunderstandings: yes, equals() is written
      according to hashCode,<br>
      &gt; i.e., according to the usual Java conventions.<br>
      &gt;<br>
      &gt; If<br>
      &gt;<br>
      &gt;    - an object of class Two contains a member of class One,
      and<br>
      &gt;    - one object Two and one object One are facts, and<br>
      &gt;    - a rule modifies One, changing its hashCode<br>
      &gt;<br>
      &gt; then<br>
      &gt;<br>
      &gt;    another rule containing the patterns<br>
      &gt;    $one: One()<br>
      &gt;    $two: Two( $x: one == $one )<br>
      &gt;<br>
      &gt; does NOT fire (any more).<br>
      &gt;<br>
      &gt; If you use the constraint<br>
      &gt;    one == $one || != $one<br>
      &gt; the rule will fire, and you can observe that hashCode results
      for $one and<br>
      &gt; $x are the same and that $one.equals( $x ) returns true.<br>
      &gt;<br>
      &gt; Reproduced using 5.1.1 and 5.2.x<br>
      &gt;<br>
      &gt; -W<br>
      &gt;<br>
      &gt;<br>
      &gt;<br>
      &gt;<br>
      &gt; _______________________________________________<br>
      &gt; rules-dev mailing list<br>
      &gt; <a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a><br>
      &gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
      &gt;<br>
      &gt;<br>
      &gt; _______________________________________________<br>
      &gt; rules-dev mailing list<br>
      &gt; <a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a><br>
      &gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
      &gt;<br>
      &gt;<br>
      <br>
      <pre><fieldset></fieldset>
_______________________________________________
rules-dev mailing list
<a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a>
</pre>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
rules-dev mailing list<br>
<a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
<br></blockquote></div><br>