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 }