magic-Dependency/webmagic-avalon/forger
yihua.huang f84a858bce update verion of forge 2014-04-27 15:38:38 +08:00
..
src add forger to folder 2014-04-01 23:16:03 +08:00
LICENSE add forger to folder 2014-04-01 23:16:03 +08:00
README.md add forger to folder 2014-04-01 23:16:03 +08:00
pom.xml update verion of forge 2014-04-27 15:38:38 +08:00

README.md

forger

Dynamic Java object generator with template class and configuration.

Compiler

Use groovy compiler. Compile source code to Java class.

PropertyLoader

Load properties of object from user input.

API

    @Test
    public void testForgerCreateByClassAnnotationCompile() throws Exception {
        ForgerFactory forgerFactory = new ForgerFactory(new AnnotationPropertyLoader(), new GroovyForgerCompiler());
        Forger<Fooable> forger = forgerFactory.<Fooable>compile(Foo.SOURCE_CODE);
        Fooable foo = forger.forge(ImmutableMap.<String, Object>of("fooa", "test"));
        Field field = forger.getClazz().getDeclaredField("foo");
        field.setAccessible(true);
        assertThat(field.get(foo)).isEqualTo("test");
        assertThat(foo.foo()).isEqualTo("test");
    }