package org.zu.ardulink.protocol.parser; import static java.util.Collections.synchronizedMap; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.zu.ardulink.protocol.ALProtocol; import org.zu.ardulink.protocol.IProtocol; /** * [ardulinktitle] [ardulinkversion] * Class to manage the protocol parser available set. With this class you can install a new protocol parser for ardulink. * * @author Luciano Zu project Ardulink http://www.ardulink.org/ * @see IProtocol * @see ALProtocol * * [adsense] * */ public class ProtocolParserHandler { private static final Map<String, IProtocolParser> installedParserImplementations = synchronizedMap(new HashMap<String, IProtocolParser>()); static { ALProtocolParser alProtocolParser = new ALProtocolParser(); installProtocolParserImplementation(alProtocolParser); } /** * @param implementationName * @return return the protocol implementation called implementationName (if installed) */ public static IProtocolParser getProtocolParserImplementation(String implementationName) { return installedParserImplementations.get(implementationName); } /** * @return all available parser protocol implementations */ public static Set<String> getInstalledProtocolParserImplementationNames() { return installedParserImplementations.keySet(); } /** * Install a protocol. * @param protocol * @return */ public static boolean installProtocolParserImplementation(IProtocolParser parserProtocol) { boolean retvalue = false; if(parserProtocol != null) { installedParserImplementations.put(parserProtocol.getProtocolName(), parserProtocol); retvalue = true; } return retvalue; } }