01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * 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:
18: /**
19: * @author Boris Kuznetsov
20: * @version $Revision$
21: */package org.apache.harmony.xnet.provider.jsse;
22:
23: import org.apache.harmony.xnet.provider.jsse.AlertException;
24:
25: import javax.net.ssl.SSLException;
26: import javax.net.ssl.SSLHandshakeException;
27:
28: /**
29: *
30: * Base class for handshake messages
31: */
32: public abstract class Message {
33:
34: /*
35: * Message length
36: */
37: protected int length;
38:
39: /**
40: * Returns message type
41: * @return
42: */
43: abstract int getType();
44:
45: /**
46: * Returns message length
47: * @return
48: */
49: public int length() {
50: return length;
51: }
52:
53: /**
54: * Sends message
55: * @param out
56: */
57: abstract void send(HandshakeIODataStream out);
58:
59: /**
60: * Sends fatal alert
61: * @param description
62: * @param reason
63: */
64: protected void fatalAlert(byte description, String reason) {
65: throw new AlertException(description,
66: new SSLHandshakeException(reason));
67: }
68:
69: /**
70: * Sends fatal alert
71: * @param description
72: * @param reason
73: * @param cause
74: */
75: protected void fatalAlert(byte description, String reason,
76: Throwable cause) {
77: throw new AlertException(description, new SSLException(reason,
78: cause));
79: }
80: }
|