diff options
author | Robert Godfrey <rgodfrey@apache.org> | 2007-02-25 01:08:57 +0000 |
---|---|---|
committer | Robert Godfrey <rgodfrey@apache.org> | 2007-02-25 01:08:57 +0000 |
commit | 2e9743ac06fc05609155769bf04f4fa442d848c2 (patch) | |
tree | 76e110ec10ab5912d50175484e904d624710e735 /qpid/gentools | |
parent | f4d8d42443bbfb942a73c9da32cbdf8fe7ad35e7 (diff) | |
download | qpid-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.tmpl | 5 | ||||
-rw-r--r-- | qpid/gentools/templ.java/ProtocolVersionListClass.tmpl | 149 |
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; + } + + + + + } |