Automatic Directory Creation via Spring Application Context File
Spring lets you define property editors that convert from a text representation to an object representation. We can hook into this feature to automate directory creation like this:
public class DirectoryEditor extends PropertyEditorSupport { public void setAsText(String textValue) { File f = new File(textValue); if (!f.exists()) { if (!f.mkdirs()) { throw new ConfigurationException("Unable To Create Directory: [" + textValue + "]"); } } else if (!f.isDirectory()) { throw new ConfigurationException("File Is Not a Directory: [" + textValue + "]"); } setValue(new Directory(textValue)); } }Then create a bean definition so that Spring knows about it:
<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer"> <property name="customEditors"> <map> <entry key="com.twintechs.spring.Directory"> <bean id="directoryEditor" class="com.twintechs.spring.DirectoryEditor" /> </entry> </map> </property> </bean>Then create a Directory class:
public class Directory { private String name; public Directory(String _name) { super(); this.name = _name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }The last step is to use the Directory class in place of the String class in any Java objects.