ORBVersionImpl.java revision 608:7e06bf1dcb09
1/*
2 * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.  Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26package com.sun.corba.se.impl.orb ;
27
28import org.omg.CORBA.portable.OutputStream ;
29
30import com.sun.corba.se.spi.orb.ORBVersion ;
31
32public class ORBVersionImpl implements ORBVersion {
33    private byte orbType ;
34
35    public ORBVersionImpl( byte orbType )
36    {
37        this.orbType = orbType ;
38    }
39
40    public static final ORBVersion FOREIGN = new ORBVersionImpl(
41        ORBVersion.FOREIGN ) ;
42
43    public static final ORBVersion OLD = new ORBVersionImpl(
44        ORBVersion.OLD ) ;
45
46    public static final ORBVersion NEW = new ORBVersionImpl(
47        ORBVersion.NEW ) ;
48
49    public static final ORBVersion JDK1_3_1_01 = new ORBVersionImpl(
50        ORBVersion.JDK1_3_1_01 ) ;
51
52    public static final ORBVersion NEWER = new ORBVersionImpl(
53        ORBVersion.NEWER ) ;
54
55    public static final ORBVersion PEORB = new ORBVersionImpl(
56        ORBVersion.PEORB ) ;
57
58    public byte getORBType()
59    {
60        return orbType ;
61    }
62
63    public void write( OutputStream os )
64    {
65        os.write_octet( (byte)orbType ) ;
66    }
67
68    public String toString()
69    {
70        return "ORBVersionImpl[" + Byte.toString( orbType ) + "]" ;
71    }
72
73    public boolean equals( Object obj )
74    {
75        if (!(obj instanceof ORBVersion))
76            return false ;
77
78        ORBVersion version = (ORBVersion)obj ;
79        return version.getORBType() == orbType ;
80    }
81
82    public int hashCode()
83    {
84        return orbType ;
85    }
86
87    public boolean lessThan(ORBVersion version) {
88        return orbType < version.getORBType();
89    }
90
91    public int compareTo(Object obj) {
92        // The Comparable interface says that this
93        // method throws a ClassCastException if the
94        // given object's type prevents it from being
95        // compared.
96        return getORBType() - ((ORBVersion)obj).getORBType();
97    }
98}
99