diff options
Diffstat (limited to 'sources/protocols/VSRegisteredProtocols.java')
| -rw-r--r-- | sources/protocols/VSRegisteredProtocols.java | 52 |
1 files changed, 28 insertions, 24 deletions
diff --git a/sources/protocols/VSRegisteredProtocols.java b/sources/protocols/VSRegisteredProtocols.java index d3bcc20..d58385b 100644 --- a/sources/protocols/VSRegisteredProtocols.java +++ b/sources/protocols/VSRegisteredProtocols.java @@ -8,20 +8,22 @@ import utils.*; public final class VSRegisteredProtocols { private static HashMap<String,String> protocolClassnames; + private static HashMap<String,String> protocolShortnames; private static HashMap<String,String> protocolNames; private static VSPrefs prefs; public static void init(VSPrefs prefs_) { prefs = prefs_; protocolNames = new HashMap<String, String>(); + protocolShortnames = new HashMap<String, String>(); protocolClassnames = new HashMap<String, String>(); - registerProtocol("protocols.implementations.DummyProtocol"); - registerProtocol("protocols.implementations.PingPongProtocol"); - registerProtocol("protocols.implementations.ExternalTimeSyncProtocol"); - registerProtocol("protocols.implementations.InternalTimeSyncProtocol"); - registerProtocol("protocols.implementations.BroadcastSturmProtocol"); - registerProtocol("protocols.implementations.BerkelyTimeProtocol"); + registerProtocol("protocols.implementations.BerkelyTimeProtocol", "Berkeley Algorithmus zur internen Sync.", "Berkeley"); + registerProtocol("protocols.implementations.BroadcastSturmProtocol", "Broadcaststurm", null); + registerProtocol("protocols.implementations.DummyProtocol", "Beispiel/Dummy", null); + registerProtocol("protocols.implementations.ExternalTimeSyncProtocol", "Christians Methode zur externen Sync.", "Christians"); + registerProtocol("protocols.implementations.InternalTimeSyncProtocol", "Interne Synchronisation", "Interne Sync."); + registerProtocol("protocols.implementations.PingPongProtocol", "Ping Pong", null); } public static Vector<String> getProtocolNames() { @@ -36,6 +38,18 @@ public final class VSRegisteredProtocols { return vector; } + public static Vector<String> getProtocolClassnames() { + Set<String> set = protocolNames.keySet(); + Vector<String> vector = new Vector<String>(); + + for (String protocolClassname : set) + vector.add(protocolClassname); + + Collections.sort(vector); + + return vector; + } + public static String getProtocolClassname(String protocolName) { return protocolClassnames.get(protocolName); } @@ -44,6 +58,10 @@ public final class VSRegisteredProtocols { return protocolNames.get(protocolClassname); } + public static String getProtocolShortname(String protocolClassname) { + return protocolShortnames.get(protocolClassname); + } + public static VSProtocol getProtocolInstanceByName(String protocolName, VSProcess process) { final String protocolClassname = protocolClassnames.get(protocolName); final Object protocolObj = new VSClassLoader().newInstance(protocolClassname); @@ -57,26 +75,12 @@ public final class VSRegisteredProtocols { return null; } - public static void registerProtocol(String protocolClassname) { - int index = protocolClassname.lastIndexOf('.'); - - if (index < 0) { - protocolNames.put(protocolClassname, protocolClassname); - protocolClassnames.put(protocolClassname, protocolClassname); - return; - } - - String protocolName = protocolClassname.substring(index + 1); - index = protocolName.lastIndexOf("Protocol"); - - if (index < 0 || index != protocolName.length() - 8) { - protocolNames.put(protocolClassname, protocolName); - protocolClassnames.put(protocolName, protocolClassname); - return; - } + private static void registerProtocol(String protocolClassname, String protocolName, String protocolShortname) { + if (protocolShortname == null) + protocolShortname = protocolName; - protocolName = protocolName.substring(0, index); protocolNames.put(protocolClassname, protocolName); + protocolShortnames.put(protocolClassname, protocolShortname); protocolClassnames.put(protocolName, protocolClassname); } } |
