xref: /unit/src/java/javax/websocket/Decoder.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.InputStream;
21 import java.io.Reader;
22 import java.nio.ByteBuffer;
23 
24 public interface Decoder {
25 
init(EndpointConfig endpointConfig)26     abstract void init(EndpointConfig endpointConfig);
27 
destroy()28     abstract void destroy();
29 
30     interface Binary<T> extends Decoder {
31 
decode(ByteBuffer bytes)32         T decode(ByteBuffer bytes) throws DecodeException;
33 
willDecode(ByteBuffer bytes)34         boolean willDecode(ByteBuffer bytes);
35     }
36 
37     interface BinaryStream<T> extends Decoder {
38 
decode(InputStream is)39         T decode(InputStream is) throws DecodeException, IOException;
40     }
41 
42     interface Text<T> extends Decoder {
43 
decode(String s)44         T decode(String s) throws DecodeException;
45 
willDecode(String s)46         boolean willDecode(String s);
47     }
48 
49     interface TextStream<T> extends Decoder {
50 
decode(Reader reader)51         T decode(Reader reader) throws DecodeException, IOException;
52     }
53 }
54