fileedit fixed
[mir.git] / source / mir / generator / FreemarkerGenerator.java
index 97ee1e3..c0ebb76 100755 (executable)
@@ -30,6 +30,7 @@
 package mir.generator;
 
 import java.io.PrintWriter;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -37,9 +38,11 @@ import java.util.Map;
 import java.util.Vector;
 
 import mir.log.LoggerWrapper;
+import mir.util.GeneratorFormatAdapters;
 import mir.util.RewindableIterator;
 
-import org.apache.commons.beanutils.*;
+import org.apache.commons.beanutils.MethodUtils;
+import org.apache.commons.beanutils.PropertyUtils;
 
 import freemarker.template.FileTemplateCache;
 import freemarker.template.SimpleScalar;
@@ -119,9 +122,12 @@ public class FreemarkerGenerator implements Generator {
       return makeIteratorAdapter((Iterator) anObject);
     else if (anObject instanceof List)
       return makeIteratorAdapter(((List) anObject).iterator());
+    else if (anObject instanceof Number)
+      return makeAdapter(new GeneratorFormatAdapters.NumberFormatAdapter((Number) anObject));
+    else if (anObject instanceof Date)
+      return makeAdapter(new GeneratorFormatAdapters.DateFormatAdapter((Date) anObject));
     else
       return makeBeanAdapter(anObject);
-//      throw new TemplateModelException("Unadaptable class: " + anObject.getClass().getName());
   }
 
   private static class MapAdapter implements TemplateModelRoot {
@@ -138,7 +144,6 @@ public class FreemarkerGenerator implements Generator {
     }
 
     public void remove(String aKey) {
-      // ML: kinda tricky...
     }
 
     public boolean isEmpty() {
@@ -359,7 +364,7 @@ public class FreemarkerGenerator implements Generator {
       Template template = (Template) templateCache.getItem(anIdentifier, "template");
 
       if (template==null) {
-        throw new GeneratorExc("FreemarkerGeneratorLibrary: Can't find template "+templateCache.getDirectory()+anIdentifier);
+        throw new GeneratorExc("FreemarkerGeneratorLibrary: Can't find template "+templateCache.getDirectory()+"/"+anIdentifier);
       }
 
       return new FreemarkerGenerator(template);