public static ClientProtocol createClientProtocol(final String protocolName) { final Set<Class<? extends ClientProtocol>> classSet = getClientProtocolClasses(protocolName); if (classSet.isEmpty()) { throw new IllegalArgumentException("Unknkown Client Protocol: " + protocolName); } Class<? extends ClientProtocol> desiredClass = desiredClientProtocolClassMap.get(protocolName); if (desiredClass == null && classSet.size() > 1) { throw new IllegalStateException("Multiple implementations of Client Protocol " + protocolName + " were found and no preferred implementation has been specified"); } if (desiredClass != null && !classSet.contains(desiredClass)) { throw new IllegalStateException("Desired implementation of Client Protocol " + protocolName + " is set to " + desiredClass + ", but that Protocol is not registered as a Client Protocol"); } if (desiredClass == null) { desiredClass = classSet.iterator().next(); } try { return desiredClass.newInstance(); } catch (final Exception e) { throw new RuntimeException("Unable to instantiate class " + desiredClass.getName(), e); } } }
public static ClientProtocol createClientProtocol(final String protocolName) { final Set<Class<? extends ClientProtocol>> classSet = getClientProtocolClasses(protocolName); if (classSet.isEmpty()) { throw new IllegalArgumentException("Unknkown Client Protocol: " + protocolName); } Class<? extends ClientProtocol> desiredClass = desiredClientProtocolClassMap.get(protocolName); if (desiredClass == null && classSet.size() > 1) { throw new IllegalStateException("Multiple implementations of Client Protocol " + protocolName + " were found and no preferred implementation has been specified"); } if (desiredClass != null && !classSet.contains(desiredClass)) { throw new IllegalStateException("Desired implementation of Client Protocol " + protocolName + " is set to " + desiredClass + ", but that Protocol is not registered as a Client Protocol"); } if (desiredClass == null) { desiredClass = classSet.iterator().next(); } try { return desiredClass.newInstance(); } catch (final Exception e) { throw new RuntimeException("Unable to instantiate class " + desiredClass.getName(), e); } } }