1 17 18 package org.apache.james.imapserver.commands; 19 20 import org.apache.james.imapserver.*; 21 import org.apache.james.util.Assert; 22 23 import java.util.StringTokenizer ; 24 import java.util.List ; 25 26 31 class UidCommand implements ImapCommand 32 { 33 public boolean validForState( ImapSessionState state ) 34 { 35 return ( state == ImapSessionState.SELECTED ); 36 } 37 38 public boolean process( ImapRequest request, ImapSession session ) 39 { 40 StringTokenizer commandLine = request.getCommandLine(); 42 int arguments = commandLine.countTokens(); 43 String command = request.getCommand(); 45 46 StringTokenizer txt = new java.util.StringTokenizer (request.getCommandRaw()); 47 System.out.println("UidCommand.process: #args="+txt.countTokens()); 48 while (txt.hasMoreTokens()) { 49 System.out.println("UidCommand.process: arg='"+txt.nextToken()+"'"); 50 } 51 if ( arguments < 3 ) { 52 session.badResponse( "rawcommand='"+request.getCommandRaw()+"' #args="+request.arguments()+" Command should be <tag> <UID> <command> <command parameters>" ); 53 return true; 54 } 55 String uidCommand = commandLine.nextToken(); 56 System.out.println("UidCommand.uidCommand="+uidCommand); 57 System.out.println("UidCommand.session="+session.getClass().getName()); 58 ImapCommand cmd = session.getImapCommand( uidCommand ); 59 System.out.println("UidCommand.cmd="+cmd); 60 System.out.println("UidCommand.cmd="+cmd.getClass().getName()); 61 if ( cmd instanceof CommandFetch || cmd instanceof CommandStore || cmd instanceof CopyCommand) { 62 request.setCommand( uidCommand ); 64 ((ImapRequestImpl)request).setUseUIDs( true ); 65 cmd.process( request, session ); 66 } else { 67 session.badResponse( "Invalid UID secondary command." ); 68 } 69 return true; 70 } 71 } 72 | Popular Tags |