1 17 18 package org.sape.carbon.services.config.jar; 19 20 import org.sape.carbon.core.config.format.ConfigurationFormatService; 21 import org.sape.carbon.core.config.format.DefaultConfigurationFormatService; 22 import org.sape.carbon.core.config.node.Node; 23 import org.sape.carbon.core.config.node.NodeCreationException; 24 import org.sape.carbon.core.config.node.NodeFactory; 25 import org.sape.carbon.core.exception.InvalidParameterException; 26 27 36 public abstract class AbstractJarConfigurationDocumentFactory 37 implements NodeFactory { 38 39 42 private static final ConfigurationFormatService FORMAT_SERVICE = 43 new DefaultConfigurationFormatService(); 44 45 57 public Node getInstance(Node parent, String name) 58 throws NodeCreationException { 59 60 JarFolder parentJarFolder; 61 try { 62 parentJarFolder = (JarFolder) parent; 63 } catch (ClassCastException cce) { 64 throw new InvalidParameterException( 65 this.getClass(), 66 "parent is not assignable from JarFolder", cce); 67 } 68 69 if (name == null) { 72 throw new InvalidParameterException( 73 this.getClass(), 74 "name cannot be null"); 75 } 76 77 String entryName = 78 parentJarFolder.getInternalJarEntryName() 79 + name + getFileExtension(); 80 81 return new JarConfigurationDocument( 82 parent, 83 name, 84 getConfigurationFormatService(), 85 parentJarFolder.getReadWriteLock(), 86 parentJarFolder.getInternalJarFile(), 87 entryName); 88 } 89 90 97 protected abstract String getFileExtension(); 98 99 110 protected ConfigurationFormatService getConfigurationFormatService() { 111 return AbstractJarConfigurationDocumentFactory.FORMAT_SERVICE; 112 } 113 } | Popular Tags |