1 10 package org.mmbase.cache.xslt; 11 12 import org.mmbase.cache.Cache; 13 import org.mmbase.util.xml.URIResolver; 14 15 import javax.xml.transform.TransformerFactory ; 16 17 import java.io.File ; 18 import java.net.URL ; 19 20 28 public class FactoryCache extends Cache { 29 30 private static int cacheSize = 50; 31 private static FactoryCache cache; 32 private static File defaultDir = new File (""); 33 34 public static FactoryCache getCache() { 35 return cache; 36 } 37 38 static { 39 cache = new FactoryCache(cacheSize); 40 putCache(cache); 41 } 42 43 public String getName() { 44 return "XSLFactories"; 45 } 46 public String getDescription() { 47 return "XSL Transformer Factories"; 48 } 49 50 53 private FactoryCache(int size) { 54 super(size); 55 } 56 57 61 public TransformerFactory getDefaultFactory() { 62 return getFactory(defaultDir); 63 } 64 65 68 public TransformerFactory getFactory(URIResolver uri) { 69 TransformerFactory tf = (TransformerFactory ) get(uri); 70 if (tf == null) { 71 tf = TransformerFactory.newInstance(); 72 tf.setURIResolver(uri); 73 put(uri, tf); 75 } 76 return tf; 77 } 78 84 85 public TransformerFactory getFactory(File cwd) { 86 try { 87 TransformerFactory tf = (TransformerFactory ) get(new URIResolver(new URL ("file://" + cwd), true)); if (tf == null) { 89 return getFactory(new URIResolver(new URL ("file://" + cwd))); 91 } else { 92 return tf; 93 } 94 } catch (Exception e) { 95 return null; 96 } 97 } 98 99 public TransformerFactory getFactory(URL cwd) { 100 TransformerFactory tf = (TransformerFactory ) get(new URIResolver(cwd, true)); if (tf == null) { 102 return getFactory(new URIResolver(cwd)); 104 } else { 105 return tf; 106 } 107 } 108 109 110 111 } 112 | Popular Tags |