r39 - in trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage: . factories
Author: glandais Date: 2007-12-05 15:22:53 +0000 (Wed, 05 Dec 2007) New Revision: 39 Added: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/CodeFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ComponentFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ConstantFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ConstantValueFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/DescriptorFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/EntityFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationApplicationFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationDataFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/LibraryFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/LoggableElementFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/RepositoryFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ResultFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/StructureFactory.java Removed: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/DescriptorFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationApplicationFactory.java Log: Refactoring factories Copied: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories (from rev 31, trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories) Added: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/CodeFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/CodeFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/CodeFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,32 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Code; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class CodeFactory<E extends Code> extends EntityFactory<Code> { + + public static final String KEY_LANGUAGE = "language"; + public static final String KEY_CODE = "code"; + + @Override + public Code createInstance() { + return new Code(); + } + + @Override + public Code loadXMLElement(Element xmlElement) throws Exception { + Code code = super.loadXMLElement(xmlElement); + code.setLanguage(getProperty(xmlElement, KEY_LANGUAGE)); + code.setCode(getProperty(xmlElement, KEY_CODE)); + return code; + } + + @Override + public void saveXMLElement(Document document, Element xmlElement, + Code element) throws Exception { + setProperty(document, xmlElement, KEY_LANGUAGE, element.getLanguage()); + setProperty(document, xmlElement, KEY_CODE, element.getCode()); + } + +} Added: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ComponentFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ComponentFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ComponentFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,58 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Code; +import org.cemagref.simexplorer.si.storage.entities.Component; +import org.cemagref.simexplorer.si.storage.entities.Constant; +import org.cemagref.simexplorer.si.storage.entities.Library; +import org.cemagref.simexplorer.si.storage.entities.Structure; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class ComponentFactory<E extends Component> extends + LoggableElementFactory<Component> { + + public static final String KEY_CONSTANTS = "constants"; + public static final String KEY_CONSTANT_NODE = "constant"; + public static final String KEY_STRUCTURE = "structures"; + public static final String KEY_STRUCTURE_NODE = "structure"; + public static final String KEY_CODES = "codes"; + public static final String KEY_CODE_NODE = "code"; + public static final String KEY_LIBRARIES = "libraries"; + public static final String KEY_LIBRARY_NODE = "library"; + + @Override + public Component createInstance() { + return new Component(); + } + + @Override + public Component loadXMLElement(Element xmlElement) throws Exception { + Component component = super.loadXMLElement(xmlElement); + + component.setConstants(loadCollection(KEY_CONSTANTS, KEY_CONSTANT_NODE, + Constant.class, xmlElement)); + component.setStructures(loadCollection(KEY_STRUCTURE, + KEY_STRUCTURE_NODE, Structure.class, xmlElement)); + component.setCodes(loadCollection(KEY_CODES, KEY_CODE_NODE, Code.class, + xmlElement)); + component.setLibraries(loadCollection(KEY_LIBRARIES, KEY_LIBRARY_NODE, + Library.class, xmlElement)); + + return component; + } + + @Override + public void saveXMLElement(Document document, Element xmlElement, + Component element) throws Exception { + saveCollection(element.getConstants(), KEY_CONSTANTS, + KEY_CONSTANT_NODE, Constant.class, document, xmlElement); + saveCollection(element.getStructures(), KEY_STRUCTURE, + KEY_STRUCTURE_NODE, Structure.class, document, xmlElement); + saveCollection(element.getCodes(), KEY_CODES, KEY_CODE_NODE, + Code.class, document, xmlElement); + saveCollection(element.getLibraries(), KEY_LIBRARIES, KEY_LIBRARY_NODE, + Library.class, document, xmlElement); + super.saveXMLElement(document, xmlElement, element); + } + +} Added: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ConstantFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ConstantFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ConstantFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,32 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Constant; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class ConstantFactory<E extends Constant> extends EntityFactory<Constant> { + + public static final String KEY_NAME = "name"; + public static final String KEY_TYPE = "type"; + + @Override + public Constant createInstance() { + return new Constant(); + } + + @Override + public Constant loadXMLElement(Element xmlElement) throws Exception { + Constant constant = super.loadXMLElement(xmlElement); + constant.setName(getProperty(xmlElement, KEY_NAME)); + constant.setType(Class.forName(getProperty(xmlElement, KEY_TYPE))); + return constant; + } + + @Override + public void saveXMLElement(Document document, Element xmlElement, + Constant element) throws Exception { + setProperty(document, xmlElement, KEY_NAME, element.getName()); + setProperty(document, xmlElement, KEY_TYPE, element.getClass().getName()); + } + +} Added: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ConstantValueFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ConstantValueFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ConstantValueFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,40 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Constant; +import org.cemagref.simexplorer.si.storage.entities.ConstantValue; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Text; + +public class ConstantValueFactory<E extends ConstantValue> extends EntityFactory<ConstantValue> { + + public static final String KEY_CONSTANT = "constant"; + public static final String KEY_VALUE = "value"; + + @Override + public ConstantValue createInstance() { + return new ConstantValue(); + } + + @Override + public ConstantValue loadXMLElement(Element xmlElement) throws Exception { + ConstantValue constantValue = super.loadXMLElement(xmlElement); + constantValue.setConstant((Constant) getFactory(Constant.class).loadXMLElement(getElementByTagName(xmlElement, KEY_CONSTANT))); + constantValue.setValue(getProperty(xmlElement, KEY_VALUE)); + return constantValue; + } + + @Override + public void saveXMLElement(Document document, Element xmlElement, + ConstantValue element) throws Exception { + + Element xmlConstant = document.createElement(KEY_CONSTANT); + getFactory(Constant.class).saveXMLElement(document, xmlElement, element.getConstant()); + xmlElement.appendChild(xmlConstant); + + setProperty(document, xmlElement, KEY_VALUE, element.getValue()); + } + + + +} Deleted: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/DescriptorFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/DescriptorFactory.java 2007-12-03 17:37:30 UTC (rev 31) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/DescriptorFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -1,26 +0,0 @@ -package org.cemagref.simexplorer.si.storage.dao.factories; - -import org.cemagref.simexplorer.si.storage.dao.EntityFactory; -import org.cemagref.simexplorer.si.storage.entities.Descriptor; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class DescriptorFactory<E extends Descriptor> extends EntityFactory<Descriptor> { - - public Descriptor createInstance() { - return new Descriptor(); - } - - public Descriptor loadXMLElement(Element xmlElement) throws Throwable { - Descriptor descriptor = createInstance(); - descriptor.setName(xmlElement.getAttribute("name")); - descriptor.setValue(xmlElement.getAttribute("value")); - return descriptor; - } - - public void saveXMLElement(org.w3c.dom.Document document, Element xmlElement, Descriptor element) throws Throwable { - xmlElement.setAttribute("name", element.getName()); - xmlElement.setAttribute("value", element.getValue()); - } - -} Copied: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/DescriptorFactory.java (from rev 35, trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/DescriptorFactory.java) =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/DescriptorFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/DescriptorFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,28 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Descriptor; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +public class DescriptorFactory<E extends Descriptor> extends EntityFactory<Descriptor> { + + public static final String KEY_NAME = "name"; + public static final String KEY_VALUE = "value"; + + public Descriptor createInstance() { + return new Descriptor(); + } + + public Descriptor loadXMLElement(Element xmlElement) throws Exception { + Descriptor descriptor = super.loadXMLElement(xmlElement); + descriptor.setName(xmlElement.getAttribute(KEY_NAME)); + descriptor.setValue(xmlElement.getAttribute(KEY_VALUE)); + return descriptor; + } + + public void saveXMLElement(org.w3c.dom.Document document, Element xmlElement, Descriptor element) throws Exception { + xmlElement.setAttribute(KEY_NAME, element.getName()); + xmlElement.setAttribute(KEY_VALUE, element.getValue()); + } + +} Copied: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/EntityFactory.java (from rev 35, trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/EntityFactory.java) =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/EntityFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/EntityFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,146 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.StringTokenizer; + +import org.cemagref.simexplorer.si.storage.entities.Entity; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.Text; + +public abstract class EntityFactory<E extends Entity> { + + private final static String PACKAGE_DAO = "org.cemagref.simexplorer.si.storage.factories"; + + private static Map<String, EntityFactory> factories = new HashMap<String, EntityFactory>(); + + public static EntityFactory getFactory(String entityClassName) + throws Exception { + EntityFactory entityFactory = factories.get(entityClassName); + if (entityFactory == null) { + + StringTokenizer st = new StringTokenizer(entityClassName, "."); + String simpleClassName = null; + while (st.hasMoreTokens()) { + simpleClassName = st.nextToken(); + } + + String elementFactoryClassName = simpleClassName + "Factory"; + + Class elementFactoryClass = Class.forName(PACKAGE_DAO + "." + + elementFactoryClassName); + + entityFactory = (EntityFactory) elementFactoryClass.newInstance(); + factories.put(entityClassName, entityFactory); + } + + return entityFactory; + } + + /** + * @param entityClass + * @return + * @throws Throwable + */ + public static EntityFactory getFactory(Class entityClass) throws Exception { + return getFactory(entityClass.getName()); + } + + public abstract E createInstance(); + + public E loadXMLElement(Element xmlElement) throws Exception { + E element = createInstance(); + return element; + } + + protected Set<Element> getElementsByTagName(Element xmlElement, + String tagName) { + Set<Element> elements = new HashSet<Element>(); + + NodeList nodes = xmlElement.getChildNodes(); + for (int i = 0; i < nodes.getLength(); i++) { + Node node = nodes.item(i); + if (node instanceof Element + && tagName.equals(((Element) node).getTagName())) { + elements.add((Element) node); + } + } + return elements; + } + + protected Element getElementByTagName(Element xmlElement, String tagName) { + Set<Element> elements = getElementsByTagName(xmlElement, tagName); + if (elements.size() > 0) { + return elements.iterator().next(); + } else { + return null; + } + } + + protected void setProperty(Document document, Element xmlElement, + String tagName, Object value) { + if (value != null) { + Element xmlProperty = document.createElement(tagName); + Text xmlDescriptionText = document.createTextNode(value.toString()); + xmlProperty.appendChild(xmlDescriptionText); + xmlElement.appendChild(xmlProperty); + } + } + + protected String getProperty(Element xmlElement, String tagName) { + Element element = getElementByTagName(xmlElement, tagName); + if (element != null) { + return element.getFirstChild().getNodeValue(); + } else { + return null; + } + } + + public abstract void saveXMLElement(Document document, Element xmlElement, + E element) throws Exception; + + public Set loadCollection(String tagSetName, String tagName, Class clazz, + Element xmlElement) throws Exception { + Set entities = new HashSet(); + + Element xmlCollection = getElementByTagName(xmlElement, tagSetName); + if (xmlCollection != null) { + EntityFactory elementFactory = getFactory(clazz); + + Set<Element> list = getElementsByTagName(xmlCollection, tagName); + for (Iterator iterator = list.iterator(); iterator.hasNext();) { + Element element = (Element) iterator.next(); + Entity entity = elementFactory.loadXMLElement(element); + entities.add(entity); + } + } + + return entities; + } + + public void saveCollection(Set entities, String tagSetName, String tagName, + Class clazz, Document document, Element xmlElement) + throws Exception { + if (entities != null && entities.size() > 0) { + Element xmlCollection = document.createElement(tagSetName); + EntityFactory elementFactory = getFactory(clazz); + for (Object entity : entities) { + Element childElement = document.createElement(tagName); + // TODO + // if (entity instanceof LoggableElement) { + // elementFactory.saveXMLElementByReference + elementFactory.saveXMLElement(document, childElement, + (Entity) entity); + xmlCollection.appendChild(childElement); + } + xmlElement.appendChild(xmlCollection); + } + } + +} Deleted: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationApplicationFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/ExplorationApplicationFactory.java 2007-12-03 17:37:30 UTC (rev 31) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationApplicationFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -1,35 +0,0 @@ -package org.cemagref.simexplorer.si.storage.dao.factories; - -import java.util.Set; - -import org.cemagref.simexplorer.si.storage.dao.ElementDAOFactory; -import org.cemagref.simexplorer.si.storage.dao.EntityFactory; -import org.cemagref.simexplorer.si.storage.dao.LoggableElementFactory; -import org.cemagref.simexplorer.si.storage.entities.Component; -import org.cemagref.simexplorer.si.storage.entities.Entity; -import org.cemagref.simexplorer.si.storage.entities.ExplorationApplication; -import org.cemagref.simexplorer.si.storage.entities.ExplorationData; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class ExplorationApplicationFactory extends LoggableElementFactory<ExplorationApplication> { - - @Override - public void saveXMLElement(Document document, Element xmlElement, ExplorationApplication element) throws Throwable { - super.saveXMLElement(document, xmlElement, element); - saveCollection(element.getExplorations(), "data", "explorationData", ExplorationData.class.getClass(), document, xmlElement); - saveCollection(element.getComponents(), "components", "component", Component.class.getClass(), document, xmlElement); - } - - @Override - public ExplorationApplication loadXMLElement(Element xmlElement) throws Throwable { - ExplorationApplication explorationApplication = super.loadXMLElement(xmlElement); - return explorationApplication; - } - - public ExplorationApplication createInstance() { - return new ExplorationApplication(); - } - -} Copied: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationApplicationFactory.java (from rev 35, trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/ExplorationApplicationFactory.java) =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationApplicationFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationApplicationFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,44 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Component; +import org.cemagref.simexplorer.si.storage.entities.ExplorationApplication; +import org.cemagref.simexplorer.si.storage.entities.ExplorationData; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class ExplorationApplicationFactory extends + LoggableElementFactory<ExplorationApplication> { + + public static final String KEY_DATA = "data"; + public static final String KEY_DATA_NODE = "explorationdata"; + public static final String KEY_COMPONENTS = "components"; + public static final String KEY_COMPONENT_NODE = "component"; + + @Override + public void saveXMLElement(Document document, Element xmlElement, + ExplorationApplication element) throws Exception { + super.saveXMLElement(document, xmlElement, element); + saveCollection(element.getExplorations(), KEY_DATA, KEY_DATA_NODE, + ExplorationData.class.getClass(), document, xmlElement); + saveCollection(element.getComponents(), KEY_COMPONENTS, + KEY_COMPONENT_NODE, Component.class.getClass(), document, + xmlElement); + } + + @Override + public ExplorationApplication loadXMLElement(Element xmlElement) + throws Exception { + ExplorationApplication explorationApplication = super + .loadXMLElement(xmlElement); + explorationApplication.setExplorations(loadCollection(KEY_DATA, + KEY_DATA_NODE, ExplorationData.class.getClass(), xmlElement)); + explorationApplication.setComponents(loadCollection(KEY_COMPONENTS, + KEY_COMPONENT_NODE, Component.class.getClass(), xmlElement)); + return explorationApplication; + } + + public ExplorationApplication createInstance() { + return new ExplorationApplication(); + } + +} Copied: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationDataFactory.java (from rev 35, trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/ExplorationDataFactory.java) =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationDataFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ExplorationDataFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,44 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Constant; +import org.cemagref.simexplorer.si.storage.entities.ConstantValue; +import org.cemagref.simexplorer.si.storage.entities.ExplorationData; +import org.cemagref.simexplorer.si.storage.entities.Result; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class ExplorationDataFactory extends + LoggableElementFactory<ExplorationData> { + + public static final String KEY_RESULT = "result"; + public static final String KEY_VALUES = "values"; + public static final String KEY_VALUE = "value"; + + @Override + public ExplorationData loadXMLElement(Element xmlElement) throws Exception { + ExplorationData explorationData = super.loadXMLElement(xmlElement); + explorationData.setResult((Result) getFactory(Result.class).loadXMLElement( + getElementByTagName(xmlElement, KEY_RESULT))); + explorationData.setValuesMap(loadCollection(KEY_VALUES, KEY_VALUE, ConstantValue.class, xmlElement)); + return explorationData; + } + + @Override + public void saveXMLElement(Document document, Element xmlElement, + ExplorationData element) throws Exception { + super.saveXMLElement(document, xmlElement, element); + + Element xmlResult = document.createElement(KEY_RESULT); + getFactory(Result.class).saveXMLElement(document, xmlResult, element.getResult()); + xmlElement.appendChild(xmlResult); + + saveCollection(element.getValuesMap(), KEY_VALUES, KEY_VALUE, ConstantValue.class, document, xmlElement); + + } + + @Override + public ExplorationData createInstance() { + return new ExplorationData(); + } + +} Added: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/LibraryFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/LibraryFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/LibraryFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,12 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Library; + +public class LibraryFactory extends LoggableElementFactory<Library> { + + @Override + public Library createInstance() { + return new Library(); + } + +} Copied: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/LoggableElementFactory.java (from rev 35, trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/LoggableElementFactory.java) =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/LoggableElementFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/LoggableElementFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,65 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import java.util.Date; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.cemagref.simexplorer.si.storage.database.DatabaseConstants; +import org.cemagref.simexplorer.si.storage.entities.LoggableElement; +import org.w3c.dom.Element; + +public abstract class LoggableElementFactory<E extends LoggableElement> extends + EntityFactory<E> implements DatabaseConstants { + + private static final String KEY_DESCRIPTION = "description"; + + private static DocumentBuilder documentBuilder = null; + + public static synchronized DocumentBuilder getBuilder() throws Exception { + if (documentBuilder == null) { + DocumentBuilderFactory factory = DocumentBuilderFactory + .newInstance(); + documentBuilder = factory.newDocumentBuilder(); + return documentBuilder; + } + return documentBuilder; + } + + @Override + public E loadXMLElement(Element xmlElement) throws Exception { + E element = super.loadXMLElement(xmlElement); + element.setUuid(getProperty(xmlElement, KEY_UUID)); + element.setName(getProperty(xmlElement, KEY_NAME)); + element.setType(getProperty(xmlElement, KEY_TYPE)); + element.setDescription(getProperty(xmlElement, KEY_DESCRIPTION)); + + // FIXME Convert + /* + element.setMajorVersion(new Integer(getProperty(xmlElement, KEY_MAJORVERSION))); + element.setMinorVersion(new Integer(getProperty(xmlElement, KEY_MINORVERSION))); + element.setCreationDate(new Date(getProperty(xmlElement, KEY_CREATIONDATE))); + */ + + element.setHash(getProperty(xmlElement, KEY_HASH)); + return element; + } + + @Override + public void saveXMLElement(org.w3c.dom.Document document, + Element xmlElement, E element) throws Exception { + + setProperty(document, xmlElement, KEY_UUID, element.getUuid()); + setProperty(document, xmlElement, KEY_NAME, element.getName()); + setProperty(document, xmlElement, KEY_TYPE, element.getType()); + setProperty(document, xmlElement, KEY_DESCRIPTION, element.getDescription()); + /* + setProperty(document, xmlElement, KEY_CREATIONDATE, element.getCreationDate()); + setProperty(document, xmlElement, KEY_MAJORVERSION, element.getMajorVersion()); + setProperty(document, xmlElement, KEY_MINORVERSION, element.getMinorVersion()); + */ + setProperty(document, xmlElement, KEY_HASH, element.getHash()); + + } + +} Added: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/RepositoryFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/RepositoryFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/RepositoryFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,20 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Repository; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class RepositoryFactory<E extends Repository> extends EntityFactory<Repository> { + + @Override + public Repository createInstance() { + return new Repository(); + } + + @Override + public void saveXMLElement(Document document, Element xmlElement, + Repository element) throws Exception { + + } + +} Added: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ResultFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ResultFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/ResultFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,20 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Result; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class ResultFactory<E extends Result> extends EntityFactory<Result> { + + @Override + public Result createInstance() { + return new Result(); + } + + @Override + public void saveXMLElement(Document document, Element xmlElement, + Result element) throws Exception { + + } + +} Added: trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/StructureFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/StructureFactory.java (rev 0) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/factories/StructureFactory.java 2007-12-05 15:22:53 UTC (rev 39) @@ -0,0 +1,7 @@ +package org.cemagref.simexplorer.si.storage.factories; + +import org.cemagref.simexplorer.si.storage.entities.Structure; + +public abstract class StructureFactory<E extends Structure> extends EntityFactory<Structure> { + +}
participants (1)
-
glandais@users.labs.libre-entreprise.org