An example in Mina is as follows:
@ Override public void filterwrite (nextfilter, iosession session, writerequest) throws exception {Object Data = writerequest. getmessage (); If (Data instanceof iobuffer) {write (Session, (iobuffer) data);} else {Throw new illegalargumentexception ("this filter shocould only buffer iobuffer objects ");} // follow the usual solution. // Try {// iobuffer DATA = (iobuffer) writerequest. getmessage (); // write (Session, data); //} catch (classcastexception E) {// throw new illegalargumentexception (// "this filter shocould only buffer iobuffer objects ");//}}
Private void write (iosession session, iobuffer data) {iobuffer DEST = buffersmap. putifabsent (Session, New iobufferlazyinitializer (buffersize); write (Session, Data, DEST );}
More. See http://www.blogjava.net/stone2083/archive/2010/07/09/325649.html