<div>Hi Steffi & J-Y,</div><div><br></div><div>> if ( img instanceOf ImagePlusImg )</div><div><br></div>I think using instanceof in this way is quite evil, and should be avoided whenever possible. It is something I very much want to avoid in the core ImgLib2 and ImageJ2 code, because it prohibits extensibility. Better is to put the common functionality into an interface method declaration and then implement it differently in the different subclasses.<div>

<br></div><div>That said, how to avoid writing code like this depends on the situation. We'd have to look over the various places in code that it is currently happening...<br><div><div><br></div><div><div>> 1) break it and maybe it is just fine</div>

<div>> 2) make a wrapImgPlus method</div><div>> Maybe 1) is the better way to go, I just wanted to bring up potential implications ....</div><div><br></div><div>In this case, given that it would be easy to simply add the wrapImgPlus methods, that may be a safer way to go. Anyone else have an opinion?</div>

<div><br></div><div>Regards,</div><div>Curtis</div><div><br></div><br><div class="gmail_quote">On Thu, Jul 12, 2012 at 4:19 PM, Stephan Preibisch <span dir="ltr"><<a href="mailto:preibisch@mpi-cbg.de" target="_blank">preibisch@mpi-cbg.de</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>We have two options:</div><div><br></div><div>1) break it and maybe it is just fine</div>

<div>2) make a second method like</div><div><br></div><div>public ImgPlus< T > wrapImgPlus( final ImagePlus imp )</div><div>{</div><div><span style="white-space:pre-wrap">   </span>Img< T > img = wrap( imp );</div>

<div><span style="white-space:pre-wrap">  </span>ImgPlus< T > imgplus = new ImgPlus( img );</div><div><br></div><div><span style="white-space:pre-wrap">        </span>imgplus.setCalibration( imp.getCal ... );</div><div><span style="white-space:pre-wrap">        </span>imgplus.setName( imp.getTitle() );</div>

<div><br></div><div><span style="white-space:pre-wrap"> </span>return imgplus;</div><div>}</div><div><br></div><div>Maybe 1) is the better way to go, I just wanted to bring up potential implications ....</div><div><br></div>

<div><br></div><br><div><div><div class="h5"><div>On Jul 12, 2012, at 17:14 , Jean-Yves Tinevez wrote:</div><br></div></div><blockquote type="cite"><div><div class="h5">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>On 12-Jul-12 23:05, Stephan Preibisch
      wrote:<br>
    </div>
    <blockquote type="cite">In principle, I agree. However it might break some
      code in a bad way. We used several times constructs like
      <div><br>
      </div>
      <div>Img< T > img;</div>
      <div><br>
      </div>
      <div>if ( img instanceOf ImagePlusImg )</div>
      <div>{</div>
      <div><span style="white-space:pre-wrap"> </span>//
        get the underlying instance (which is especially true after
        wrapping)</div>
      <div><span style="white-space:pre-wrap"> </span>ImagePlus
        imp = ((ImagePlusImg)img).getImagePlus();</div>
      <div><span style="white-space:pre-wrap"> </span>....</div>
      <div><br>
      </div>
      <div><span style="white-space:pre-wrap"> </span>//
        or do something else where you test instanceof</div>
      <div>}<br>
        <div><br>
        </div>
        <div>which would suddenly fail because ImgPlus is an Img, but
          only HAS for example an ImagePlusImg...</div>
        <div><br>
        </div>
        <div>What do you think?</div>
      </div>
    </blockquote>
    <br>
    Bummer.<br>
    <br>
    How do we get the ImagePlusAdapter to return an Img that captures
    calibration as well then?<br>
  </div><div><br></div></div></div><div class="im">

-- <br>
Please avoid top-posting, and please make sure to reply-to-all!<br>
 <br>
Mailing list web interface: <a href="http://groups.google.com/group/fiji-devel" target="_blank">http://groups.google.com/group/fiji-devel</a><br>
</div></blockquote></div><br></div><div class="HOEnZb"><div class="h5">

<p></p>

-- <br>
Please avoid top-posting, and please make sure to reply-to-all!<br>
 <br>
Mailing list web interface: <a href="http://groups.google.com/group/fiji-devel" target="_blank">http://groups.google.com/group/fiji-devel</a><br>
</div></div></blockquote></div><br></div></div></div>