package com.applang; import java.io.InputStream; import org.apache.commons.collections.ExtendedProperties; import org.apache.velocity.runtime.RuntimeServices; import org.apache.velocity.runtime.resource.Resource; import org.apache.velocity.runtime.resource.loader.FileResourceLoader; import android.content.res.Resources; public class VelocityResourceLoader extends FileResourceLoader { private Resources resources; private String packageName; public void commonInit(RuntimeServices rs, ExtendedProperties configuration) { super.commonInit(rs,configuration); this.resources = (Resources)rs.getProperty("android.content.res.Resources"); this.packageName = (String)rs.getProperty("packageName"); } public long getLastModified(Resource resource) { return 0; } public InputStream getResourceStream(String templateName) { try { if (packageName.length() > 0) { int id = resources.getIdentifier(templateName, "raw", packageName); return resources.openRawResource(id); } else return resources.getAssets().open(templateName + ".vm"); } catch (Exception e) { return null; } } public boolean isSourceModified(Resource resource) { return false; } public boolean resourceExists(String templateName) { return resources.getIdentifier(templateName, "raw", this.packageName) != 0; } }