1 package net.mograsim.logic.model.snippets;
3 import java.io.IOException;
4 import java.io.InputStream;
7 import net.mograsim.logic.model.model.components.ModelComponent;
8 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
9 import net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler;
10 import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer;
11 import net.mograsim.logic.model.snippets.symbolrenderers.DefaultSymbolRenderer;
12 import net.mograsim.logic.model.util.JsonHandler;
14 public class SubmodelComponentSnippetSuppliers
16 public static final CodeSnippetSupplier<ModelComponent, Renderer> symbolRendererSupplier;
17 public static final CodeSnippetSupplier<ModelComponent, Renderer> outlineRendererSupplier;
18 public static final CodeSnippetSupplier<SubmodelComponent, HighLevelStateHandler> highLevelStateHandlerSupplier;
22 symbolRendererSupplier = new CodeSnippetSupplier<>(SnippetDefinintion.create(Void.class, DefaultSymbolRenderer::new));
23 outlineRendererSupplier = new CodeSnippetSupplier<>(SnippetDefinintion.create(Void.class, DefaultOutlineRenderer::new));
24 highLevelStateHandlerSupplier = new CodeSnippetSupplier<>(SnippetDefinintion.create(Void.class, DefaultHighLevelStateHandler::new));
29 try (InputStream s = SubmodelComponentSnippetSuppliers.class.getResourceAsStream("standardSnippetIDMapping.json"))
32 throw new IOException("Resource not found");
33 SnippetIDClassNames tmp = JsonHandler.readJson(s, SnippetIDClassNames.class);
34 tmp.standardSymbolRendererSuppliers.forEach(symbolRendererSupplier::addStandardSnippetID);
35 tmp.standardOutlineRendererSuppliers.forEach(outlineRendererSupplier::addStandardSnippetID);
36 tmp.standardHighLevelStateHandlerSuppliers.forEach(highLevelStateHandlerSupplier::addStandardSnippetID);
40 System.err.println("Failed to initialize standard snippet ID mapping:");
45 private static class SnippetIDClassNames
47 public Map<String, String> standardSymbolRendererSuppliers;
48 public Map<String, String> standardOutlineRendererSuppliers;
49 public Map<String, String> standardHighLevelStateHandlerSuppliers;
52 private SubmodelComponentSnippetSuppliers()
54 throw new UnsupportedOperationException();