Author: glandais Date: 2007-12-05 15:33:33 +0000 (Wed, 05 Dec 2007) New Revision: 44 Removed: 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/dao/factories/EntityFactory.java 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/dao/factories/ExplorationDataFactory.java trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/LoggableElementFactory.java Log: Refactoring factories Deleted: 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/dao/factories/DescriptorFactory.java 2007-12-05 15:24:39 UTC (rev 43) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/DescriptorFactory.java 2007-12-05 15:33:33 UTC (rev 44) @@ -1,28 +0,0 @@ -package org.cemagref.simexplorer.si.storage.dao.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 Throwable { - Descriptor descriptor = createInstance(); - 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 Throwable { - xmlElement.setAttribute(KEY_NAME, element.getName()); - xmlElement.setAttribute(KEY_VALUE, element.getValue()); - } - -} Deleted: 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/dao/factories/EntityFactory.java 2007-12-05 15:24:39 UTC (rev 43) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/EntityFactory.java 2007-12-05 15:33:33 UTC (rev 44) @@ -1,90 +0,0 @@ -package org.cemagref.simexplorer.si.storage.dao.factories; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -import org.cemagref.simexplorer.si.storage.dao.ElementDAOFactory; -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; - -public abstract class EntityFactory<E extends Entity> { - - public abstract E createInstance(); - - public E loadXMLElement(Element xmlElement) throws Throwable { - 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; - } - } - - public abstract void saveXMLElement(Document document, Element xmlElement, - E element) throws Throwable; - - public Set loadCollection(String tagSetName, String tagName, Class clazz, - Element xmlElement) throws Throwable { - Set entities = new HashSet(); - - Element xmlCollection = getElementByTagName(xmlElement, tagSetName); - if (xmlCollection != null) { - EntityFactory elementFactory = (EntityFactory) ElementDAOFactory - .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 Throwable { - if (entities != null && entities.size() > 0) { - Element xmlCollection = document.createElement(tagSetName); - EntityFactory elementFactory = (EntityFactory) ElementDAOFactory - .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/dao/factories/ExplorationApplicationFactory.java =================================================================== --- trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/ExplorationApplicationFactory.java 2007-12-05 15:24:39 UTC (rev 43) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/ExplorationApplicationFactory.java 2007-12-05 15:33:33 UTC (rev 44) @@ -1,44 +0,0 @@ -package org.cemagref.simexplorer.si.storage.dao.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 Throwable { - 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 Throwable { - 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(); - } - -} Deleted: 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/dao/factories/ExplorationDataFactory.java 2007-12-05 15:24:39 UTC (rev 43) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/ExplorationDataFactory.java 2007-12-05 15:33:33 UTC (rev 44) @@ -1,13 +0,0 @@ -package org.cemagref.simexplorer.si.storage.dao.factories; - -import org.cemagref.simexplorer.si.storage.entities.ExplorationData; - -public class ExplorationDataFactory extends - LoggableElementFactory<ExplorationData> { - - @Override - public ExplorationData createInstance() { - return new ExplorationData(); - } - -} Deleted: 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/dao/factories/LoggableElementFactory.java 2007-12-05 15:24:39 UTC (rev 43) +++ trunk/simexplorer-si-storage/src/java/org/cemagref/simexplorer/si/storage/dao/factories/LoggableElementFactory.java 2007-12-05 15:33:33 UTC (rev 44) @@ -1,48 +0,0 @@ -package org.cemagref.simexplorer.si.storage.dao.factories; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.cemagref.simexplorer.si.storage.database.lucene.LuceneConstants; -import org.cemagref.simexplorer.si.storage.entities.LoggableElement; -import org.w3c.dom.Element; -import org.w3c.dom.Text; - -public abstract class LoggableElementFactory<E extends LoggableElement> extends - EntityFactory<E> implements LuceneConstants { - - private static final String KEY_DESCRIPTION = "description"; - - private static DocumentBuilder documentBuilder = null; - - public static synchronized DocumentBuilder getBuilder() throws Throwable { - if (documentBuilder == null) { - DocumentBuilderFactory factory = DocumentBuilderFactory - .newInstance(); - documentBuilder = factory.newDocumentBuilder(); - return documentBuilder; - } - return documentBuilder; - } - - @Override - public E loadXMLElement(Element xmlElement) throws Throwable { - E element = super.loadXMLElement(xmlElement); - // FIXME load all properties - element.setDescription(getElementByTagName(xmlElement, KEY_DESCRIPTION) - .getNodeValue()); - - return element; - } - - @Override - public void saveXMLElement(org.w3c.dom.Document document, - Element xmlElement, E element) throws Throwable { - // FIXME save all fields - Element xmlDescription = document.createElement(KEY_DESCRIPTION); - Text xmlDescriptionText = document.createTextNode(element.getDescription()); - xmlDescription.appendChild(xmlDescriptionText); - xmlElement.appendChild(xmlDescription); - } - -}
participants (1)
-
glandais@users.labs.libre-entreprise.org