KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gnu > text > CompoundFormat


1 package gnu.text;
2 import java.text.Format JavaDoc;
3 import java.text.FieldPosition JavaDoc;
4 import java.io.Writer JavaDoc;
5
6 public class CompoundFormat extends ReportFormat
7 {
8   protected int length;
9   protected Format JavaDoc[] formats;
10
11   public CompoundFormat(Format JavaDoc[] formats, int length)
12   {
13     this.formats = formats;
14     this.length = length;
15   }
16
17   public CompoundFormat(Format JavaDoc[] formats)
18   {
19     this.formats = formats;
20     this.length = formats.length;
21   }
22
23   public int format(Object JavaDoc[] args, int start, Writer JavaDoc dst, FieldPosition JavaDoc fpos)
24     throws java.io.IOException JavaDoc
25   {
26     for (int i = 0; i < length; i++)
27       {
28     Format JavaDoc fmt = formats[i];
29     if (fmt instanceof ReportFormat)
30       {
31         start = ((ReportFormat) fmt).format(args, start, dst, fpos);
32         if (start < 0)
33           return start;
34       }
35     else if (start >= args.length)
36       dst.write("#<missing format argument>");
37     else
38       {
39         StringBuffer JavaDoc sbuf = new StringBuffer JavaDoc();
40         fmt.format(args[start], sbuf, fpos);
41         dst.write(sbuf.toString());
42         start++;
43       }
44       }
45     return start;
46   }
47
48   public final int format(Object JavaDoc[] args, int start,
49               StringBuffer JavaDoc sbuf, FieldPosition JavaDoc fpos)
50   {
51     for (int i = 0; i < length; i++)
52       {
53     Format JavaDoc fmt = formats[i];
54     if (fmt instanceof ReportFormat)
55       {
56         start = ((ReportFormat) fmt).format(args, start, sbuf, fpos);
57         if (start < 0)
58           return start;
59       }
60     else
61       {
62         fmt.format(args[start], sbuf, fpos);
63         start++;
64       }
65       }
66     return start;
67   }
68
69   public Object JavaDoc parseObject(String JavaDoc text, java.text.ParsePosition JavaDoc status)
70   {
71     throw new Error JavaDoc("CompoundFormat.parseObject - not implemented");
72   }
73
74   public String JavaDoc toString()
75   {
76     StringBuffer JavaDoc sbuf = new StringBuffer JavaDoc();
77     sbuf.append("CompoundFormat[");
78     for (int i = 0; i < length; i++)
79       {
80     if (i > 0)
81       sbuf.append(", ");
82     sbuf.append(formats[i]);
83       }
84     sbuf.append("]");
85     return sbuf.toString();
86   }
87
88 }
89
Popular Tags