1 package prefuse.data.parser; 2 3 import java.util.StringTokenizer ; 4 5 12 public class IntArrayParser implements DataParser { 13 14 18 public Class getType() { 19 return int[].class; 20 } 21 22 25 public String format(Object value) { 26 if ( value == null ) return null; 27 if ( !(value instanceof int[]) ) 28 throw new IllegalArgumentException ( 29 "This class can only format Objects of type int[]."); 30 31 int[] values = (int[])value; 32 StringBuffer sbuf = new StringBuffer (); 33 sbuf.append('['); 34 for ( int i=0; i<values.length; ++i ) { 35 if ( i > 0 ) sbuf.append(", "); 36 sbuf.append(values[i]); 37 } 38 sbuf.append(']'); 39 return sbuf.toString(); 40 } 41 42 45 public boolean canParse(String text) { 46 try { 47 StringTokenizer st = new StringTokenizer (text, "\"[](){}, "); 48 while ( st.hasMoreTokens() ) { 49 Integer.parseInt(st.nextToken()); 50 } 51 return true; 52 } catch ( NumberFormatException e ) { 53 return false; 54 } 55 } 56 57 63 public Object parse(String text) throws DataParseException { 64 try { 65 StringTokenizer st = new StringTokenizer (text, "\"[](){}, "); 66 int[] array = new int[st.countTokens()]; 67 for ( int i=0; st.hasMoreTokens(); ++i ) { 68 String tok = st.nextToken(); 69 array[i] = Integer.parseInt(tok); 70 } 71 return array; 72 } catch ( NumberFormatException e ) { 73 throw new DataParseException(e); 74 } 75 } 76 77 } | Popular Tags |