package org.richfaces.cdk.templatecompiler; import javax.xml.namespace.QName; import org.richfaces.cdk.templatecompiler.builder.model.JavaStatement; import org.richfaces.cdk.templatecompiler.el.types.ELType; import freemarker.ext.beans.BeansWrapper; import freemarker.template.ObjectWrapper; import freemarker.template.TemplateModel; import freemarker.template.TemplateModelException; public class JavaClassModelWrapper extends BeansWrapper implements ObjectWrapper { public JavaClassModelWrapper() { } @Override public TemplateModel wrap(Object obj) throws TemplateModelException { TemplateModel templateModel; if (obj instanceof JavaStatement) { templateModel = new MethodBodyTemplateModel((JavaStatement) obj, this); } else if (obj instanceof ELType) { templateModel = new ELTypeTemplateModel((ELType) obj, this); } else if (obj instanceof QName) { templateModel = new QNameTemplateModel((QName) obj, this); } else { templateModel = super.wrap(obj); } return templateModel; } }