session.add("<I>Orange = Directories; Yellow = Objects; Pink = Attributes</I>");
    private void processSearchFromPOST( String post, PlanServiceContext psc,                      QueryObject qObject, YPDemoSession session, PrintStream out)    {          System.out.println("[PSP_YPDemo.processSearchFromPOST()] Entered.");          String decodedpost = URLDecoder.decode(post);          System.out.println("DECODED POST="+  decodedpost);          NamingService nservice = psc.getServerPlugInSupport().getNamingService();          //---------------------------------------------          String tag3 = qObject.GET_ALL;          int ind3 = decodedpost.indexOf(tag3);          if( ind3 > -1) {              //qObject.allRoles=true;              session.addHeader("List everything (JNDI directories and contents).");              session.add( YPDemoJNDI.describeAllDirContexts( nservice ) );              session.doPrepend();          }          else          {             //             // Parse and interpet return checked fields...             //             Hashtable nameAttrs = new Hashtable(); // Values are Vectors of attributes associated with named obj             int idx0 =0;             int idx1 =0;             int idx2 =0;             while( true ) {                 idx0 = decodedpost.indexOf("{", idx0);                 if(idx0 > -1) idx1 = decodedpost.indexOf("::",idx0);                 else break;                 if(idx1 > -1) idx2 = decodedpost.indexOf("}",idx0);                 else break;                 String name ="";                 String attribute ="";                 if( (idx0 > -1) && (idx1 > -1) ) {                     name = decodedpost.substring(idx0+1,idx1);                 } else break;                 if( (idx1 > -1) && (idx2 > -1) ) {                     attribute = decodedpost.substring(idx1+2,idx2);                 } else break;                 System.out.println("ATTRIBUTE PARSER.  name="  + name + ", attribute=" + attribute);                 String searchResults = YPDemoJNDI.searchAttribute(name, attribute, nservice );                 session.addHeader("List objects found by attribute at named context (Search): context=" + name  + ", attribute=" + attribute );                 session.add( searchResults );                 session.doPrepend();                 //                 // Add values to nameAttrs Hashtable                 //                 if( nameAttrs.get(name) == null) nameAttrs.put(name, new Vector());                 Vector v = (Vector)nameAttrs.get(name);                 v.add(attribute);                 idx0=idx2+2;             }// end while          }    }