package org.wikbook.template.freemarker;
import org.wikbook.template.processing.metamodel.TemplateAnnotation;
import org.wikbook.template.processing.metamodel.MetaModel;
import org.wikbook.template.processing.metamodel.TemplateElement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author <a href="mailto:alain.defrance@exoplatform.com">Alain Defrance</a>
* @version $Revision$
*/
public class FreemarkerModelBuilder {
public Map<String, ? extends Object> build(MetaModel model, TemplateElement element) {
FreemarkerDataFactory builder = new FreemarkerDataFactory(model);
Map<String, Object> root = new HashMap<String, Object>();
for (TemplateAnnotation annotation : element.getAnnotations().values()) {
Map<String, Object> data = builder.create(annotation);
root.put(annotation.getName(), data);
}
return root;
}
public Map<String, ? extends Object> build(MetaModel model) {
FreemarkerDataFactory builder = new FreemarkerDataFactory(model);
Map<String, List<Object>> root = new HashMap<String, List<Object>>();
for (TemplateElement element : model.getElements()) {
for (TemplateAnnotation annotation : element.getAnnotations().values()) {
List<Object> got = root.get(annotation.getName());
if (got == null) {
got = new ArrayList<Object>();
}
got.add(builder.create(annotation));
root.put(annotation.getName(), got);
}
}
return root;
}
}