00001 package is; 00002 00003 import java.sql.Date; 00004 import java.sql.Time; 00005 import java.lang.*; 00006 import java.util.Hashtable; 00007 00012 public class Ostream 00013 { 00014 private String name; 00015 private String type; 00016 private StringBuffer data; 00017 00018 Ostream( String name, String type ) 00019 { 00020 this.name = name; 00021 this.type = type; 00022 data = new StringBuffer(); 00023 } 00024 00025 String getData( ) 00026 { 00027 return ( "<o c=\"" + type + "\" i=\"" + name + "\">\n" + data + "</o>" ); 00028 } 00029 00035 public Ostream put( boolean v ) 00036 { 00037 data.append("<a t=\"bool\">" + ( v == true ? "1" : "0" ) + "</a>\n"); 00038 return this; 00039 } 00046 public Ostream put( byte v, boolean sign ) 00047 { 00048 data.append("<a t=\"" + (sign ? "s8" : "u8") + "\">" + v + "</a>\n"); 00049 return this; 00050 } 00051 00058 public Ostream put( short v, boolean sign ) 00059 { 00060 data.append("<a t=\"" + (sign ? "s16" : "u16") + "\">" + v + "</a>\n"); 00061 return this; 00062 } 00063 00070 public Ostream put( int v, boolean sign ) 00071 { 00072 data.append("<a t=\"" + (sign ? "s32" : "u32") + "\">" + v + "</a>\n"); 00073 return this; 00074 } 00075 00081 public Ostream put( float v ) 00082 { 00083 data.append("<a t=\"float\">" + v + "</a>\n"); 00084 return this; 00085 } 00086 00092 public Ostream put( double v ) 00093 { 00094 data.append("<a t=\"double\">" + v + "</a>\n"); 00095 return this; 00096 } 00097 00103 public Ostream put( String v ) 00104 { 00105 data.append("<a t=\"string\">" + ( v == null ? "" : Util.validate( v ) ) + "</a>\n"); 00106 return this; 00107 } 00108 00114 public Ostream put( Date v ) 00115 { 00116 data.append("<a t=\"date\">" + ( v == null ? 0 : v.getTime()/1000 ) + "</a>\n"); 00117 return this; 00118 } 00119 00125 public Ostream put( Time v ) 00126 { 00127 data.append("<a t=\"time\">" + ( v == null ? 0 : v.getTime()/1000 ) + "</a>\n"); 00128 return this; 00129 } 00130 00131 00137 public Ostream put( boolean[] v ) 00138 { 00139 int length = ( v == null ? 0 : v.length ); 00140 data.append("<a t=\"bool\" s=\"" + length + "\">"); 00141 for( int i = 0; i < length; i++ ) 00142 { 00143 data.append(v[i] == true ? "1 " : "0 "); 00144 } 00145 data.append("</a>\n"); 00146 return this; 00147 } 00148 00155 public Ostream put( byte[] v, boolean sign ) 00156 { 00157 int length = ( v == null ? 0 : v.length ); 00158 data.append("<a t=\"" + (sign ? "s8" : "u8") + "\" s=\"" + length + "\">"); 00159 for( int i = 0; i < length; i++ ) 00160 { 00161 data.append(v[i] + " "); 00162 } 00163 data.append("</a>\n"); 00164 return this; 00165 } 00166 00173 public Ostream put( short[] v, boolean sign ) 00174 { 00175 int length = ( v == null ? 0 : v.length ); 00176 data.append("<a t=\"" + (sign ? "s16" : "u16") + "\" s=\"" + length + "\">"); 00177 for( int i = 0; i < length; i++ ) 00178 { 00179 data.append(v[i] + " "); 00180 } 00181 data.append("</a>\n"); 00182 return this; 00183 } 00184 00191 public Ostream put( int[] v, boolean sign ) 00192 { 00193 int length = ( v == null ? 0 : v.length ); 00194 data.append("<a t=\"" + (sign ? "s32" : "u32") + "\" s=\"" + length + "\">"); 00195 for( int i = 0; i < length; i++ ) 00196 { 00197 data.append(v[i] + " "); 00198 } 00199 data.append("</a>\n"); 00200 return this; 00201 } 00202 00208 public Ostream put( float[] v ) 00209 { 00210 int length = ( v == null ? 0 : v.length ); 00211 data.append("<a t=\"float\" s=\"" + length + "\">"); 00212 for( int i = 0; i < length; i++ ) 00213 { 00214 data.append(v[i] + " "); 00215 } 00216 data.append("</a>\n"); 00217 return this; 00218 } 00219 00225 public Ostream put( double[] v ) 00226 { 00227 int length = ( v == null ? 0 : v.length ); 00228 data.append("<a t=\"double\" s=\"" + length + "\">"); 00229 for( int i = 0; i < length; i++ ) 00230 { 00231 data.append(v[i] + " "); 00232 } 00233 data.append("</a>\n"); 00234 return this; 00235 } 00236 00242 public Ostream put( String[] v ) 00243 { 00244 int length = ( v == null ? 0 : v.length ); 00245 data.append("<a t=\"string\" s=\"" + length + "\">"); 00246 for( int i = 0; i < length; i++ ) 00247 { 00248 data.append("\"" + Util.validate( v[i] ) + "\" "); 00249 } 00250 data.append("</a>\n"); 00251 return this; 00252 } 00253 00259 public Ostream put( Date[] v ) 00260 { 00261 int length = ( v == null ? 0 : v.length ); 00262 data.append("<a t=\"date\" s=\"" + length + "\">"); 00263 for( int i = 0; i < length; i++ ) 00264 { 00265 data.append(v[i].getTime()/1000 + " "); 00266 } 00267 data.append("</a>\n"); 00268 return this; 00269 } 00270 00276 public Ostream put( Time[] v ) 00277 { 00278 int length = ( v == null ? 0 : v.length ); 00279 data.append("<a t=\"time\" s=\"" + length + "\">"); 00280 for( int i = 0; i < length; i++ ) 00281 { 00282 data.append(v[i].getTime()/1000 + " "); 00283 } 00284 data.append("</a>\n"); 00285 return this; 00286 } 00287 }