use of spoon.support.DefaultCoreFactory in project spoon by INRIA.
the class FactoryImpl method Core.
/**
* The core factory.
*/
@Override
public CoreFactory Core() {
if (core == null) {
// During deserialization, the transient field core, is null
core = new DefaultCoreFactory();
core.setMainFactory(this);
}
return core;
}
use of spoon.support.DefaultCoreFactory in project spoon by INRIA.
the class CommentTest method testAddCommentsToSnippet.
@Test
public void testAddCommentsToSnippet() {
Factory factory = new FactoryImpl(new DefaultCoreFactory(), new StandardEnvironment());
factory.getEnvironment().setNoClasspath(true);
factory.getEnvironment().setCommentEnabled(true);
CtStatement statement = factory.Code().createCodeSnippetStatement("System.out.println(\"Caenorhabditis\")");
CtComment comment = factory.createComment("My comment on my statement", CtComment.CommentType.INLINE);
statement.addComment(comment);
CtExpression expression = factory.Code().createCodeSnippetExpression("\"Caenorhabditis\" + \"Caenorhabditis\"");
CtComment commentExpression = factory.createComment("My comment on my expression", CtComment.CommentType.INLINE);
expression.addComment(commentExpression);
assertEquals("// My comment on my statement" + newLine + "System.out.println(\"Caenorhabditis\")", statement.toString());
assertEquals("// My comment on my expression" + newLine + "\"Caenorhabditis\" + \"Caenorhabditis\"", expression.toString());
}
use of spoon.support.DefaultCoreFactory in project spoon by INRIA.
the class ConstructorFactoryTest method testCreateDefault.
@Test
public void testCreateDefault() {
Factory factory = new FactoryImpl(new DefaultCoreFactory(), new StandardEnvironment());
ClassFactory classf = factory.Class();
ConstructorFactory ctorf = factory.Constructor();
CtClass<?> ctclass = classf.create("Sample");
ctorf.createDefault(ctclass);
CtConstructor<?> c = ctclass.getConstructor();
Assert.assertEquals(0, c.getParameters().size());
}
use of spoon.support.DefaultCoreFactory in project spoon by INRIA.
the class FactoryTest method testFactoryOverriding.
@Test
public void testFactoryOverriding() throws Exception {
@SuppressWarnings("serial")
class MyCtMethod<T> extends CtMethodImpl<T> {
}
;
@SuppressWarnings("serial") final CoreFactory specialCoreFactory = new DefaultCoreFactory() {
@Override
public <T> CtMethod<T> createMethod() {
MyCtMethod<T> m = new MyCtMethod<T>();
m.setFactory(getMainFactory());
return m;
}
};
Launcher launcher = new Launcher() {
@Override
public Factory createFactory() {
return new FactoryImpl(specialCoreFactory, new StandardEnvironment());
}
};
CtClass<?> type = build("spoon.test.testclasses", "SampleClass", launcher.getFactory());
CtMethod<?> m = type.getMethodsByName("method3").get(0);
assertTrue(m instanceof MyCtMethod);
}
use of spoon.support.DefaultCoreFactory in project spoon by INRIA.
the class SerializableTest method testSerialCtStatement.
@Test
public void testSerialCtStatement() throws Exception {
Factory factory = new FactoryImpl(new DefaultCoreFactory(), new StandardEnvironment());
CtStatement sta2 = (factory).Code().createCodeSnippetStatement("String hello =\"t1\"; System.out.println(hello)").compile();
byte[] ser = ByteSerialization.serialize(sta2);
CtStatement des = (CtStatement) ByteSerialization.deserialize(ser);
String sigBef = sta2.getShortRepresentation();
String sigAf = des.getShortRepresentation();
CtType<?> typeBef = sta2.getParent(CtType.class);
assertNotNull(typeBef);
assertEquals(sigBef, sigAf);
des.setFactory(factory);
String toSBef = sta2.toString();
String toSgAf = des.toString();
assertEquals(toSBef, toSgAf);
CtType<?> typeDes = des.getParent(CtType.class);
assertNotNull(typeDes);
// After deserialization, getDeclaringType throws an exception
CtType<?> decl = typeDes.getDeclaringType();
assertNull(decl);
CtPackage parentOriginal = (CtPackage) typeBef.getParent();
CtPackage parentDeser = (CtPackage) typeDes.getParent();
assertEquals(CtPackage.TOP_LEVEL_PACKAGE_NAME, parentOriginal.getSimpleName());
assertEquals(CtPackage.TOP_LEVEL_PACKAGE_NAME, parentDeser.getSimpleName());
}
Aggregations