1 17 18 package org.apache.james.imapserver.commands; 19 20 import java.util.StringTokenizer ; 21 import java.util.ArrayList ; 22 import java.util.List ; 23 24 final class ListArgument implements ImapArgument 25 { 26 private String type; 27 28 public ListArgument( String type ) 29 { 30 this.type = type; 31 } 32 33 public Object parse( StringTokenizer tokens ) throws Exception 34 { 35 String attr = tokens.nextToken(); 37 List dataNames = new ArrayList (); 38 39 if ( !attr.startsWith( "(" ) ) { 40 throw new Exception ( "Missing '(': " ); 41 } 42 else if ( attr.endsWith( ")" ) ) { dataNames.add( attr.substring( 1, attr.length() - 1 ) ); 44 } 45 else { dataNames.add( attr.substring( 1 ).trim() ); 47 while ( tokens.hasMoreTokens() ) { 48 attr = tokens.nextToken(); 49 if ( attr.endsWith( ")" ) ) { 50 dataNames.add( attr.substring( 0, attr.length() - 1 ) ); 51 } 52 else { 53 dataNames.add( attr ); 54 } 55 } 56 } 57 58 return dataNames; 59 } 60 61 public String format() 62 { 63 return "( <" + this.type + ">+ )"; 64 } 65 } 66 | Popular Tags |