package org.whole.lang.visitors;
import java.util.List;
import org.whole.gen.JavaStoreBuilder;
import org.whole.lang.misc.model.IMiscEntity;
import org.whole.lang.misc.model.Misc;
import org.whole.lang.misc.visitors.MiscIdentityVisitor;
/**
* @generator Whole
*/
public class MiscJavaStoreGeneratorVisitor extends MiscIdentityVisitor {
private final JavaStoreBuilder builder;
private final boolean isCompiling;
public MiscJavaStoreGeneratorVisitor(JavaStoreBuilder builder,
boolean isCompiling) {
this.builder = builder;
this.isCompiling = isCompiling;
builder.addLanguageFactory(this,
"org.whole.lang.misc.model.MiscLanguageFactory");
}
private final org.eclipse.jdt.core.dom.Expression astOf(IMiscEntity entity) {
entity.accept(this);
return builder.getExpression();
}
protected org.eclipse.jdt.core.dom.Expression astOf(Object entity) {
return builder.newNullLiteral();
}
public void visit(Misc entity) {
int parentNestingSize = builder.initNestingSize();
org.eclipse.jdt.core.dom.MethodInvocation callExp = builder
.newFactoryInvocation(this, "createMisc");
org.eclipse.jdt.core.dom.ArrayInitializer initArrayExp = builder
.newArrayInitializer();
callExp.arguments().add(builder.newArrayCreation("Any", initArrayExp));
List list = initArrayExp.expressions();
for (int i = 0; i < entity.wSize(); i++)
list.add(astOf((IMiscEntity) entity.wGet(i)));
builder.addSubtree(parentNestingSize, "Misc", callExp);
}
}