Author: tchemit
Date: 2008-02-13 12:57:04 +0000 (Wed, 13 Feb 2008)
New Revision: 914
Modified:
trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java
Log:
formattage classe :
methodes abstraites tout en haut
methodes publiques
methodes protegees
methodes privees
Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-02-13 12:33:36 UTC (rev 913)
+++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-02-13 12:57:04 UTC (rev 914)
@@ -23,7 +23,6 @@
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -53,7 +52,7 @@
public abstract class StorageServiceCommon implements StorageService, XmlConstants {
/** The xml attachment. */
- private Attachment xmlAttachment = null;
+ protected Attachment xmlAttachment = null;
/**
* Gets the storage engine.
@@ -65,18 +64,13 @@
protected abstract StorageEngine getStorageEngine() throws SimExplorerStorageException;
/**
- * Gets the xML attachment.
- *
- * @return the xML attachment
+ * Increment version.
+ *
+ * @param version the version
+ *
+ * @return the version
*/
- private Attachment getXMLAttachment() {
- if (xmlAttachment == null) {
- xmlAttachment = new Attachment();
- xmlAttachment.setDataHash("");
- xmlAttachment.setFileName("entity.xml");
- }
- return xmlAttachment;
- }
+ protected abstract Version incrementVersion(Version version);
/* (non-Javadoc)
* @see fr.cemagref.simexplorer.is.service.StorageService#getMetadata(java.lang.String, java.lang.String)
@@ -172,9 +166,9 @@
*
* @param token the token
* @param zipStream the zip stream
- *
+ *
* @return the meta data
- *
+ *
* @throws SimExplorerServiceException the sim explorer service exception
*/
public MetaData saveElement(String token, SimExplorerServiceStream zipStream) throws SimExplorerServiceException {
@@ -234,7 +228,7 @@
* @param token the token
* @param xmlFile the xml file
* @param attachments the attachments
- *
+ *
* @return the meta data
*
* @throws SimExplorerServiceException the exception
@@ -262,14 +256,14 @@
/**
* Retrieve element data.
- *
+ *
* @param token the token
* @param uuid the uuid
* @param version the version
* @param attachment the attachment
- *
+ *
* @return the input stream
- *
+ *
* @throws SimExplorerServiceException the sim explorer service exception
*/
public InputStream retrieveElementData(String token, String uuid, String version, Attachment attachment)
@@ -286,13 +280,13 @@
/**
* Retrieve element xml common.
- *
+ *
* @param token the token
* @param uuid the uuid
* @param version the version
- *
+ *
* @return the input stream
- *
+ *
* @throws SimExplorerServiceException the sim explorer service exception
*/
public InputStream retrieveElementXML(String token, String uuid, String version) throws SimExplorerServiceException {
@@ -308,13 +302,13 @@
/**
* Retrieve element full.
- *
+ *
* @param token the token
* @param uuid the uuid
* @param version the version
- *
+ *
* @return the input stream
- *
+ *
* @throws SimExplorerServiceException the sim explorer service exception
*/
public InputStream retrieveElementFull(String token, String uuid, String version)
@@ -348,15 +342,152 @@
}
+ /* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.service.StorageService#update(java.lang.String, java.lang.String, fr.cemagref.simexplorer.is.entities.metadata.Version, fr.cemagref.simexplorer.is.entities.metadata.MetaData)
+ */
+ public void update(String token, String oldUuid, Version oldVersion, MetaData newVersion, boolean deleteOldElement)
+ throws SimExplorerServiceException {
+ Map<Attachment, InputStream> attachments = new HashMap<Attachment, InputStream>();
+ try {
+ MetaData oldMetaData = getStorageEngine().getMetadata(token, oldUuid, oldVersion);
+
+ InputStream oldXml = getStorageEngine().retrieveData(token, oldMetaData, getXMLAttachment());
+
+ MetaDataFactory<MetaData> mdeFactory = MetaDataFactory.getFactory(MetaData.class);
+ InputStream newXml = mdeFactory.replaceElementInParentXML(oldXml, newVersion);
+
+ attachments.put(getXMLAttachment(), newXml);
+
+ List<Attachment> realAttachments = oldMetaData.getAttachments();
+ for (Attachment attachment : realAttachments) {
+ attachments.put(attachment, getStorageEngine().retrieveData(token, oldMetaData, attachment));
+ }
+
+ if (deleteOldElement) {
+ getStorageEngine().deleteElement(token, oldUuid, oldVersion);
+ }
+ getStorageEngine().saveElement(token, newVersion, attachments);
+ getStorageEngine().commit();
+ } catch (Exception e) {
+ throw new SimExplorerServiceException(e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.service.StorageService#getVersions(java.lang.String, java.lang.String)
+ */
+ public Version[] getVersions(String token, String uuid) throws SimExplorerServiceException {
+ try {
+ Set<MetaData> versions = getStorageEngine().getElementVersions(token, uuid);
+ Version[] result = new Version[versions.size()];
+ int i = 0;
+ for (MetaData metaData : versions) {
+ result[i] = metaData.getVersion();
+ i++;
+ }
+ return result;
+ } catch (SimExplorerStorageException e) {
+ throw new SimExplorerServiceException(e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String, java.lang.String)
+ */
+ public void deleteElement(String token, String uuid, String version) throws SimExplorerServiceException {
+ try {
+ getStorageEngine().deleteElement(token, uuid, new Version(version));
+ getStorageEngine().commit();
+ } catch (SimExplorerStorageException e) {
+ throw new SimExplorerServiceException(e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String)
+ */
+ public void deleteElement(String token, String uuid) throws SimExplorerServiceException {
+ try {
+ getStorageEngine().deleteElements(token, uuid);
+ getStorageEngine().commit();
+ } catch (SimExplorerStorageException e) {
+ throw new SimExplorerServiceException(e);
+ }
+ }
+
/**
+ * Process version rules.
+ *
+ * @param token the token
+ * @param metaData the meta data
+ *
+ * @return true, if process version rules
+ *
+ * @throws Exception the exception
+ */
+ protected boolean processVersionRules(String token, MetaData metaData) throws Exception {
+ // This one will always be the latest
+ metaData.setLatest(true);
+
+ // Check existing version in storage
+ MetaData previousVersion = getStorageEngine().getMetadata(token, metaData.getUuid());
+
+ // Version rules
+ if (previousVersion != null) {
+ previousVersion.setLatest(false);
+ update(token, previousVersion.getUuid(), previousVersion.getVersion(), previousVersion, false);
+
+ // Increment version only if needed
+ if (metaData.getVersion().compareTo(incrementVersion(previousVersion.getVersion())) <= 0) {
+ metaData.setVersion(incrementVersion(previousVersion.getVersion()).toString());
+ }
+
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Gets the xML attachment.
+ *
+ * @return the xML attachment
+ */
+ private Attachment getXMLAttachment() {
+ if (xmlAttachment == null) {
+ xmlAttachment = new Attachment();
+ xmlAttachment.setDataHash("");
+ xmlAttachment.setFileName("entity.xml");
+ }
+ return xmlAttachment;
+ }
+
+ private boolean notExists(String token, MetaData metaData) throws Exception {
+ MetaData previousVersion = getStorageEngine().getMetadata(token, metaData.getUuid());
+
+ if (previousVersion != null && previousVersion.getHash().equals(metaData.getHash())) {
+
+ if (metaData.getVersion().compareTo(previousVersion.getVersion()) < 0) {
+ metaData.setVersion(previousVersion.getVersion().toString());
+ } else {
+ Version versionToUpgrade = previousVersion.getVersion().clone();
+ previousVersion.setVersion(metaData.getVersion().toString());
+ update(token, previousVersion.getUuid(), versionToUpgrade, previousVersion, false);
+ }
+
+ return false;
+ }
+ return true;
+ }
+
+ /**
* Real implementation of saveElement.
- *
+ *
* @param token the token
* @param idxml the idxml
* @param idsattachment the idsattachment
- *
+ *
* @return the meta data
- *
+ *
* @throws Exception the exception
*/
private MetaData saveElement(String token, String idxml, Map<Attachment, String> idsattachment) throws Exception {
@@ -419,13 +550,13 @@
/**
* Save sub elements.
- *
+ *
* @param token the token
* @param idxml the idxml
* @param entitiesNode the entities node
* @param entityNode the entity node
* @param idsattachment the idsattachment
- *
+ *
* @throws Exception the exception
*/
private void saveSubElements(String token, String idxml, String entitiesNode, String entityNode,
@@ -448,137 +579,4 @@
}
- /* (non-Javadoc)
- * @see fr.cemagref.simexplorer.is.service.StorageService#update(java.lang.String, java.lang.String, fr.cemagref.simexplorer.is.entities.metadata.Version, fr.cemagref.simexplorer.is.entities.metadata.MetaData)
- */
- public void update(String token, String oldUuid, Version oldVersion, MetaData newVersion, boolean deleteOldElement)
- throws SimExplorerServiceException {
- Map<Attachment, InputStream> attachments = new HashMap<Attachment, InputStream>();
- try {
- MetaData oldMetaData = getStorageEngine().getMetadata(token, oldUuid, oldVersion);
-
- InputStream oldXml = getStorageEngine().retrieveData(token, oldMetaData, getXMLAttachment());
-
- MetaDataFactory<MetaData> mdeFactory = MetaDataFactory.getFactory(MetaData.class);
- InputStream newXml = mdeFactory.replaceElementInParentXML(oldXml, newVersion);
-
- attachments.put(getXMLAttachment(), newXml);
-
- List<Attachment> realAttachments = oldMetaData.getAttachments();
- for (Attachment attachment : realAttachments) {
- attachments.put(attachment, getStorageEngine().retrieveData(token, oldMetaData, attachment));
- }
-
- if (deleteOldElement) {
- getStorageEngine().deleteElement(token, oldUuid, oldVersion);
- }
- getStorageEngine().saveElement(token, newVersion, attachments);
- getStorageEngine().commit();
- } catch (Exception e) {
- throw new SimExplorerServiceException(e);
- }
- }
-
- /**
- * Process version rules.
- *
- * @param token the token
- * @param metaData the meta data
- *
- * @return true, if process version rules
- *
- * @throws Exception the exception
- */
- protected boolean processVersionRules(String token, MetaData metaData) throws Exception {
- // This one will always be the latest
- metaData.setLatest(true);
-
- // Check existing version in storage
- MetaData previousVersion = getStorageEngine().getMetadata(token, metaData.getUuid());
-
- // Version rules
- if (previousVersion != null) {
- previousVersion.setLatest(false);
- update(token, previousVersion.getUuid(), previousVersion.getVersion(), previousVersion, false);
-
- // Increment version only if needed
- if (metaData.getVersion().compareTo(incrementVersion(previousVersion.getVersion())) <= 0) {
- metaData.setVersion(incrementVersion(previousVersion.getVersion()).toString());
- }
-
- return true;
- }
- return false;
- }
-
- private boolean notExists(String token, MetaData metaData) throws Exception {
- MetaData previousVersion = getStorageEngine().getMetadata(token, metaData.getUuid());
-
- if (previousVersion != null && previousVersion.getHash().equals(metaData.getHash())) {
-
- if (metaData.getVersion().compareTo(previousVersion.getVersion()) < 0) {
- metaData.setVersion(previousVersion.getVersion().toString());
- } else {
- Version versionToUpgrade = previousVersion.getVersion().clone();
- previousVersion.setVersion(metaData.getVersion().toString());
- update(token, previousVersion.getUuid(), versionToUpgrade, previousVersion, false);
- }
-
- return false;
- }
- return true;
- }
-
- /**
- * Increment version.
- *
- * @param version the version
- *
- * @return the version
- */
- protected abstract Version incrementVersion(Version version);
-
- /* (non-Javadoc)
- * @see fr.cemagref.simexplorer.is.service.StorageService#getVersions(java.lang.String, java.lang.String)
- */
- public Version[] getVersions(String token, String uuid) throws SimExplorerServiceException {
- try {
- Set<MetaData> versions = getStorageEngine().getElementVersions(token, uuid);
- Iterator<MetaData> iterator = versions.iterator();
- Version[] result = new Version[versions.size()];
- int i = 0;
- for (MetaData metaData : versions) {
- result[i] = metaData.getVersion();
- i++;
- }
- return result;
- } catch (SimExplorerStorageException e) {
- throw new SimExplorerServiceException(e);
- }
- }
-
- /* (non-Javadoc)
- * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String, java.lang.String)
- */
- public void deleteElement(String token, String uuid, String version) throws SimExplorerServiceException {
- try {
- getStorageEngine().deleteElement(token, uuid, new Version(version));
- getStorageEngine().commit();
- } catch (SimExplorerStorageException e) {
- throw new SimExplorerServiceException(e);
- }
- }
-
- /* (non-Javadoc)
- * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String)
- */
- public void deleteElement(String token, String uuid) throws SimExplorerServiceException {
- try {
- getStorageEngine().deleteElements(token, uuid);
- getStorageEngine().commit();
- } catch (SimExplorerStorageException e) {
- throw new SimExplorerServiceException(e);
- }
- }
-
}