projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed bug with Exception being thrown with wrong cause
[Mograsim.git]
/
plugins
/
net.mograsim.machine
/
src
/
net
/
mograsim
/
machine
/
MachineRegistry.java
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
ca52eae
..
d312412
100644
(file)
--- 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;
package net.mograsim.machine;
-import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
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;
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
{
public class MachineRegistry
{
- p
rivate
static final String MACHINE_EXT_ID = "net.mograsim.machine.machine_definition";
+ p
ublic
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<>());
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();
{
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)
{
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)
{
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);
MachineDefinition md = (MachineDefinition) o;
if (Objects.equals(id, md.getId()))
installedMachines.put(id, md);
@@
-54,7
+57,8
@@
public class MachineRegistry
}
catch (CoreException ex)
{
}
catch (CoreException ex)
{
- System.out.println(ex.getMessage());
+ System.err.println("An error occurred reloading the machines:");
+ ex.printStackTrace();
}
notifyListeners();
}
}
notifyListeners();
}