summaryrefslogtreecommitdiff
path: root/qpid/gentools
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2007-02-25 01:08:57 +0000
committerRobert Godfrey <rgodfrey@apache.org>2007-02-25 01:08:57 +0000
commit2e9743ac06fc05609155769bf04f4fa442d848c2 (patch)
tree76e110ec10ab5912d50175484e904d624710e735 /qpid/gentools
parentf4d8d42443bbfb942a73c9da32cbdf8fe7ad35e7 (diff)
downloadqpid-python-2e9743ac06fc05609155769bf04f4fa442d848c2.tar.gz
QPID-391 : Broker Refactoring - initial tidy... add some mechanisms for multi version
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@511389 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/gentools')
-rw-r--r--qpid/gentools/templ.java/MethodRegistryClass.tmpl5
-rw-r--r--qpid/gentools/templ.java/ProtocolVersionListClass.tmpl149
2 files changed, 124 insertions, 30 deletions
diff --git a/qpid/gentools/templ.java/MethodRegistryClass.tmpl b/qpid/gentools/templ.java/MethodRegistryClass.tmpl
index 8752be4dc8..99e142aa0d 100644
--- a/qpid/gentools/templ.java/MethodRegistryClass.tmpl
+++ b/qpid/gentools/templ.java/MethodRegistryClass.tmpl
@@ -69,6 +69,11 @@ public class MainRegistry
}
+
+ public static VersionSpecificRegistry getVersionSpecificRegistry(ProtocolVersion pv)
+ {
+ return getVersionSpecificRegistry(pv.getMajorVersion(), pv.getMinorVersion());
+ }
public static VersionSpecificRegistry getVersionSpecificRegistry(byte major, byte minor)
{
try
diff --git a/qpid/gentools/templ.java/ProtocolVersionListClass.tmpl b/qpid/gentools/templ.java/ProtocolVersionListClass.tmpl
index bc98e0c1ea..4a2592d11b 100644
--- a/qpid/gentools/templ.java/ProtocolVersionListClass.tmpl
+++ b/qpid/gentools/templ.java/ProtocolVersionListClass.tmpl
@@ -1,38 +1,127 @@
-&{ProtocolVersionList.java}
+&{ProtocolVersion.java}
/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
+*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*
+*/
/*
- * This file is auto-generated by ${GENERATOR} - do not modify.
- * Supported AMQP versions:
+* This file is auto-generated by ${GENERATOR} - do not modify.
+* Supported AMQP versions:
%{VLIST} * ${major}-${minor}
- */
-
+*/
+
package org.apache.qpid.framing;
-public interface ProtocolVersionList
+import java.util.SortedSet;
+import java.util.Collections;
+import java.util.TreeSet;
+
+
+public class ProtocolVersion implements Comparable
{
- public final int PROTOCOL_MAJOR = 0;
- public final int PROTOCOL_MINOR = 1;
- public final byte pv[][] = {
-%{VLIST} ${protocol-version-list-entry}
- };
+ private final byte _majorVersion;
+ private final byte _minorVersion;
+
+
+ public ProtocolVersion(byte majorVersion, byte minorVersion)
+ {
+ _majorVersion = majorVersion;
+ _minorVersion = minorVersion;
+ }
+
+ public byte getMajorVersion()
+ {
+ return _majorVersion;
+ }
+
+ public byte getMinorVersion()
+ {
+ return _minorVersion;
+ }
+
+
+ public int compareTo(Object o)
+ {
+ ProtocolVersion pv = (ProtocolVersion) o;
+ if(getMajorVersion() > pv.getMajorVersion())
+ {
+ return 1;
+ }
+ else if(getMajorVersion() < pv.getMajorVersion())
+ {
+ return -1;
+ }
+ else if(getMajorVersion() > pv.getMajorVersion())
+ {
+ return 1;
+ }
+ else if(getMinorVersion() < pv.getMinorVersion())
+ {
+ return -1;
+ }
+ else
+ {
+ return 0;
+ }
+
+ }
+
+ public boolean equals(Object o)
+ {
+ return o != null && (o == this || (compareTo(o) == 0));
+ }
+
+ public int hashCode()
+ {
+ return (0xFF & (int)_minorVersion) | ((0xFF & (int)_majorVersion) << 8);
+ }
+
+
+ public boolean isSupported()
+ {
+ return _supportedVersions.contains(this);
+ }
+
+ public static ProtocolVersion getLatestSupportedVersion()
+ {
+ return _supportedVersions.last();
+ }
+
+ private static final SortedSet<ProtocolVersion> _supportedVersions;
+
+ static
+ {
+ SortedSet<ProtocolVersion> versions = new TreeSet<ProtocolVersion>();
+
+%{VLIST} versions.add(new ProtocolVersion((byte)${major},(byte)${minor}));
+
+ _supportedVersions = Collections.unmodifiableSortedSet(versions);
+ }
+
+
+ public static SortedSet<ProtocolVersion> getSupportedProtocolVersions()
+ {
+ return _supportedVersions;
+ }
+
+
+
+
+
}