public static <S> S unserialize(Class<S> expectedType, InputStream in) throws IOException, ClassNotFoundException { return unserialize(null, expectedType, in); }
public static <S> S unserialize(Class<S> expectedType, InputStream in) throws IOException, ClassNotFoundException { return unserialize(null, expectedType, in); }
public static <S extends Serializable> S unserialize(Class<S> expectedType, File f) throws IOException, ClassNotFoundException { return unserialize(expectedType, new FileInputStream(f)); }
public static <S extends Serializable> S unserialize(Class<S> expectedType, File f) throws IOException, ClassNotFoundException { return unserialize(expectedType, new FileInputStream(f)); }
public static <T extends Serializable> T clone(T value) throws IOException, ClassNotFoundException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); Tools.serialize(value, baos); byte[] bytes = baos.toByteArray(); return (T)unserialize(Object.class, new ByteArrayInputStream(bytes)); }
public static <T extends Serializable> T clone(T value) throws IOException, ClassNotFoundException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); Tools.serialize(value, baos); byte[] bytes = baos.toByteArray(); return (T)unserialize(Object.class, new ByteArrayInputStream(bytes)); }
@Test public void testBuild() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.param"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; assertEquals(expectedJSON, mm.toJSON()); }
@Test public void testBuild() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.param"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; assertEquals(expectedJSON, mm.toJSON()); }
@Test public void testRemoveAnnotation() throws Exception { CompilerAssert<File, File> helper = compiler("metamodel.template"); helper.assertCompile(); // JavaFile file = helper.assertJavaSource("metamodel.template.A"); ClassOrInterfaceDeclaration a = file.assertDeclaration(); FieldDeclaration decl = (FieldDeclaration)a.getMembers().get(0); decl.getAnnotations().clear(); file.assertSave(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser); ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel; mm.getQueue().clear(); Tools.serialize(unserialize, ser); // helper.assertCompile(); // unserialize = Tools.unserialize(MetaModelState.class, ser); mm = (ModuleMetaModel)unserialize.metaModel; List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertInstanceOf(TemplateMetaModel.class, events.get(0).getObject()); }
@Test public void testRemoveAnnotation() throws Exception { CompilerAssert<File, File> helper = compiler("metamodel.template"); helper.assertCompile(); // JavaFile file = helper.assertJavaSource("metamodel.template.A"); ClassOrInterfaceDeclaration a = file.assertDeclaration(); FieldDeclaration decl = (FieldDeclaration)a.getMembers().get(0); decl.getAnnotations().clear(); file.assertSave(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser); ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel; mm.getQueue().clear(); Tools.serialize(unserialize, ser); // helper.assertCompile(); // unserialize = Tools.unserialize(MetaModelState.class, ser); mm = (ModuleMetaModel)unserialize.metaModel; List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertInstanceOf(TemplateMetaModel.class, events.get(0).getObject()); }
@Test public void testRemoveAnnotation() throws Exception { CompilerAssert<File, File> helper = compiler("metamodel.tag"); helper.assertCompile(); // JavaFile file = helper.assertJavaSource("metamodel.tag.package-info"); PackageDeclaration a = file.assertPackage(); a.getAnnotations().remove(0); file.assertSave(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser); ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel; mm.getQueue().clear(); Tools.serialize(unserialize, ser); // helper.assertCompile(); unserialize = Tools.unserialize(MetaModelState.class, ser); mm = (ModuleMetaModel)unserialize.metaModel; List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertInstanceOf(TemplateMetaModel.class, events.get(0).getObject()); assertEquals(Path.parse("/metamodel/tag/tags/foo.gtmpl"), ((TemplateMetaModel)events.get(0).getObject()).getPath()); } }
@Test public void testRemove() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.application"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); MetaModelState unserialize = Tools.unserialize(MetaModelState.class, ser); ModuleMetaModel mm = (ModuleMetaModel)unserialize.metaModel; mm.getQueue().clear(); Tools.serialize(unserialize, ser); // assertTrue(helper.getSourcePath().getPath("metamodel", "application", "package-info.java").delete()); // helper.assertCompile(); ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.BEFORE_REMOVE, events.get(0).getType()); assertTrue(events.get(0).getObject() instanceof ApplicationMetaModel); // JSON expected = json(). set("applications", json(). list("values") ); assertEquals(expected, mm.toJSON()); }
@Test public void testAdd() throws Exception { CompilerAssert<File, File> helper = compiler("metamodel.application"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.AFTER_ADD, events.get(0).getType()); assertTrue(events.get(0).getObject() instanceof ApplicationMetaModel); // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.application]"). list("templates") ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testAdd() throws Exception { CompilerAssert<File, File> helper = compiler("metamodel.application"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; List<MetaModelEvent> events = mm.getQueue().clear(); assertEquals(1, events.size()); assertEquals(MetaModelEvent.AFTER_ADD, events.get(0).getType()); assertTrue(events.get(0).getObject() instanceof ApplicationMetaModel); // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.application]"). list("templates") ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testPathRemoveApplication() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // assertDelete(helper.getSourcePath().getPath("metamodel", "path", "package-info.java")); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json(). set("applications", json().list("values") ); // assertEquals(expected, mm.toJSON()); }
@Test public void testRemoveAnnotation() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File a = helper.getSourcePath().getPath("metamodel", "path", "A.java"); Tools.write(Tools.read(a).replace("@Path(\"foo.gtmpl\")", ""), a); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates") ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testPathRemoveApplication() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // assertDelete(helper.getSourcePath().getPath("metamodel", "path", "package-info.java")); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json(). set("applications", json().list("values") ); // assertEquals(expected, mm.toJSON()); }
@Test public void testRemoveAnnotation() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File a = helper.getSourcePath().getPath("metamodel", "path", "A.java"); Tools.write(Tools.read(a).replace("@Path(\"foo.gtmpl\")", ""), a); // helper.assertCompile(); File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates") ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testBuild() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates", json(). set("path", "foo.gtmpl"). list("refs") ) ) ); assertEquals(expected, mm.toJSON()); }
@Test public void testBuild() throws Exception { CompilerAssert<File, File> helper = incrementalCompiler("metamodel.path"); helper.assertCompile(); // File ser = helper.getSourceOutput().getPath("juzu", "metamodel.ser"); ModuleMetaModel mm = (ModuleMetaModel)Tools.unserialize(MetaModelState.class, ser).metaModel; // JSON expected = json() .set("applications", json(). list("values", json(). list("controllers"). set("handle", "ElementHandle.Package[qn=metamodel.path]"). list("templates", json(). set("path", "foo.gtmpl"). list("refs") ) ) ); assertEquals(expected, mm.toJSON()); }