xref: /unit/src/java/javax/websocket/Encoder.java (revision 1157:7ae152bda303)
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 package javax.websocket;
18 
19 import java.io.IOException;
20 import java.io.OutputStream;
21 import java.io.Writer;
22 import java.nio.ByteBuffer;
23 
24 public interface Encoder {
25 
init(EndpointConfig endpointConfig)26     abstract void init(EndpointConfig endpointConfig);
27 
destroy()28     abstract void destroy();
29 
30     interface Text<T> extends Encoder {
31 
encode(T object)32         String encode(T object) throws EncodeException;
33     }
34 
35     interface TextStream<T> extends Encoder {
36 
encode(T object, Writer writer)37         void encode(T object, Writer writer)
38                 throws EncodeException, IOException;
39     }
40 
41     interface Binary<T> extends Encoder {
42 
encode(T object)43         ByteBuffer encode(T object) throws EncodeException;
44     }
45 
46     interface BinaryStream<T> extends Encoder {
47 
encode(T object, OutputStream os)48         void encode(T object, OutputStream os)
49                 throws EncodeException, IOException;
50     }
51 }
52