source: 3thparty/jupload/src/main/java/wjhk/jupload2/upload/helper/ByteArrayEncoder.java @ 3951

Revision 3951, 6.8 KB checked in by alexandrecorreia, 13 years ago (diff)

Ticket #1709 - Adicao de codigo fonte java do componente jupload

Line 
1package wjhk.jupload2.upload.helper;
2
3import wjhk.jupload2.context.JUploadContext;
4import wjhk.jupload2.exception.JUploadIOException;
5import wjhk.jupload2.upload.FileUploadThreadHTTP;
6
7/**
8 * This interface contains all technical methods to encode data, into a given
9 * character encoding. This is especially useful to encode the HTTP output to
10 * the server. <BR>
11 * <BR>
12 * Each appendXxxx method returns the current instance. This allows easy
13 * concatanation of calls to this class. For instance:<BR>
14 *
15 * <PRE>
16 * bae.append(a).appendFileProperty(b, c).append(d);
17 * </PRE>
18 *
19 * @author etienne_sf
20 * @see FileUploadThreadHTTP
21 */
22public interface ByteArrayEncoder {
23
24    /**
25     * Closes the encoding writer, and prepares the encoded length and byte
26     * array. This method must be called before call to
27     * {@link #getEncodedLength()} and {@link #getEncodedByteArray()}.
28     * <B>Note:</B> After a call to this method, you can not append any new data
29     * to the encoder.
30     *
31     * @throws JUploadIOException Encapsulates any IO Exception
32     */
33    public void close() throws JUploadIOException;
34
35    /**
36     * Append a string, to be encoded at the current end of the byte array.
37     *
38     * @param str The string to append and encode.
39     * @return Return the current ByteArrayEncoder, to allow chained call (see
40     *         explanation, here above).
41     * @throws JUploadIOException
42     */
43    public ByteArrayEncoder append(String str) throws JUploadIOException;
44
45    /**
46     * Append a byte, to be encoded at the current end of the byte array. he
47     * byte to be written is the eight low-order bits of the argument b. The 24
48     * high-order bits of b are ignored.
49     *
50     * @param b Writes the specified byte to this output stream.
51     * @return Return the current ByteArrayEncoder, to allow chained call (see
52     *         explanation, here above).
53     * @throws JUploadIOException
54     */
55    public ByteArrayEncoder append(int b) throws JUploadIOException;
56
57    /**
58     * Append a stream, to be encoded at the current end of the byte array.
59     *
60     * @param b
61     * @return Return the current ByteArrayEncoder, to allow chained call (see
62     *         explanation, here above).
63     * @throws JUploadIOException
64     */
65    public ByteArrayEncoder append(byte[] b) throws JUploadIOException;
66
67    /**
68     * Append a property, name and value. It will be encoded at the current end
69     * of the byte array.<BR>
70     * Note: After the last call to appendTextProperty, you should call
71     * {@link #appendEndPropertyList()}, to properly finish the property list.
72     * In HTTP mode, it will add the last boundary, at a specific format.
73     *
74     * @param name Name of the property to be added
75     * @param value Value of this property for the current file. It's up to the
76     *            caller to call this method at the right time.
77     * @param index Index of the file concerned by this value. -1 if this is a
78     *            global parameter.
79     * @return Return the current ByteArrayEncoder, to allow chained call (see
80     *         explanation, here above).
81     * @throws JUploadIOException
82     * @see #appendEndPropertyList()
83     */
84    public ByteArrayEncoder appendTextProperty(String name, String value,
85            int index) throws JUploadIOException;
86
87    /**
88     * Finish a property list. In HTTP mode, the last boundary for the
89     * form/multipart content is added. After a call to this method, no more
90     * property may be written. If several ByteEncoder are used, it's up to the
91     * called to call this mehod only once, for the ByteEncoder that will be
92     * written last on the request.
93     *
94     * @return Return the current ByteArrayEncoder, to allow chained call (see
95     *         explanation, here above).
96     * @throws JUploadIOException
97     */
98    public ByteArrayEncoder appendEndPropertyList() throws JUploadIOException;
99
100    /**
101     * Add to the current encoder all properties contained in the given HTML
102     * form. There is no index for the current file: all the form parameters are
103     * global parameters (index will be set to -1 when calling
104     * {@link #appendTextProperty(String, String, int)}.
105     *
106     * @param formname The HTML form name. This method will get the data from
107     *            this form, by using the {@link JUploadContext#getApplet()}
108     *            method.
109     * @return Return the current ByteArrayEncoder, to allow chained call (see
110     *         explanation, here above).
111     * @throws JUploadIOException
112     */
113    public ByteArrayEncoder appendFormVariables(String formname)
114            throws JUploadIOException;
115
116    /**
117     * Append a string, to be encoded at the current end of the byte array.
118     *
119     * @param bae The ByteArrayEncoder whose encoding result should be appended
120     *            to the current encoder. bae must be closed, before being
121     *            appended.
122     * @return Return the current ByteArrayEncoder, to allow chained call (see
123     *         explanation, here above).
124     * @throws JUploadIOException This exception is thrown when this method is
125     *             called on a non-closed encoder.
126     */
127    public ByteArrayEncoder append(ByteArrayEncoder bae)
128            throws JUploadIOException;
129
130    /**
131     * @return the closed
132     */
133    public boolean isClosed();
134
135    /**
136     * Gets the HTTP boundary, that separate the form variables.
137     *
138     * @return The HTTP boundary, that was generated when the instance was
139     *         created.
140     */
141    public String getBoundary();
142
143    /**
144     * @return the encoding
145     */
146    public String getEncoding();
147
148    /**
149     * Get the length of the encoded result. Can be called only once the encoder
150     * has been closed.
151     *
152     * @return the encodedLength
153     * @throws JUploadIOException This exception is thrown when this method is
154     *             called on a non-closed encoder.
155     */
156    public int getEncodedLength() throws JUploadIOException;
157
158    /**
159     * Get the encoded result. Can be called only once the encoder has been
160     * closed.
161     *
162     * @return the encodedByteArray
163     * @throws JUploadIOException This exception is thrown when this method is
164     *             called on a non-closed encoder.
165     */
166    public byte[] getEncodedByteArray() throws JUploadIOException;
167
168    /**
169     * Get the String that matches the encoded result. Can be called only once
170     * the encoder has been closed.
171     *
172     * @return the String that has been encoded.
173     * @throws JUploadIOException This exception is thrown when this method is
174     *             called on a non-closed encoder.
175     */
176    public String getString() throws JUploadIOException;
177
178}
Note: See TracBrowser for help on using the repository browser.