Author: glandais Date: 2008-02-13 11:36:42 +0000 (Wed, 13 Feb 2008) New Revision: 899 Added: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/SimExplorerServiceStream.java trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java Log: exportTo contract modification Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/SimExplorerServiceStream.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/SimExplorerServiceStream.java 2008-02-13 11:03:22 UTC (rev 898) +++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/SimExplorerServiceStream.java 2008-02-13 11:36:42 UTC (rev 899) @@ -55,6 +55,7 @@ /** The local stream, set to null if stream is serialized. */ transient private BufferedInputStream bis; + /** true if stream is initialized. */ private boolean initialized; /** Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-02-13 11:03:22 UTC (rev 898) +++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageService.java 2008-02-13 11:36:42 UTC (rev 899) @@ -77,6 +77,20 @@ throws SimExplorerServiceException; /** + * Update. + * + * @param token the token + * @param oldVersion the old version + * @param newVersion the new version + * @param oldUuid the old uuid + * @param deleteOldElement + * + * @throws SimExplorerServiceException the sim explorer service exception + */ + void update(String token, String oldUuid, Version oldVersion, MetaData newVersion, boolean deleteOldElement) + throws SimExplorerServiceException; + + /** * Retrieve metadata (latest version). * * @param token the token @@ -147,21 +161,6 @@ Attachment attachment) throws SimExplorerServiceException; /** - * Export element to another service. - * - * @param token the token - * @param otherService the other service - * @param uuid the uuid - * @param version the version - * - * @return the version - * - * @throws SimExplorerServiceException the sim explorer service exception - */ - Version exportElementTo(String token, StorageService otherService, - String uuid, String version) throws SimExplorerServiceException; - - /** * Retrieve number of elements matching query. * * @param token the token 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 11:03:22 UTC (rev 898) +++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-02-13 11:36:42 UTC (rev 899) @@ -50,8 +50,7 @@ /** * The Class StorageServiceCommon. */ -public abstract class StorageServiceCommon implements StorageService, - XmlConstants { +public abstract class StorageServiceCommon implements StorageService, XmlConstants { /** The xml attachment. */ private Attachment xmlAttachment = null; @@ -63,8 +62,7 @@ * * @throws SimExplorerStorageException the sim explorer storage exception */ - protected abstract StorageEngine getStorageEngine() - throws SimExplorerStorageException; + protected abstract StorageEngine getStorageEngine() throws SimExplorerStorageException; /** * Gets the xML attachment. @@ -83,8 +81,7 @@ /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.StorageService#getMetadata(java.lang.String, java.lang.String) */ - public MetaData getMetadata(String token, String uuid) - throws SimExplorerServiceException { + public MetaData getMetadata(String token, String uuid) throws SimExplorerServiceException { try { return getStorageEngine().getMetadata(token, uuid); } catch (SimExplorerStorageException e) { @@ -95,11 +92,9 @@ /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.StorageService#getMetadata(java.lang.String, java.lang.String, java.lang.String) */ - public MetaData getMetadata(String token, String uuid, String version) - throws SimExplorerServiceException { + public MetaData getMetadata(String token, String uuid, String version) throws SimExplorerServiceException { try { - return getStorageEngine().getMetadata(token, uuid, - new Version(version)); + return getStorageEngine().getMetadata(token, uuid, new Version(version)); } catch (SimExplorerStorageException e) { throw new SimExplorerServiceException(e); } @@ -108,12 +103,10 @@ /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.StorageService#findFullText(java.lang.String, java.lang.String, boolean, int, int, int) */ - public MetaData[] findFullText(String token, String query, - boolean onlyLatest, int indexStart, int count, int dateOrder) - throws SimExplorerServiceException { + public MetaData[] findFullText(String token, String query, boolean onlyLatest, int indexStart, int count, + int dateOrder) throws SimExplorerServiceException { try { - return getStorageEngine().findFullText(token, query, onlyLatest, - indexStart, count, dateOrder); + return getStorageEngine().findFullText(token, query, onlyLatest, indexStart, count, dateOrder); } catch (SimExplorerStorageException e) { throw new SimExplorerServiceException(e); } @@ -122,11 +115,9 @@ /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.StorageService#findFullTextCount(java.lang.String, java.lang.String, boolean) */ - public int findFullTextCount(String token, String query, boolean onlyLatest) - throws SimExplorerServiceException { + public int findFullTextCount(String token, String query, boolean onlyLatest) throws SimExplorerServiceException { try { - return getStorageEngine().findFullTextCount(token, query, - onlyLatest); + return getStorageEngine().findFullTextCount(token, query, onlyLatest); } catch (SimExplorerStorageException e) { throw new SimExplorerServiceException(e); } @@ -135,11 +126,9 @@ /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.StorageService#findApplicationsCount(java.lang.String, boolean) */ - public int findApplicationsCount(String token, boolean onlyLatest) - throws SimExplorerServiceException { + public int findApplicationsCount(String token, boolean onlyLatest) throws SimExplorerServiceException { try { - return getStorageEngine().findElementsByTypeCount(token, - VALUE_METADATA_TYPE_EA, onlyLatest); + return getStorageEngine().findElementsByTypeCount(token, VALUE_METADATA_TYPE_EA, onlyLatest); } catch (SimExplorerStorageException e) { throw new SimExplorerServiceException(e); } @@ -148,13 +137,11 @@ /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.StorageService#findApplications(java.lang.String, boolean, int, int, int) */ - public MetaData[] findApplications(String token, boolean onlyLatest, - int start, int count, int dateOrder) + public MetaData[] findApplications(String token, boolean onlyLatest, int start, int count, int dateOrder) throws SimExplorerServiceException { try { - return getStorageEngine() - .findElementsByType(token, VALUE_METADATA_TYPE_EA, - onlyLatest, start, count, dateOrder); + return getStorageEngine().findElementsByType(token, VALUE_METADATA_TYPE_EA, onlyLatest, start, count, + dateOrder); } catch (SimExplorerStorageException e) { throw new SimExplorerServiceException(e); } @@ -163,17 +150,16 @@ /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.StorageService#getLoggableElement(java.lang.String, java.lang.String, java.lang.String) */ - public LoggableElement getLoggableElement(String token, String uuid, - String version) throws SimExplorerServiceException { + public LoggableElement getLoggableElement(String token, String uuid, String version) + throws SimExplorerServiceException { MetaData mde = getMetadata(token, uuid, version); try { LoggableElement le; - BaseEntityFactory<? extends DataEntity> factory = BaseEntityFactory - .getFactory(LoggableElement.class.getPackage().getName() - + DOT + mde.getType()); - le = (LoggableElement) factory.loadElement(getStorageEngine() - .retrieveData(token, mde, getXMLAttachment())); + BaseEntityFactory<? extends DataEntity> factory = BaseEntityFactory.getFactory(LoggableElement.class + .getPackage().getName() + + DOT + mde.getType()); + le = (LoggableElement) factory.loadElement(getStorageEngine().retrieveData(token, mde, getXMLAttachment())); return le; } catch (Exception e) { @@ -191,8 +177,7 @@ * * @throws SimExplorerServiceException the sim explorer service exception */ - public MetaData saveElement(String token, SimExplorerServiceStream zipStream) - throws SimExplorerServiceException { + public MetaData saveElement(String token, SimExplorerServiceStream zipStream) throws SimExplorerServiceException { String xmlFile = null; Map<Attachment, String> attachments = new HashMap<Attachment, String>(); @@ -207,24 +192,19 @@ xmlFile = getStorageEngine().storeTempData(zis); } else { if (entryName.startsWith(FILE_DATA_PREFIX)) { - String fileName = entryName.replace( - FILE_DATA_PREFIX + FOLDER_SEPARATOR, ""); + String fileName = entryName.replace(FILE_DATA_PREFIX + FOLDER_SEPARATOR, ""); - String zipMD5 = Attachment - .getHashFromUniqueId(fileName); - fileName = Attachment - .getFileNameFromUniqueId(fileName); + String zipMD5 = Attachment.getHashFromUniqueId(fileName); + fileName = Attachment.getFileNameFromUniqueId(fileName); MD5InputStream md5Stream = new MD5InputStream(zis); - String idFile = getStorageEngine().storeTempData( - md5Stream); + String idFile = getStorageEngine().storeTempData(md5Stream); String localMD5 = MD5.asHex(md5Stream.hash()); if (!localMD5.equals(zipMD5)) { - throw new SimExplorerServiceException( - _("simexplorer.service.invalidhash")); + throw new SimExplorerServiceException(_("simexplorer.service.invalidhash")); } @@ -260,16 +240,13 @@ * @throws SimExplorerServiceException the exception */ public MetaData saveElement(String token, SimExplorerServiceStream xmlFile, - Map<Attachment, SimExplorerServiceStream> attachments) - throws SimExplorerServiceException { + Map<Attachment, SimExplorerServiceStream> attachments) throws SimExplorerServiceException { try { // Store temporary data String idxml = getStorageEngine().storeTempData(xmlFile); Map<Attachment, String> idsattachment = new HashMap<Attachment, String>(); - for (Map.Entry<Attachment, SimExplorerServiceStream> entry : attachments - .entrySet()) { - String idattachment = getStorageEngine().storeTempData( - entry.getValue()); + for (Map.Entry<Attachment, SimExplorerServiceStream> entry : attachments.entrySet()) { + String idattachment = getStorageEngine().storeTempData(entry.getValue()); idsattachment.put(entry.getKey(), idattachment); } MetaData elementSaved = saveElement(token, idxml, idsattachment); @@ -295,13 +272,11 @@ * * @throws SimExplorerServiceException the sim explorer service exception */ - public InputStream retrieveElementData(String token, String uuid, - String version, Attachment attachment) + public InputStream retrieveElementData(String token, String uuid, String version, Attachment attachment) throws SimExplorerServiceException { try { MetaData mde = getMetadata(token, uuid, version); - InputStream stream = getStorageEngine().retrieveData(token, mde, - attachment); + InputStream stream = getStorageEngine().retrieveData(token, mde, attachment); return new SimExplorerServiceStream(stream); } catch (Exception e) { @@ -320,12 +295,10 @@ * * @throws SimExplorerServiceException the sim explorer service exception */ - public InputStream retrieveElementXML(String token, String uuid, - String version) throws SimExplorerServiceException { + public InputStream retrieveElementXML(String token, String uuid, String version) throws SimExplorerServiceException { MetaData mde = getMetadata(token, uuid, version); try { - InputStream xmlStream = getStorageEngine().retrieveData(token, mde, - getXMLAttachment()); + InputStream xmlStream = getStorageEngine().retrieveData(token, mde, getXMLAttachment()); return new SimExplorerServiceStream(xmlStream); } catch (Exception e) { throw new SimExplorerServiceException(e); @@ -344,24 +317,21 @@ * * @throws SimExplorerServiceException the sim explorer service exception */ - public InputStream retrieveElementFull(String token, String uuid, - String version) throws SimExplorerServiceException { + public InputStream retrieveElementFull(String token, String uuid, String version) + throws SimExplorerServiceException { LoggableElement element = getLoggableElement(token, uuid, version); MetaData mde = element.getMetaData(); try { PipedOutputStream pipedOut = new PipedOutputStream(); Map<String, InputStream> files = new HashMap<String, InputStream>(); - files.put(FILE_XML, getStorageEngine().retrieveData(token, mde, - getXMLAttachment())); + files.put(FILE_XML, getStorageEngine().retrieveData(token, mde, getXMLAttachment())); List<LoggableElement> children = element.getChildren(); for (LoggableElement loggableElement : children) { MetaData thisMde = loggableElement.getMetaData(); - List<Attachment> attachments = loggableElement.getMetaData() - .getAttachments(); + List<Attachment> attachments = loggableElement.getMetaData().getAttachments(); for (Attachment attachment : attachments) { - files.put(FILE_DATA_PREFIX + FOLDER_SEPARATOR - + attachment.getUniqueId(), getStorageEngine() + files.put(FILE_DATA_PREFIX + FOLDER_SEPARATOR + attachment.getUniqueId(), getStorageEngine() .retrieveData(token, thisMde, attachment)); } } @@ -389,52 +359,41 @@ * * @throws Exception the exception */ - private MetaData saveElement(String token, String idxml, - Map<Attachment, String> idsattachment) throws Exception { + private MetaData saveElement(String token, String idxml, Map<Attachment, String> idsattachment) throws Exception { // Load metadata xml - MetaDataFactory<MetaData> mdeFactory = MetaDataFactory - .getFactory(MetaData.class); - MetaData metaData = mdeFactory - .loadElementFromParentXML(getStorageEngine().retrieveTempData( - idxml)); + MetaDataFactory<MetaData> mdeFactory = MetaDataFactory.getFactory(MetaData.class); + MetaData metaData = mdeFactory.loadElementFromParentXML(getStorageEngine().retrieveTempData(idxml)); // Compute element hash - metaData.setHash(mdeFactory.computeHash(getStorageEngine() - .retrieveTempData(idxml))); + metaData.setHash(mdeFactory.computeHash(getStorageEngine().retrieveTempData(idxml))); if (notExists(token, metaData)) { // Process version rules if (processVersionRules(token, metaData)) { // Update XML - InputStream newXml = mdeFactory.replaceElementInParentXML( - getStorageEngine().retrieveTempData(idxml), metaData); + InputStream newXml = mdeFactory.replaceElementInParentXML(getStorageEngine().retrieveTempData(idxml), + metaData); getStorageEngine().storeTempData(idxml, newXml); } - if (metaData.getType() != null - && VALUE_METADATA_TYPE_EA.equals(metaData.getType())) { + if (metaData.getType() != null && VALUE_METADATA_TYPE_EA.equals(metaData.getType())) { // Save components - saveSubElements(token, idxml, - KEY_EXPLORATIONAPPLICATION_COMPONENTS, - KEY_EXPLORATIONAPPLICATION_COMPONENT_NODE, - idsattachment); + saveSubElements(token, idxml, KEY_EXPLORATIONAPPLICATION_COMPONENTS, + KEY_EXPLORATIONAPPLICATION_COMPONENT_NODE, idsattachment); // Save exploration data - saveSubElements(token, idxml, KEY_EXPLORATIONAPPLICATION_DATA, - KEY_EXPLORATIONAPPLICATION_DATA_NODE, idsattachment); + saveSubElements(token, idxml, KEY_EXPLORATIONAPPLICATION_DATA, KEY_EXPLORATIONAPPLICATION_DATA_NODE, + idsattachment); } - if (metaData.getType() != null - && VALUE_METADATA_TYPE_COMPONENT.equals(metaData.getType())) { + if (metaData.getType() != null && VALUE_METADATA_TYPE_COMPONENT.equals(metaData.getType())) { // Save libraries - saveSubElements(token, idxml, KEY_COMPONENT_LIBRARIES, - KEY_COMPONENT_LIBRARY_NODE, idsattachment); + saveSubElements(token, idxml, KEY_COMPONENT_LIBRARIES, KEY_COMPONENT_LIBRARY_NODE, idsattachment); } // Prepare saving Map<Attachment, InputStream> attachments = new HashMap<Attachment, InputStream>(); - attachments.put(getXMLAttachment(), getStorageEngine() - .retrieveTempData(idxml)); + attachments.put(getXMLAttachment(), getStorageEngine().retrieveTempData(idxml)); List<Attachment> realAttachments = metaData.getAttachments(); for (Attachment attachment : realAttachments) { @@ -443,12 +402,10 @@ // Check hash of attachments if (idAttachment == null) { - throw new SimExplorerServiceException( - _("simexplorer.service.attachmentnotfund")); + throw new SimExplorerServiceException(_("simexplorer.service.attachmentnotfund")); } - attachments.put(attachment, getStorageEngine() - .retrieveTempData(idAttachment)); + attachments.put(attachment, getStorageEngine().retrieveTempData(idAttachment)); } @@ -471,65 +428,50 @@ * * @throws Exception the exception */ - private void saveSubElements(String token, String idxml, - String entitiesNode, String entityNode, + private void saveSubElements(String token, String idxml, String entitiesNode, String entityNode, Map<Attachment, String> idsattachment) throws Exception { - BaseEntityFactory<MetaData> elementFactory = MetaDataFactory - .getFactory(MetaData.class); + BaseEntityFactory<MetaData> elementFactory = MetaDataFactory.getFactory(MetaData.class); - Document document = BaseEntityFactory.getXMLBuilder().parse( - getStorageEngine().retrieveTempData(idxml)); + Document document = BaseEntityFactory.getXMLBuilder().parse(getStorageEngine().retrieveTempData(idxml)); Element rootElement = (Element) document.getFirstChild(); // Elements - Element entitiesElement = elementFactory.getXMLElementByTagName( - rootElement, entitiesNode); - Set<Element> entityElements = elementFactory.getXMLElementsByTagName( - entitiesElement, entityNode); + Element entitiesElement = elementFactory.getXMLElementByTagName(rootElement, entitiesNode); + Set<Element> entityElements = elementFactory.getXMLElementsByTagName(entitiesElement, entityNode); for (Element element : entityElements) { - String elementDataId = getStorageEngine().storeTempData( - BaseEntityFactory.serializeElement(element)); + String elementDataId = getStorageEngine().storeTempData(BaseEntityFactory.serializeElement(element)); saveElement(token, elementDataId, idsattachment); getStorageEngine().deleteTempData(elementDataId); } } - /** - * Update. - * - * @param token the token - * @param oldVersion the old version - * @param newVersion the new version - * @param oldUuid the old uuid - * - * @throws SimExplorerServiceException the sim explorer service exception + /* (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) */ - protected void update(String token, String oldUuid, Version oldVersion, - MetaData newVersion) throws SimExplorerServiceException { + 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); + MetaData oldMetaData = getStorageEngine().getMetadata(token, oldUuid, oldVersion); - InputStream oldXml = getStorageEngine().retrieveData(token, - oldMetaData, getXMLAttachment()); + InputStream oldXml = getStorageEngine().retrieveData(token, oldMetaData, getXMLAttachment()); - MetaDataFactory<MetaData> mdeFactory = MetaDataFactory - .getFactory(MetaData.class); - InputStream newXml = mdeFactory.replaceElementInParentXML(oldXml, - newVersion); + 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)); + 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) { @@ -537,18 +479,6 @@ } } - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#exportElementTo(java.lang.String, fr.cemagref.simexplorer.is.service.StorageService, java.lang.String, java.lang.String) - */ - @Override - public Version exportElementTo(String token, StorageService otherService, - String uuid, String version) throws SimExplorerServiceException { - - // TODO Auto-generated method stub - - return null; - } - /** * Process version rules. * @@ -559,26 +489,21 @@ * * @throws Exception the exception */ - protected boolean processVersionRules(String token, MetaData metaData) - throws 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()); + MetaData previousVersion = getStorageEngine().getMetadata(token, metaData.getUuid()); // Version rules if (previousVersion != null) { previousVersion.setLatest(false); - update(token, previousVersion.getUuid(), previousVersion - .getVersion(), previousVersion); + 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()); + if (metaData.getVersion().compareTo(incrementVersion(previousVersion.getVersion())) <= 0) { + metaData.setVersion(incrementVersion(previousVersion.getVersion()).toString()); } return true; @@ -587,19 +512,16 @@ } private boolean notExists(String token, MetaData metaData) throws Exception { - MetaData previousVersion = getStorageEngine().getMetadata(token, - metaData.getUuid()); + MetaData previousVersion = getStorageEngine().getMetadata(token, metaData.getUuid()); - if (previousVersion != null - && previousVersion.getHash().equals(metaData.getHash())) { + 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); + update(token, previousVersion.getUuid(), versionToUpgrade, previousVersion, false); } return false; @@ -619,11 +541,9 @@ /* (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 { + public Version[] getVersions(String token, String uuid) throws SimExplorerServiceException { try { - Set<MetaData> versions = getStorageEngine().getElementVersions( - token, uuid); + Set<MetaData> versions = getStorageEngine().getElementVersions(token, uuid); Iterator<MetaData> iterator = versions.iterator(); Version[] result = new Version[versions.size()]; int i = 0; @@ -640,8 +560,7 @@ /* (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 { + public void deleteElement(String token, String uuid, String version) throws SimExplorerServiceException { try { getStorageEngine().deleteElement(token, uuid, new Version(version)); getStorageEngine().commit(); @@ -653,8 +572,7 @@ /* (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 { + public void deleteElement(String token, String uuid) throws SimExplorerServiceException { try { getStorageEngine().deleteElements(token, uuid); getStorageEngine().commit(); Added: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java (rev 0) +++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceHelper.java 2008-02-13 11:36:42 UTC (rev 899) @@ -0,0 +1,52 @@ +/* +* ##% Copyright (C) 2008 Code Lutin, Gabriel Landais +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* ##% */ +package fr.cemagref.simexplorer.is.service; + +import java.io.InputStream; + +import fr.cemagref.simexplorer.is.entities.metadata.MetaData; +import fr.cemagref.simexplorer.is.entities.metadata.Version; + +public class StorageServiceHelper { + + /** + * Export element to another service. + * + * @param token the token + * @param uuid the uuid + * @param version the version + * @param fromService the from service + * @param toService the to service + * + * @return the version + * + * @throws SimExplorerServiceException the sim explorer service exception + */ + public static MetaData exportElementTo(String token, StorageService fromService, StorageService toService, + String uuid, String version) throws SimExplorerServiceException { + InputStream fromElement = fromService.retrieveElementFull(token, uuid, version); + MetaData toElement = toService.saveElement(token, new SimExplorerServiceStream(fromElement)); + fromService.update(token, uuid, new Version(version), toElement, false); + return toElement; + } + + protected StorageServiceHelper() { + // not instanciable + } + +} Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-02-13 11:03:22 UTC (rev 898) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-02-13 11:36:42 UTC (rev 899) @@ -279,10 +279,11 @@ } @Override - public Version exportElementTo(String token, StorageService otherService, - String uuid, String version) throws SimExplorerServiceException { + public void update(String token, String oldUuid, Version oldVersion, MetaData newVersion, boolean deleteOldElement) + throws SimExplorerServiceException { checkImplemented(); - return null; } + + }
participants (1)
-
glandais@users.labs.libre-entreprise.org