X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fnet.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2FMachineRegistry.java;h=d3124123874ee91b95d2e5fb0bebd10d4f452259;hb=0c404f876557865fb7361ca458ac90caf41afe19;hp=ca52eaea1bc15150d423bb871a4e7f1bbe6e1159;hpb=cb96c0334c0b477ec692ec8d11dd65c1bbbf72a6;p=Mograsim.git diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineRegistry.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineRegistry.java index ca52eaea..d3124123 100644 --- a/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineRegistry.java +++ b/plugins/net.mograsim.machine/src/net/mograsim/machine/MachineRegistry.java @@ -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. + *

+ * 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 installedMachines = Collections.synchronizedMap(new HashMap<>()); private static final Set 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(); }