/* * (c) Copyright IBM Corp. 2000, 2001. * All Rights Reserved. */ package net.sourceforge.phpdt.internal.corext.template; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import net.sourceforge.phpdt.internal.corext.template.php.HTMLContextType; import net.sourceforge.phpdt.internal.corext.template.php.PHPContextType; import net.sourceforge.phpdt.internal.corext.template.php.PHPDocContextType; /** * A singleton to keep track of all known context types. */ public class ContextTypeRegistry { /** the singleton */ private static ContextTypeRegistry fInstance; /** all known context types */ private final Map fContextTypes= new HashMap(); /** * Returns the single instance of this class. */ public static ContextTypeRegistry getInstance() { if (fInstance == null) fInstance= new ContextTypeRegistry(); return fInstance; } /** * Adds a context type to the registry. */ public void add(ContextType contextType) { fContextTypes.put(contextType.getName(), contextType); } /** * Removes a context type from the registry. */ public void remove(ContextType contextType) { fContextTypes.remove(contextType.getName()); } /** * Returns the context type if the name is valid, null otherwise. */ public ContextType getContextType(String name) { return (ContextType) fContextTypes.get(name); } /** * Returns an iterator over the registered context type names. */ public Iterator iterator() { return fContextTypes.keySet().iterator(); } // XXX bootstrap with java and javadoc context types private ContextTypeRegistry() { add(new PHPContextType()); add(new PHPDocContextType()); add(new HTMLContextType()); } }