Author: glandais Date: 2008-01-09 14:10:43 +0000 (Wed, 09 Jan 2008) New Revision: 103 Added: trunk/simexplorer-is-entities/.classpath trunk/simexplorer-is-entities/.project trunk/simexplorer-is-entities/.settings/ trunk/simexplorer-is-entities/.settings/org.eclipse.jdt.core.prefs trunk/simexplorer-is-entities/.settings/org.eclipse.jst.common.project.facet.core.prefs trunk/simexplorer-is-entities/.settings/org.eclipse.wst.common.component trunk/simexplorer-is-entities/.settings/org.eclipse.wst.common.project.facet.core.xml trunk/simexplorer-is-entities/pom.xml trunk/simexplorer-is-entities/src/ trunk/simexplorer-is-entities/src/main/ trunk/simexplorer-is-entities/src/main/java/ trunk/simexplorer-is-entities/src/main/java/META-INF/ trunk/simexplorer-is-entities/src/main/java/META-INF/MANIFEST.MF trunk/simexplorer-is-entities/src/main/java/fr/ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/ContentType.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/ContentTypeFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/RawType.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/BaseEntity.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Code.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Component.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Constant.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ConstantValue.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/DataEntity.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ExplorationApplication.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ExplorationData.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Library.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/LoggableElement.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Repository.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Result.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Structure.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/metadata/ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/metadata/MetaDataEntity.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/metadata/Version.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/BaseEntityFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/CodeFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ComponentFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ConstantFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ConstantValueFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ExplorationApplicationFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ExplorationDataFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/LibraryFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/LoggableElementFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/MetaDataEntityFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/RepositoryFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ResultFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/StructureFactory.java trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/XmlConstants.java trunk/simexplorer-is-entities/src/main/resources/ trunk/simexplorer-is-entities/src/test/ trunk/simexplorer-is-entities/src/test/java/ trunk/simexplorer-is-entities/src/test/resources/ Log: Entities split Added: trunk/simexplorer-is-entities/.classpath =================================================================== --- trunk/simexplorer-is-entities/.classpath (rev 0) +++ trunk/simexplorer-is-entities/.classpath 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src/main/java"/> + <classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> + <classpathentry excluding="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/> + <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/> + <classpathentry kind="var" path="M2_REPO/org/testng/testng/5.1/testng-5.1-jdk15.jar"/> + <classpathentry kind="con" path="org.jboss.ide.eclipse.as.classpath.core.runtime.ProjectRuntimeInitializer/JBoss 4.2 Runtime"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/java-6-sun-1.6.0.03"/> + <classpathentry kind="output" path="target/classes"/> +</classpath> Added: trunk/simexplorer-is-entities/.project =================================================================== --- trunk/simexplorer-is-entities/.project (rev 0) +++ trunk/simexplorer-is-entities/.project 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,26 @@ +<projectDescription> + <name>simexplorer-is-entities</name> + <comment></comment> + <projects/> + <buildSpec> + <buildCommand> + <name>org.eclipse.wst.common.project.facet.core.builder</name> + </buildCommand> + <buildCommand> + <name>org.maven.ide.eclipse.maven2Builder</name> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + </buildCommand> + <buildCommand> + <name>org.eclipse.wst.validation.validationbuilder</name> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.maven.ide.eclipse.maven2Nature</nature> + <nature>org.eclipse.wst.common.project.facet.core.nature</nature> + <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> + <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> + </natures> +</projectDescription> \ No newline at end of file Added: trunk/simexplorer-is-entities/.settings/org.eclipse.jdt.core.prefs =================================================================== --- trunk/simexplorer-is-entities/.settings/org.eclipse.jdt.core.prefs (rev 0) +++ trunk/simexplorer-is-entities/.settings/org.eclipse.jdt.core.prefs 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,7 @@ +#Tue Jan 08 17:50:25 CET 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 Added: trunk/simexplorer-is-entities/.settings/org.eclipse.jst.common.project.facet.core.prefs =================================================================== --- trunk/simexplorer-is-entities/.settings/org.eclipse.jst.common.project.facet.core.prefs (rev 0) +++ trunk/simexplorer-is-entities/.settings/org.eclipse.jst.common.project.facet.core.prefs 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,4 @@ +#Wed Jan 09 10:45:48 CET 2008 +classpath.helper/org.eclipse.jdt.launching.JRE_CONTAINER\:\:org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType\:\:java-6-sun-1.6.0.03/owners=jst.java\:5.0 +classpath.helper/org.jboss.ide.eclipse.as.classpath.core.runtime.ProjectRuntimeInitializer\:\:JBoss\ 4.2\ Runtime/owners=jst.utility\:1.0 +eclipse.preferences.version=1 Added: trunk/simexplorer-is-entities/.settings/org.eclipse.wst.common.component =================================================================== --- trunk/simexplorer-is-entities/.settings/org.eclipse.wst.common.component (rev 0) +++ trunk/simexplorer-is-entities/.settings/org.eclipse.wst.common.component 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project-modules id="moduleCoreId" project-version="1.5.0"> + <wb-module deploy-name="simexplorer-is-entities"> + <wb-resource deploy-path="/" source-path="/src/main/java"/> + <wb-resource deploy-path="/" source-path="/src/main/resources"/> + <wb-resource deploy-path="/" source-path="/src/test/java"/> + <wb-resource deploy-path="/" source-path="/src/test/resources"/> + </wb-module> +</project-modules> Added: trunk/simexplorer-is-entities/.settings/org.eclipse.wst.common.project.facet.core.xml =================================================================== --- trunk/simexplorer-is-entities/.settings/org.eclipse.wst.common.project.facet.core.xml (rev 0) +++ trunk/simexplorer-is-entities/.settings/org.eclipse.wst.common.project.facet.core.xml 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<faceted-project> + <runtime name="JBoss 4.2 Runtime"/> + <fixed facet="jst.java"/> + <fixed facet="jst.utility"/> + <installed facet="jst.utility" version="1.0"/> + <installed facet="jst.java" version="5.0"/> +</faceted-project> Added: trunk/simexplorer-is-entities/pom.xml =================================================================== --- trunk/simexplorer-is-entities/pom.xml (rev 0) +++ trunk/simexplorer-is-entities/pom.xml 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + <groupId>simexplorer-is</groupId> + <artifactId>simexplorer-is-entities</artifactId> + <version>0.0.1-SNAPSHOT</version> + <description></description> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.5</source> + <target>1.5</target> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + <version>5.1</version> + <classifier>jdk15</classifier> + <scope>test</scope> + </dependency> + </dependencies> + +</project> \ No newline at end of file Added: trunk/simexplorer-is-entities/src/main/java/META-INF/MANIFEST.MF =================================================================== --- trunk/simexplorer-is-entities/src/main/java/META-INF/MANIFEST.MF (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/META-INF/MANIFEST.MF 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/ContentType.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/ContentType.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/ContentType.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,62 @@ +package fr.cemagref.simexplorer.is.contenttype; + +import java.io.InputStream; +import java.io.Reader; + +/** + * Content handler + * + * @author landais + * + */ +public abstract class ContentType { + + /** + * MIME type + */ + private String mimeType; + /** + * Text description + */ + private String description; + + /** + * Index content + * + * @param is + * Input stream + * @return Indexable text + */ + public abstract Reader renderToText(InputStream is) throws Exception; + + /** + * @return the mimeType + */ + public String getMimeType() { + return mimeType; + } + + /** + * @param mimeType + * the mimeType to set + */ + protected void setMimeType(String mimeType) { + this.mimeType = mimeType; + } + + /** + * @return the description + */ + public String getDescription() { + return description; + } + + /** + * @param description + * the description to set + */ + protected void setDescription(String description) { + this.description = description; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/ContentTypeFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/ContentTypeFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/ContentTypeFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,48 @@ +package fr.cemagref.simexplorer.is.contenttype; + +import java.util.HashMap; +import java.util.Map; + +/** + * Cache content types + * + * @author landais + * + */ +public class ContentTypeFactory { + + /** + * Content type cache + */ + private static Map<String, ContentType> contentTypes = null; + + /** + * Retrieve a content type instance + * + * @param contentTypeClassSimpleName + * Class required + * @return Instance + * @throws Exception + */ + public static ContentType getContentTypeInstance( + String contentTypeClassSimpleName) throws Exception { + + // Create cache if doesn't exist + if (contentTypes == null) { + contentTypes = new HashMap<String, ContentType>(); + } + // Check cache + ContentType result = contentTypes.get(contentTypeClassSimpleName); + // Create instance if doesn't exist, and puts it in cache + if (result == null) { + Class<?> contentTypeClass = Class.forName(ContentTypeFactory.class + .getPackage().getName() + + "." + contentTypeClassSimpleName); + result = (ContentType) contentTypeClass.newInstance(); + contentTypes.put(contentTypeClass.getSimpleName(), result); + } + return result; + + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/RawType.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/RawType.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/contenttype/RawType.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,30 @@ +package fr.cemagref.simexplorer.is.contenttype; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; + +/** + * Raw content type + * + * @author landais + * + */ +public class RawType extends ContentType { + + /** + * Set inner properties + */ + public RawType() { + super(); + setDescription("rawtype"); + setMimeType("text/text"); + } + + @Override + public Reader renderToText(InputStream is) { + // No parsing + return new InputStreamReader(is); + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/BaseEntity.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/BaseEntity.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/BaseEntity.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,7 @@ +package fr.cemagref.simexplorer.is.entities; + +import java.io.Serializable; + +public abstract class BaseEntity implements Serializable { + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Code.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Code.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Code.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,28 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import java.io.Serializable; + +public class Code extends DataEntity implements Serializable { + + private static final long serialVersionUID = 1232989963544650014L; + + private String language; + private String code; + + public String getLanguage() { + return language; + } + + public void setLanguage(String language) { + this.language = language; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Component.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Component.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Component.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,47 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import java.io.Serializable; +import java.util.Set; + +public class Component extends LoggableElement implements Serializable { + + private static final long serialVersionUID = -1759921918565071510L; + + Set<Constant> constants; + Set<Structure> structures; + Set<Code> codes; + Set<Library> libraries; + + public Set<Constant> getConstants() { + return constants; + } + + public void setConstants(Set<Constant> constants) { + this.constants = constants; + } + + public Set<Structure> getStructures() { + return structures; + } + + public void setStructures(Set<Structure> structures) { + this.structures = structures; + } + + public Set<Code> getCodes() { + return codes; + } + + public void setCodes(Set<Code> codes) { + this.codes = codes; + } + + public Set<Library> getLibraries() { + return libraries; + } + + public void setLibraries(Set<Library> libraries) { + this.libraries = libraries; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Constant.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Constant.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Constant.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,28 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import java.io.Serializable; + +public class Constant extends DataEntity implements Serializable { + + private static final long serialVersionUID = 5473300963328292128L; + + private String name; + private Class<?> type; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Class<?> getType() { + return type; + } + + public void setType(Class<?> type) { + this.type = type; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ConstantValue.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ConstantValue.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ConstantValue.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,28 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import java.io.Serializable; + +public class ConstantValue extends DataEntity implements Serializable { + + private static final long serialVersionUID = -5434140706898012637L; + + private String value; + private Constant constant; + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public Constant getConstant() { + return constant; + } + + public void setConstant(Constant constant) { + this.constant = constant; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/DataEntity.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/DataEntity.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/DataEntity.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,39 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import fr.cemagref.simexplorer.is.entities.BaseEntity; + +public abstract class DataEntity extends BaseEntity { + + private DataEntity parentData; + + public LoggableElement getParentLoggableElement() { + LoggableElement parentLoggableElement = null; + if (getParentData() instanceof LoggableElement) { + parentLoggableElement = (LoggableElement) getParentData(); + } else { + if (getParentData() == null) { + parentLoggableElement = null; + } else { + parentLoggableElement = getParentData() + .getParentLoggableElement(); + } + } + return parentLoggableElement; + } + + /** + * @return the parentData + */ + public DataEntity getParentData() { + return parentData; + } + + /** + * @param parentData + * the parentData to set + */ + public void setParentData(DataEntity parentData) { + this.parentData = parentData; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ExplorationApplication.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ExplorationApplication.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ExplorationApplication.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,29 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import java.io.Serializable; +import java.util.Set; + +public class ExplorationApplication extends LoggableElement implements Serializable { + + private static final long serialVersionUID = 122049347724394193L; + + private Set<ExplorationData> explorations; + private Set<Component> components; + + public Set<ExplorationData> getExplorations() { + return explorations; + } + + public void setExplorations(Set<ExplorationData> explorations) { + this.explorations = explorations; + } + + public Set<Component> getComponents() { + return components; + } + + public void setComponents(Set<Component> components) { + this.components = components; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ExplorationData.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ExplorationData.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/ExplorationData.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,57 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import java.io.Serializable; +import java.util.Set; + +public class ExplorationData extends LoggableElement implements Serializable { + + private static final long serialVersionUID = -6439801837608358754L; + + private Set<ConstantValue> valuesMap; + private Result result; + + private ConstantValue findConstantValue(Constant c) { + for (ConstantValue constantValue : valuesMap) { + if (c.equals(constantValue.getConstant())) { + return constantValue; + } + } + return null; + } + + public void setConstantValue(Constant c, String value) { + ConstantValue constantValue = findConstantValue(c); + if (constantValue == null) { + constantValue = new ConstantValue(); + constantValue.setConstant(c); + valuesMap.add(constantValue); + } + constantValue.setValue(value); + } + + public Object getConstantValue(Constant c) { + ConstantValue constantValue = findConstantValue(c); + if (constantValue == null) { + return null; + } else { + return constantValue.getValue(); + } + } + + public Result getResult() { + return result; + } + + public void setResult(Result result) { + this.result = result; + } + + public Set<ConstantValue> getValuesMap() { + return valuesMap; + } + + public void setValuesMap(Set<ConstantValue> valuesMap) { + this.valuesMap = valuesMap; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Library.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Library.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Library.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,9 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import java.io.Serializable; + +public class Library extends LoggableElement implements Serializable { + + private static final long serialVersionUID = -5635619075345573945L; + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/LoggableElement.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/LoggableElement.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/LoggableElement.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,24 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity; + +public abstract class LoggableElement extends DataEntity { + + private MetaDataEntity metaData; + + /** + * @return the metaData + */ + public MetaDataEntity getMetaData() { + return metaData; + } + + /** + * @param metaData + * the metaData to set + */ + public void setMetaData(MetaDataEntity metaData) { + this.metaData = metaData; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Repository.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Repository.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Repository.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,9 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import java.io.Serializable; + +public class Repository extends DataEntity implements Serializable { + + private static final long serialVersionUID = 1232065724338066924L; + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Result.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Result.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Result.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,9 @@ +package fr.cemagref.simexplorer.is.entities.data; + +import java.io.Serializable; + +public class Result extends DataEntity implements Serializable { + + private static final long serialVersionUID = 2111484866027162494L; + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Structure.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Structure.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/data/Structure.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,5 @@ +package fr.cemagref.simexplorer.is.entities.data; + +public abstract class Structure extends DataEntity { + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/metadata/MetaDataEntity.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/metadata/MetaDataEntity.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/metadata/MetaDataEntity.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,232 @@ +package fr.cemagref.simexplorer.is.entities.metadata; + +import java.io.Serializable; +import java.util.Date; +import java.util.Map; + +import fr.cemagref.simexplorer.is.contenttype.ContentType; +import fr.cemagref.simexplorer.is.entities.BaseEntity; + +public class MetaDataEntity extends BaseEntity implements Serializable { + + private static final long serialVersionUID = -7916932464982315229L; + + private String uuid; + private String name; + private String type; + private String description; + private Version version; + private Date creationDate; + private String hash; + private Map<String, String> descriptors; + private Map<String, ContentType> attachments; + private String parentDataUuid; + private String parentDataVersion; + private String parentVersionUuid; + private String parentVersionVersion; + private boolean latest; + + /** + * @return the uuid + */ + public String getUuid() { + return uuid; + } + + /** + * @param uuid + * the uuid to set + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name + * the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the type + */ + public String getType() { + return type; + } + + /** + * @param type + * the type to set + */ + public void setType(String type) { + this.type = type; + } + + /** + * @return the description + */ + public String getDescription() { + return description; + } + + /** + * @param description + * the description to set + */ + public void setDescription(String description) { + this.description = description; + } + + /** + * @return the version + */ + public Version getVersion() { + return version; + } + + /** + * @param version + * the version to set + */ + public void setVersion(String version) { + this.version = new Version(version); + } + + /** + * @return the creationDate + */ + public Date getCreationDate() { + return creationDate; + } + + /** + * @param creationDate + * the creationDate to set + */ + public void setCreationDate(Date creationDate) { + this.creationDate = creationDate; + } + + /** + * @return the hash + */ + public String getHash() { + return hash; + } + + /** + * @param hash + * the hash to set + */ + public void setHash(String hash) { + this.hash = hash; + } + + /** + * @return the descriptors + */ + public Map<String, String> getDescriptors() { + return descriptors; + } + + /** + * @param descriptors + * the descriptors to set + */ + public void setDescriptors(Map<String, String> descriptors) { + this.descriptors = descriptors; + } + + /** + * @return the attachments + */ + public Map<String, ContentType> getAttachments() { + return attachments; + } + + /** + * @param attachments + * the attachments to set + */ + public void setAttachments(Map<String, ContentType> attachments) { + this.attachments = attachments; + } + + /** + * @return the parentDataUuid + */ + public String getParentDataUuid() { + return parentDataUuid; + } + + /** + * @param parentDataUuid + * the parentDataUuid to set + */ + public void setParentDataUuid(String parentDataUuid) { + this.parentDataUuid = parentDataUuid; + } + + /** + * @return the parentDataVersion + */ + public String getParentDataVersion() { + return parentDataVersion; + } + + /** + * @param parentDataVersion + * the parentDataVersion to set + */ + public void setParentDataVersion(String parentDataVersion) { + this.parentDataVersion = parentDataVersion; + } + + /** + * @return the parentVersionUuid + */ + public String getParentVersionUuid() { + return parentVersionUuid; + } + + /** + * @param parentVersionUuid + * the parentVersionUuid to set + */ + public void setParentVersionUuid(String parentVersionUuid) { + this.parentVersionUuid = parentVersionUuid; + } + + /** + * @return the parentVersionVersion + */ + public String getParentVersionVersion() { + return parentVersionVersion; + } + + /** + * @param parentVersionVersion + * the parentVersionVersion to set + */ + public void setParentVersionVersion(String parentVersionVersion) { + this.parentVersionVersion = parentVersionVersion; + } + + public boolean isLatest() { + return latest; + } + + public void setLatest(boolean latest) { + this.latest = latest; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/metadata/Version.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/metadata/Version.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/entities/metadata/Version.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,140 @@ +package fr.cemagref.simexplorer.is.entities.metadata; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; + +/** + * Pointed version class + * + * @author glandais + * + */ +public class Version implements Comparable<Version>, Serializable { + + private static final long serialVersionUID = 8982527036997002451L; + /** + * Inner storage + */ + private List<Integer> pointedVersion; + + /** + * Default constructor + * + * @param version + * String version + */ + public Version(String version) { + super(); + // Initialize list + pointedVersion = new ArrayList<Integer>(); + if (version != null) { + // tokenize on dot + StringTokenizer st = new StringTokenizer(version, "."); + while (st.hasMoreTokens()) { + pointedVersion.add(new Integer(st.nextToken())); + } + } + } + + /** + * Retrieve sub version + * + * @param position + * Sub version wanted + * @return + */ + public Integer getVersion(int position) { + if (position < pointedVersion.size()) { + return pointedVersion.get(position); + } else { + return null; + } + } + + /** + * Set a sub version + * + * @param position + * Sub version to modify + * @param subVersion + * New value + */ + public void setVersion(int position, int subVersion) { + while (getVersion(position) == null) { + addSubVersion(0); + } + pointedVersion.set(position, subVersion); + } + + /** + * Add a new sub version + * + * @param subVersion + * Sub version value + */ + public void addSubVersion(int subVersion) { + pointedVersion.add(subVersion); + } + + /** + * Increment a sub version + * + * @param position + * Sub version position + * @return + */ + public Version incVersion(int position) { + Version result = new Version(toString()); + while (result.getVersion(position) == null) { + result.addSubVersion(0); + } + result.setVersion(position, result.getVersion(position) + 1); + return result; + } + + @Override + public String toString() { + StringBuffer result = new StringBuffer(""); + for (Integer i : pointedVersion) { + result.append(i).append("."); + } + if (result.length() > 0) { + result.setLength(result.length() - 1); + } + return result.toString(); + } + + /* (non-Javadoc) + * @see java.lang.Comparable#compareTo(java.lang.Object) + */ + public int compareTo(Version v) { + int result = 0; + int position = 0; + boolean compared = false; + while (!compared) { + if (getVersion(position) == null && v.getVersion(position) == null) { + result = 0; + compared = true; + } else { + if (getVersion(position) == null) { + result = -1; + compared = true; + } else { + if (v.getVersion(position) == null) { + result = 1; + compared = true; + } else { + result = getVersion(position).compareTo( + v.getVersion(position)); + compared = (result != 0); + } + } + } + position++; + } + return result; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/BaseEntityFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/BaseEntityFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/BaseEntityFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,368 @@ +package fr.cemagref.simexplorer.is.factories; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +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; + +import fr.cemagref.simexplorer.is.entities.BaseEntity; +import fr.cemagref.simexplorer.is.entities.data.DataEntity; + +public abstract class BaseEntityFactory<E extends BaseEntity> implements + XmlConstants { + + private static DocumentBuilder documentBuilder = null; + + private static Map<String, BaseEntityFactory<? extends DataEntity>> factories = new HashMap<String, BaseEntityFactory<? extends DataEntity>>(); + + /* + * Static methods - Retrieve factories, get XML document builder + */ + + /** + * Retrieve instance of the factory + * + * @param <T> + * Factory spec. class + * @param entityClass + * Class wanted + * @return Factory + * @throws Exception + */ + @SuppressWarnings("unchecked") + public static <T extends DataEntity> BaseEntityFactory<T> getFactory( + Class entityClass) throws Exception { + BaseEntityFactory<T> result = (BaseEntityFactory<T>) factories + .get(entityClass.getSimpleName()); + if (result == null) { + String elementFactoryClassName = BaseEntityFactory.class + .getPackage().getName() + + "." + entityClass.getSimpleName() + "Factory"; + + Class<? extends BaseEntityFactory<T>> factoryClass = (Class<? extends BaseEntityFactory<T>>) Class + .forName(elementFactoryClassName).asSubclass( + BaseEntityFactory.class); + + result = factoryClass.newInstance(); + factories.put(entityClass.getSimpleName(), result); + } + return result; + } + + /** + * Retrieve a factory with class name + * + * @param entityClassName + * @return + * @throws Exception + */ + public static BaseEntityFactory<? extends DataEntity> getFactory( + String entityClassName) throws Exception { + Class<? extends DataEntity> entityClass = Class + .forName(entityClassName).asSubclass(DataEntity.class); + return getFactory(entityClass); + } + + /** + * Retrieve an instance of document builder + * + * @return XML document builder + * @throws Exception + */ + public static synchronized DocumentBuilder getXMLBuilder() throws Exception { + if (documentBuilder == null) { + DocumentBuilderFactory factory = DocumentBuilderFactory + .newInstance(); + documentBuilder = factory.newDocumentBuilder(); + return documentBuilder; + } + return documentBuilder; + } + + /* + * Entity methods - Instanciate, load and save to XML/streams + */ + + /** + * Instanciate an element + * + * @return Element + */ + public abstract E createInstance(); + + /** + * Load an element from an XML node + * + * @param xmlElement + * @return + * @throws Exception + */ + public E loadElement(Element xmlElement) throws Exception { + E element = createInstance(); + return element; + } + + /** + * Load an element from a XML stream + * + * @param stream + * @return + * @throws Exception + */ + public E loadElement(InputStream stream) throws Exception { + Document document = getXMLBuilder().parse(stream); + Element rootElement = (Element) document.getFirstChild(); + E element = loadElement(rootElement); + return element; + } + + /** + * Save an element to a XML node + * + * @param document + * XML document + * @param xmlElement + * XML node storing the element (not null) + * @param element + * Element to save + * @throws Exception + */ + public abstract void saveElement(Document document, Element xmlElement, + E element) throws Exception; + + /** + * Save an element to a XML stream + * + * @param element + * @return + * @throws Exception + */ + public InputStream saveElement(String rootNodeName, E element) + throws Exception { + ByteArrayOutputStream os = new ByteArrayOutputStream(); + + org.w3c.dom.Document xmlDocument = getXMLBuilder().newDocument(); + // DOM properties + xmlDocument.setXmlVersion("1.0"); + xmlDocument.setXmlStandalone(true); + // DOM tree + Element rootNode = xmlDocument.createElement(rootNodeName); + + saveElement(xmlDocument, rootNode, element); + + xmlDocument.appendChild(rootNode); + DOMSource domSource = new DOMSource(xmlDocument); + StreamResult result = new StreamResult(os); + TransformerFactory tf = TransformerFactory.newInstance(); + Transformer transformer = tf.newTransformer(); + transformer.transform(domSource, result); + + InputStream is = new ByteArrayInputStream(os.toByteArray()); + + return is; + } + + /* + * Collection methods : Help load/save of inner collections + */ + + /** + * Load a collection inside a node + * + * @param <T> + * Type of element of the collection + * @param tagSetName + * Tag of the node of the collection + * @param tagName + * Tag of the node containing an item + * @param clazz + * Class type + * @param xmlElement + * Node containing the collection + * @param parentData + * Element holding the collection + * @return + * @throws Exception + */ + public <T extends DataEntity> Set<T> loadCollection(String tagSetName, + String tagName, Class<T> clazz, Element xmlElement, + DataEntity parentData) throws Exception { + Set<T> entities = new HashSet<T>(); + + // Retrieve XML node containing the collection + Element xmlCollection = getXMLElementByTagName(xmlElement, tagSetName); + if (xmlCollection != null) { + // Retrieve element factory + BaseEntityFactory<T> elementFactory = getFactory(clazz); + + // Retrieve all XML elements + Set<Element> list = getXMLElementsByTagName(xmlCollection, tagName); + for (Element element : list) { + // Convert the XML node to entity + T entity = elementFactory.loadElement(element); + entity.setParentData(parentData); + entities.add(entity); + } + } + + return entities; + } + + /** + * Save a collection of elements to XML node + * + * @param <T> + * @param entities + * @param tagSetName + * @param tagName + * @param clazz + * @param document + * @param xmlElement + * @throws Exception + */ + public <T extends DataEntity> void saveCollection(Set<T> entities, + String tagSetName, String tagName, Class<T> clazz, + Document document, Element xmlElement) throws Exception { + if (entities != null && entities.size() > 0) { + Element xmlCollection = document.createElement(tagSetName); + BaseEntityFactory<T> elementFactory = getFactory(clazz); + for (T entity : entities) { + Element childElement = document.createElement(tagName); + elementFactory.saveElement(document, childElement, entity); + xmlCollection.appendChild(childElement); + } + xmlElement.appendChild(xmlCollection); + } + } + + /** + * Save an element as a XML stream + * + * @param rootNode + * @return + * @throws Exception + */ + public static InputStream serializeElement(Element node) throws Exception { + org.w3c.dom.Document xmlDocument = getXMLBuilder().newDocument(); + // DOM properties + xmlDocument.setXmlVersion("1.0"); + xmlDocument.setXmlStandalone(true); + // DOM tree + xmlDocument.appendChild(xmlDocument.importNode(node, true)); + DOMSource domSource = new DOMSource(xmlDocument); + + ByteArrayOutputStream os = new ByteArrayOutputStream(); + StreamResult result = new StreamResult(os); + TransformerFactory tf = TransformerFactory.newInstance(); + Transformer transformer = tf.newTransformer(); + transformer.transform(domSource, result); + + ByteArrayInputStream inputStream = new ByteArrayInputStream(os + .toByteArray()); + + return inputStream; + } + + /* + * XML methods : set, get properties + */ + + /** + * Set a property in XML + * + * @param document + * XML document + * @param xmlElement + * Node to modify + * @param tagName + * Tag of created node + * @param value + * Value of node + */ + protected void setXMLProperty(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); + } + } + + /** + * Get a property in XML + * + * @param xmlElement + * Source node + * @param tagName + * Tag name of property + * @return Property value + */ + public String getXMLProperty(Element xmlElement, String tagName) { + Element element = getXMLElementByTagName(xmlElement, tagName); + if (element != null) { + return element.getFirstChild().getNodeValue(); + } else { + return null; + } + } + + /* + * XML methods : retrieve nodes + */ + + /** + * Retrieve XML element just under with specified tag name + * + * @param xmlElement + * @param tagName + * @return + */ + public Element getXMLElementByTagName(Element xmlElement, String tagName) { + Set<Element> elements = getXMLElementsByTagName(xmlElement, tagName); + if (elements.size() > 0) { + return elements.iterator().next(); + } else { + return null; + } + } + + /** + * Retrieve all XML elements just under with specified tag name + * + * @param xmlElement + * @param tagName + * @return + */ + public Set<Element> getXMLElementsByTagName(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; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/CodeFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/CodeFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/CodeFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,31 @@ +package fr.cemagref.simexplorer.is.factories; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.entities.data.Code; + +public class CodeFactory<E extends Code> extends BaseEntityFactory<Code> { + + @Override + public Code createInstance() { + return new Code(); + } + + @Override + public Code loadElement(Element xmlElement) throws Exception { + Code code = super.loadElement(xmlElement); + code.setLanguage(getXMLProperty(xmlElement, KEY_CODE_LANGUAGE)); + code.setCode(getXMLProperty(xmlElement, KEY_CODE_CODE)); + return code; + } + + @Override + public void saveElement(Document document, Element xmlElement, Code element) + throws Exception { + setXMLProperty(document, xmlElement, KEY_CODE_LANGUAGE, element + .getLanguage()); + setXMLProperty(document, xmlElement, KEY_CODE_CODE, element.getCode()); + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ComponentFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ComponentFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ComponentFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,57 @@ +package fr.cemagref.simexplorer.is.factories; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.entities.data.Code; +import fr.cemagref.simexplorer.is.entities.data.Component; +import fr.cemagref.simexplorer.is.entities.data.Constant; +import fr.cemagref.simexplorer.is.entities.data.Library; +import fr.cemagref.simexplorer.is.entities.data.Structure; + +public class ComponentFactory<E extends Component> extends + LoggableElementFactory<Component> { + + @Override + public Component createInstance() { + return new Component(); + } + + @Override + public Component loadElement(Element xmlElement) throws Exception { + Component component = super.loadElement(xmlElement); + + component.setConstants(loadCollection(KEY_COMPONENT_CONSTANTS, + KEY_COMPONENT_CONSTANT_NODE, Constant.class, xmlElement, + component)); + component.setStructures(loadCollection(KEY_COMPONENT_STRUCTURE, + KEY_COMPONENT_STRUCTURE_NODE, Structure.class, xmlElement, + component)); + component.setCodes(loadCollection(KEY_COMPONENT_CODES, + KEY_COMPONENT_CODE_NODE, Code.class, xmlElement, component)); + component.setLibraries(loadCollection(KEY_COMPONENT_LIBRARIES, + KEY_COMPONENT_LIBRARY_NODE, Library.class, xmlElement, + component)); + + return component; + } + + @Override + public void saveElement(Document document, Element xmlElement, + Component element) throws Exception { + + super.saveElement(document, xmlElement, element); + + saveCollection(element.getConstants(), KEY_COMPONENT_CONSTANTS, + KEY_COMPONENT_CONSTANT_NODE, Constant.class, document, + xmlElement); + saveCollection(element.getStructures(), KEY_COMPONENT_STRUCTURE, + KEY_COMPONENT_STRUCTURE_NODE, Structure.class, document, + xmlElement); + saveCollection(element.getCodes(), KEY_COMPONENT_CODES, + KEY_COMPONENT_CODE_NODE, Code.class, document, xmlElement); + saveCollection(element.getLibraries(), KEY_COMPONENT_LIBRARIES, + KEY_COMPONENT_LIBRARY_NODE, Library.class, document, xmlElement); + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ConstantFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ConstantFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ConstantFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,34 @@ +package fr.cemagref.simexplorer.is.factories; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.entities.data.Constant; + +public class ConstantFactory<E extends Constant> extends + BaseEntityFactory<Constant> { + + @Override + public Constant createInstance() { + return new Constant(); + } + + @Override + public Constant loadElement(Element xmlElement) throws Exception { + Constant constant = super.loadElement(xmlElement); + constant.setName(getXMLProperty(xmlElement, KEY_CONSTANT_NAME)); + String className = getXMLProperty(xmlElement, KEY_CONSTANT_TYPE); + constant.setType(Class.forName(className)); + return constant; + } + + @Override + public void saveElement(Document document, Element xmlElement, + Constant element) throws Exception { + setXMLProperty(document, xmlElement, KEY_CONSTANT_NAME, element + .getName()); + String className = element.getType().getName(); + setXMLProperty(document, xmlElement, KEY_CONSTANT_TYPE, className); + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ConstantValueFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ConstantValueFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ConstantValueFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,43 @@ +package fr.cemagref.simexplorer.is.factories; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.entities.data.Constant; +import fr.cemagref.simexplorer.is.entities.data.ConstantValue; + +public class ConstantValueFactory<E extends ConstantValue> extends + BaseEntityFactory<ConstantValue> { + + @Override + public ConstantValue createInstance() { + return new ConstantValue(); + } + + @Override + public ConstantValue loadElement(Element xmlElement) throws Exception { + ConstantValue constantValue = super.loadElement(xmlElement); + constantValue.setConstant((Constant) getFactory(Constant.class) + .loadElement( + getXMLElementByTagName(xmlElement, + KEY_CONSTANTVALUE_CONSTANT))); + constantValue.setValue(getXMLProperty(xmlElement, + KEY_CONSTANTVALUE_VALUE)); + return constantValue; + } + + @Override + public void saveElement(Document document, Element xmlElement, + ConstantValue element) throws Exception { + + Element xmlConstant = document + .createElement(KEY_CONSTANTVALUE_CONSTANT); + getFactory(Constant.class).saveElement(document, xmlConstant, + element.getConstant()); + xmlElement.appendChild(xmlConstant); + + setXMLProperty(document, xmlElement, KEY_CONSTANTVALUE_VALUE, element + .getValue()); + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ExplorationApplicationFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ExplorationApplicationFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ExplorationApplicationFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,42 @@ +package fr.cemagref.simexplorer.is.factories; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.entities.data.Component; +import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication; +import fr.cemagref.simexplorer.is.entities.data.ExplorationData; + +public class ExplorationApplicationFactory extends + LoggableElementFactory<ExplorationApplication> { + + @Override + public ExplorationApplication createInstance() { + return new ExplorationApplication(); + } + + @Override + public void saveElement(Document document, Element xmlElement, + ExplorationApplication element) throws Exception { + super.saveElement(document, xmlElement, element); + saveCollection(element.getExplorations(), KEY_EXPLORATIONAPPLICATION_DATA, KEY_EXPLORATIONAPPLICATION_DATA_NODE, + ExplorationData.class, document, xmlElement); + saveCollection(element.getComponents(), KEY_EXPLORATIONAPPLICATION_COMPONENTS, + KEY_EXPLORATIONAPPLICATION_COMPONENT_NODE, Component.class, document, xmlElement); + } + + @Override + public ExplorationApplication loadElement(Element xmlElement) + throws Exception { + ExplorationApplication explorationApplication = super + .loadElement(xmlElement); + explorationApplication.setExplorations(loadCollection(KEY_EXPLORATIONAPPLICATION_DATA, + KEY_EXPLORATIONAPPLICATION_DATA_NODE, ExplorationData.class, xmlElement, + explorationApplication)); + explorationApplication.setComponents(loadCollection(KEY_EXPLORATIONAPPLICATION_COMPONENTS, + KEY_EXPLORATIONAPPLICATION_COMPONENT_NODE, Component.class, xmlElement, + explorationApplication)); + return explorationApplication; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ExplorationDataFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ExplorationDataFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ExplorationDataFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,47 @@ +package fr.cemagref.simexplorer.is.factories; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.entities.data.ConstantValue; +import fr.cemagref.simexplorer.is.entities.data.ExplorationData; +import fr.cemagref.simexplorer.is.entities.data.Result; + +public class ExplorationDataFactory extends + LoggableElementFactory<ExplorationData> { + + @Override + public ExplorationData createInstance() { + return new ExplorationData(); + } + + @Override + public ExplorationData loadElement(Element xmlElement) throws Exception { + ExplorationData explorationData = super.loadElement(xmlElement); + explorationData.setResult((Result) getFactory(Result.class) + .loadElement( + getXMLElementByTagName(xmlElement, + KEY_EXPLORATIONDATA_RESULT))); + explorationData.setValuesMap(loadCollection(KEY_EXPLORATIONDATA_VALUES, + KEY_EXPLORATIONDATA_VALUE, ConstantValue.class, xmlElement, + explorationData)); + return explorationData; + } + + @Override + public void saveElement(Document document, Element xmlElement, + ExplorationData element) throws Exception { + super.saveElement(document, xmlElement, element); + + Element xmlResult = document.createElement(KEY_EXPLORATIONDATA_RESULT); + getFactory(Result.class).saveElement(document, xmlResult, + element.getResult()); + xmlElement.appendChild(xmlResult); + + saveCollection(element.getValuesMap(), KEY_EXPLORATIONDATA_VALUES, + KEY_EXPLORATIONDATA_VALUE, ConstantValue.class, document, + xmlElement); + + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/LibraryFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/LibraryFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/LibraryFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,12 @@ +package fr.cemagref.simexplorer.is.factories; + +import fr.cemagref.simexplorer.is.entities.data.Library; + +public class LibraryFactory extends LoggableElementFactory<Library> { + + @Override + public Library createInstance() { + return new Library(); + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/LoggableElementFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/LoggableElementFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/LoggableElementFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,38 @@ +package fr.cemagref.simexplorer.is.factories; + +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.entities.data.LoggableElement; +import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity; + +public abstract class LoggableElementFactory<E extends LoggableElement> extends + BaseEntityFactory<E> { + + @Override + public E loadElement(Element xmlElement) throws Exception { + E element = super.loadElement(xmlElement); + + MetaDataEntityFactory elementFactory = (MetaDataEntityFactory) BaseEntityFactory + .getFactory(MetaDataEntity.class); + + // Load metadata informations + Element mdeElement = getXMLElementByTagName(xmlElement, KEY_METADATA); + MetaDataEntity metaData = elementFactory.loadElement(mdeElement); + element.setMetaData(metaData); + + return element; + } + + @Override + public void saveElement(org.w3c.dom.Document document, Element xmlElement, + E element) throws Exception { + MetaDataEntityFactory elementFactory = (MetaDataEntityFactory) BaseEntityFactory + .getFactory(MetaDataEntity.class); + + // Save metadata informations + Element mdeElement = document.createElement(KEY_METADATA); + elementFactory.saveElement(document, mdeElement, element.getMetaData()); + xmlElement.appendChild(mdeElement); + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/MetaDataEntityFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/MetaDataEntityFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/MetaDataEntityFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,205 @@ +package fr.cemagref.simexplorer.is.factories; + +import java.io.InputStream; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.contenttype.ContentType; +import fr.cemagref.simexplorer.is.contenttype.ContentTypeFactory; +import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity; + +public class MetaDataEntityFactory<E extends MetaDataEntity> extends + BaseEntityFactory<MetaDataEntity> { + + private static final SimpleDateFormat sdf = new SimpleDateFormat( + "yyyy-MM-dd'T'HH:mm:ss"); + + @Override + public MetaDataEntity createInstance() { + return new MetaDataEntity(); + } + + /* + * (non-Javadoc) + * + * @see fr.cemagref.simexplorer.is.storage.factories.BaseEntityFactory#loadXMLElement(org.w3c.dom.Element) + */ + @Override + public MetaDataEntity loadElement(Element xmlElement) throws Exception { + MetaDataEntity entity = super.loadElement(xmlElement); + entity.setUuid(getXMLProperty(xmlElement, KEY_METADATA_UUID)); + entity.setName(getXMLProperty(xmlElement, KEY_METADATA_NAME)); + entity.setType(getXMLProperty(xmlElement, KEY_METADATA_TYPE)); + entity.setDescription(getXMLProperty(xmlElement, + KEY_METADATA_DESCRIPTION)); + entity.setVersion(getXMLProperty(xmlElement, KEY_METADATA_VERSION)); + + String latestVersion = getXMLProperty(xmlElement, + KEY_METADATA_LATESTVERSION); + if (latestVersion != null && "1".equals(latestVersion)) { + entity.setLatest(true); + } else { + entity.setLatest(false); + } + + String creationDate = getXMLProperty(xmlElement, + KEY_METADATA_CREATIONDATE); + if (creationDate != null) { + Date date = sdf.parse(creationDate); + entity.setCreationDate(date); + } + + entity.setHash(getXMLProperty(xmlElement, KEY_METADATA_HASH)); + entity.setParentDataUuid(getXMLProperty(xmlElement, + KEY_METADATA_PARENTDATA_UUID)); + entity.setParentDataVersion(getXMLProperty(xmlElement, + KEY_METADATA_PARENTDATA_VERSION)); + entity.setParentVersionUuid(getXMLProperty(xmlElement, + KEY_METADATA_PARENTVERSION_UUID)); + entity.setParentVersionVersion(getXMLProperty(xmlElement, + KEY_METADATA_PARENTVERSION_VERSION)); + + Map<String, String> descriptors = new HashMap<String, String>(); + + Element descriptorsElement = getXMLElementByTagName(xmlElement, + KEY_METADATA_DESCRIPTORS); + if (descriptorsElement != null) { + Set<Element> descriptorElements = getXMLElementsByTagName( + descriptorsElement, KEY_METADATA_DESCRIPTOR); + for (Element descriptorElement : descriptorElements) { + String name = getXMLProperty(descriptorElement, + KEY_METADATA_DESCRIPTOR_NAME); + String value = getXMLProperty(descriptorElement, + KEY_METADATA_DESCRIPTOR_VALUE); + descriptors.put(name, value); + } + } + entity.setDescriptors(descriptors); + + Map<String, ContentType> attachments = new HashMap<String, ContentType>(); + + Element attachmentsElement = getXMLElementByTagName(xmlElement, + KEY_METADATA_ATTACHMENTS); + if (attachmentsElement != null) { + Set<Element> attachmentElements = getXMLElementsByTagName( + attachmentsElement, KEY_METADATA_ATTACHMENT); + for (Element attachmentElement : attachmentElements) { + String name = getXMLProperty(attachmentElement, + KEY_METADATA_ATTACHMENT_NAME); + String type = getXMLProperty(attachmentElement, + KEY_METADATA_ATTACHMENT_TYPE); + ContentType contentType = ContentTypeFactory + .getContentTypeInstance(type); + attachments.put(name, contentType); + } + } + + entity.setAttachments(attachments); + + return entity; + } + + @Override + public void saveElement(Document document, Element xmlElement, + MetaDataEntity element) throws Exception { + + setXMLProperty(document, xmlElement, KEY_METADATA_UUID, element + .getUuid()); + setXMLProperty(document, xmlElement, KEY_METADATA_NAME, element + .getName()); + setXMLProperty(document, xmlElement, KEY_METADATA_TYPE, element + .getType()); + setXMLProperty(document, xmlElement, KEY_METADATA_DESCRIPTION, element + .getDescription()); + setXMLProperty(document, xmlElement, KEY_METADATA_VERSION, element + .getVersion().toString()); + + if (element.isLatest()) { + setXMLProperty(document, xmlElement, KEY_METADATA_LATESTVERSION, + "1"); + } else { + setXMLProperty(document, xmlElement, KEY_METADATA_LATESTVERSION, + "0"); + } + + if (element.getCreationDate() != null) { + setXMLProperty(document, xmlElement, KEY_METADATA_CREATIONDATE, sdf + .format(element.getCreationDate())); + } + + setXMLProperty(document, xmlElement, KEY_METADATA_HASH, element + .getHash()); + setXMLProperty(document, xmlElement, KEY_METADATA_PARENTDATA_UUID, + element.getParentDataUuid()); + setXMLProperty(document, xmlElement, KEY_METADATA_PARENTDATA_VERSION, + element.getParentDataVersion()); + setXMLProperty(document, xmlElement, KEY_METADATA_PARENTVERSION_UUID, + element.getParentVersionUuid()); + setXMLProperty(document, xmlElement, + KEY_METADATA_PARENTVERSION_VERSION, element + .getParentVersionVersion()); + + Map<String, String> descriptors = element.getDescriptors(); + + Element descriptorsElement = document + .createElement(KEY_METADATA_DESCRIPTORS); + + for (Map.Entry<String, String> kv : descriptors.entrySet()) { + Element descriptorElement = document + .createElement(KEY_METADATA_DESCRIPTOR); + setXMLProperty(document, descriptorElement, + KEY_METADATA_DESCRIPTOR_NAME, kv.getKey()); + setXMLProperty(document, descriptorElement, + KEY_METADATA_DESCRIPTOR_VALUE, kv.getValue()); + descriptorsElement.appendChild(descriptorElement); + } + + xmlElement.appendChild(descriptorsElement); + + Map<String, ContentType> attachments = element.getAttachments(); + + if (attachments != null) { + + Element attachmentsElement = document + .createElement(KEY_METADATA_ATTACHMENTS); + + for (Map.Entry<String, ContentType> kv : attachments.entrySet()) { + Element attachmentElement = document + .createElement(KEY_METADATA_ATTACHMENT); + setXMLProperty(document, attachmentElement, + KEY_METADATA_ATTACHMENT_NAME, kv.getKey()); + setXMLProperty(document, attachmentElement, + KEY_METADATA_ATTACHMENT_TYPE, kv.getValue().getClass() + .getSimpleName()); + attachmentsElement.appendChild(attachmentElement); + } + xmlElement.appendChild(attachmentsElement); + + } + + } + + /** + * As metadata is stored inside an entity, this method loads metadata with + * parsing stream and retrieve metadata node + * + * @param xmlStream + * @return + * @throws Exception + */ + public MetaDataEntity loadElementFromParentXML(InputStream xmlStream) + throws Exception { + Document document = getXMLBuilder().parse(xmlStream); + Element rootElement = (Element) document.getFirstChild(); + Element mdeElement = getXMLElementByTagName(rootElement, KEY_METADATA); + MetaDataEntity mde = loadElement(mdeElement); + return mde; + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/RepositoryFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/RepositoryFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/RepositoryFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,27 @@ +package fr.cemagref.simexplorer.is.factories; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.entities.data.Repository; + +public class RepositoryFactory<E extends Repository> extends + BaseEntityFactory<Repository> { + + @Override + public Repository createInstance() { + return new Repository(); + } + + @Override + public Repository loadElement(Element xmlElement) throws Exception { + return super.loadElement(xmlElement); + } + + @Override + public void saveElement(Document document, Element xmlElement, + Repository element) throws Exception { + + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ResultFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ResultFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/ResultFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,26 @@ +package fr.cemagref.simexplorer.is.factories; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import fr.cemagref.simexplorer.is.entities.data.Result; + +public class ResultFactory<E extends Result> extends BaseEntityFactory<Result> { + + @Override + public Result createInstance() { + return new Result(); + } + + @Override + public Result loadElement(Element xmlElement) throws Exception { + return super.loadElement(xmlElement); + } + + @Override + public void saveElement(Document document, Element xmlElement, + Result element) throws Exception { + + } + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/StructureFactory.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/StructureFactory.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/StructureFactory.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,8 @@ +package fr.cemagref.simexplorer.is.factories; + +import fr.cemagref.simexplorer.is.entities.data.Structure; + +public abstract class StructureFactory<E extends Structure> extends + BaseEntityFactory<Structure> { + +} Added: trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/XmlConstants.java =================================================================== --- trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/XmlConstants.java (rev 0) +++ trunk/simexplorer-is-entities/src/main/java/fr/cemagref/simexplorer/is/factories/XmlConstants.java 2008-01-09 14:10:43 UTC (rev 103) @@ -0,0 +1,71 @@ +package fr.cemagref.simexplorer.is.factories; + +/** + * Store all XML constants + * + * @author glandais + * + */ +public interface XmlConstants { + + public static final String KEY_CODE_LANGUAGE = "language"; + public static final String KEY_CODE_CODE = "code"; + + public static final String KEY_COMPONENT_CONSTANTS = "constants"; + public static final String KEY_COMPONENT_CONSTANT_NODE = "constant"; + public static final String KEY_COMPONENT_STRUCTURE = "structures"; + public static final String KEY_COMPONENT_STRUCTURE_NODE = "structure"; + public static final String KEY_COMPONENT_CODES = "codes"; + public static final String KEY_COMPONENT_CODE_NODE = "code"; + public static final String KEY_COMPONENT_LIBRARIES = "libraries"; + public static final String KEY_COMPONENT_LIBRARY_NODE = "library"; + + public static final String KEY_CONSTANT_NAME = "name"; + public static final String KEY_CONSTANT_TYPE = "type"; + + public static final String KEY_CONSTANTVALUE_CONSTANT = "constant"; + public static final String KEY_CONSTANTVALUE_VALUE = "value"; + + public static final String KEY_EXPLORATIONAPPLICATION_DATA = "data"; + public static final String KEY_EXPLORATIONAPPLICATION_DATA_NODE = "explorationdata"; + public static final String KEY_EXPLORATIONAPPLICATION_COMPONENTS = "components"; + public static final String KEY_EXPLORATIONAPPLICATION_COMPONENT_NODE = "component"; + + public static final String KEY_EXPLORATIONDATA_RESULT = "result"; + public static final String KEY_EXPLORATIONDATA_VALUES = "values"; + public static final String KEY_EXPLORATIONDATA_VALUE = "value"; + + public static final String KEY_RESULT_FILE = "file"; + + public static final String KEY_METADATA = "metadata"; + + public static final String KEY_METADATA_UUID = "uuid"; + public static final String KEY_METADATA_VERSION = "version"; + public static final String KEY_METADATA_LATESTVERSION = "latestversion"; + public static final String KEY_METADATA_NAME = "name"; + + public static final String KEY_METADATA_TYPE = "type"; + public static final String VALUE_METADATA_TYPE_EA = "ExplorationApplication"; + + public static final String KEY_METADATA_DESCRIPTION = "description"; + public static final String KEY_METADATA_CREATIONDATE = "creationdate"; + public static final String KEY_METADATA_HASH = "hash"; + public static final String KEY_METADATA_PARENTDATA_UUID = "parentdatauuid"; + public static final String KEY_METADATA_PARENTDATA_VERSION = "parentdataversion"; + public static final String KEY_METADATA_PARENTVERSION_UUID = "parentversionuuid"; + public static final String KEY_METADATA_PARENTVERSION_VERSION = "parentversionversion"; + public static final String KEY_METADATA_DESCRIPTORS = "descriptors"; + public static final String KEY_METADATA_DESCRIPTOR = "descriptor"; + public static final String KEY_METADATA_ATTACHMENTS = "attachments"; + public static final String KEY_METADATA_ATTACHMENT = "attachment"; + + public static final String KEY_METADATA_DESCRIPTOR_NAME = "name"; + public static final String KEY_METADATA_DESCRIPTOR_VALUE = "value"; + + public static final String KEY_METADATA_ATTACHMENT_NAME = "name"; + public static final String KEY_METADATA_ATTACHMENT_TYPE = "type"; + + public static final String FILE_XML = "data.xml"; + public static final String FILE_DATA_PREFIX = "attachment"; + +}