Merge remote-tracking branch 'origin/development' into development
[Mograsim.git] / plugins / net.mograsim.machine / src / net / mograsim / machine / MachineRegistry.java
index ca52eae..d312412 100644 (file)
@@ -1,6 +1,5 @@
 package net.mograsim.machine;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -16,10 +15,18 @@ import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.core.runtime.IRegistryEventListener;
 import org.eclipse.core.runtime.Platform;
 
+/**
+ * The MachineRegsitry is a static context registry for all {@link MachineDefinition}s known at any point during runtime.
+ * <p>
+ * It is updated automatically as mograsim machine definition extension points ({@link #MACHINE_EXT_ID}) are added or removed.
+ *
+ * @author Christian Femers
+ *
+ */
 public class MachineRegistry
 {
 
-       private static final String MACHINE_EXT_ID = "net.mograsim.machine.machine_definition";
+       public static final String MACHINE_EXT_ID = "net.mograsim.machine.machine_definition";
 
        private static final Map<String, MachineDefinition> installedMachines = Collections.synchronizedMap(new HashMap<>());
        private static final Set<MachineRegistryListener> listeners = Collections.synchronizedSet(new HashSet<>());
@@ -28,19 +35,15 @@ public class MachineRegistry
        {
                installedMachines.clear();
                IExtensionRegistry registry = Platform.getExtensionRegistry();
-               System.out.println(Arrays.toString(registry.getExtensionPoints("net.mograsim.machine")));
                IConfigurationElement[] config = registry.getConfigurationElementsFor(MACHINE_EXT_ID);
                try
                {
                        for (IConfigurationElement e : config)
                        {
-                               System.out.println(e.getNamespaceIdentifier());
-                               System.out.println(Arrays.toString(e.getAttributeNames()));
                                final Object o = e.createExecutableExtension("class");
                                final String id = e.getAttribute("unique_id");
                                if (o instanceof MachineDefinition)
                                {
-                                       System.out.println("Found " + id);
                                        MachineDefinition md = (MachineDefinition) o;
                                        if (Objects.equals(id, md.getId()))
                                                installedMachines.put(id, md);
@@ -54,7 +57,8 @@ public class MachineRegistry
                }
                catch (CoreException ex)
                {
-                       System.out.println(ex.getMessage());
+                       System.err.println("An error occurred reloading the machines:");
+                       ex.printStackTrace();
                }
                notifyListeners();
        }