Author: glandais Date: 2008-02-26 14:07:15 +0000 (Tue, 26 Feb 2008) New Revision: 1253 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/storage/engine/StorageEngineSecuImpl.java trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java Log: Delete attachments 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-26 13:01:15 UTC (rev 1252) +++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-02-26 14:07:15 UTC (rev 1253) @@ -460,7 +460,7 @@ } if (justRemoveLatest) { - getStorageEngine().deleteElement(token, uuid, version); + rawDeleteElement(token, uuid, version.toString()); } else { getStorageEngine().duplicateElementHierarchy(token, currentMetaData, elementToUpdate); } @@ -614,6 +614,24 @@ } } + /** + * Raw delete element. + * + * @param token the token + * @param uuid the uuid + * @param version the version + * + * @throws SimExplorerException the sim explorer exception + */ + private void rawDeleteElement(String token, String uuid, String version) throws SimExplorerException { + LoggableElement loggableElement = getLoggableElement(token, uuid, version); + List<Attachment> attachments = loggableElement.getAttachments(); + for (Attachment attachment : attachments) { + getStorageEngine().deleteData(token, loggableElement.getMetaData(), attachment); + } + getStorageEngine().deleteElement(token, uuid, Version.valueOf(version)); + } + /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String, java.lang.String) */ @@ -627,13 +645,28 @@ getParents(token, uuid, version, elementsToDelete); for (MetaData orphan : elementsToDelete) { - getStorageEngine().deleteElement(token, orphan.getUuid(), orphan.getVersion()); + rawDeleteElement(token, orphan.getUuid(), orphan.getVersion().toString()); } - getStorageEngine().deleteElement(token, uuid, Version.valueOf(version)); + rawDeleteElement(token, uuid, version); getStorageEngine().commit(); } + /** + * Delete elements. + * + * @param token the token + * @param uuid the uuid + * + * @throws SimExplorerException the sim explorer exception + */ + private void deleteElements(String token, String uuid) throws SimExplorerException { + List<Version> versions = getStorageEngine().getVersions(token, uuid); + for (Version version : versions) { + rawDeleteElement(token, uuid, version.toString()); + } + } + /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String) */ @@ -647,10 +680,10 @@ getParents(token, uuid, elementsToDelete); for (MetaData orphan : elementsToDelete) { - getStorageEngine().deleteElement(token, orphan.getUuid(), orphan.getVersion()); + rawDeleteElement(token, orphan.getUuid(), orphan.getVersion().toString()); } - getStorageEngine().deleteElements(token, uuid); + deleteElements(token, uuid); getStorageEngine().commit(); } Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineSecuImpl.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineSecuImpl.java 2008-02-26 13:01:15 UTC (rev 1252) +++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineSecuImpl.java 2008-02-26 14:07:15 UTC (rev 1253) @@ -56,7 +56,6 @@ @Override public void deleteElement(String token, String uuid, Version version) throws SimExplorerException { Permission permission = credentialManager.getPermission(token, uuid); - // TODO check candelete = canadmin if (permission.isCanAdmin()) { super.deleteElement(token, uuid, version); } else { @@ -64,18 +63,15 @@ } } - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.storage.engine.StorageEngineImpl#deleteElements(java.lang.String, java.lang.String) - */ @Override - public void deleteElements(String token, String uuid) throws SimExplorerException { - Permission permission = credentialManager.getPermission(token, uuid); - // TODO check candelete = canadmin + public void deleteData(String token, MetaData entity, Attachment attachment) throws SimExplorerException { + Permission permission = credentialManager.getPermission(token, entity.getUuid()); if (permission.isCanAdmin()) { - super.deleteElements(token, uuid); + super.deleteData(token, entity, attachment); } else { throw new SimExplorerSecurityException(); } + } /* (non-Javadoc) Modified: trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java 2008-02-26 13:01:15 UTC (rev 1252) +++ trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java 2008-02-26 14:07:15 UTC (rev 1253) @@ -224,6 +224,17 @@ throws SimExplorerException; /** + * Delete data. + * + * @param token the token + * @param entity the entity + * @param attachment the attachment + * + * @throws SimExplorerException the sim explorer exception + */ + public abstract void deleteData(String token, MetaData entity, Attachment attachment) throws SimExplorerException; + + /** * Get number of items corresponding to query. * * @param query the query @@ -289,16 +300,6 @@ throws SimExplorerException; /** - * Delete elements. - * - * @param uuid the uuid - * @param token the token - * - * @throws SimExplorerException the sim explorer storage exception - */ - public abstract void deleteElements(String token, String uuid) throws SimExplorerException; - - /** * Delete one element. * * @param uuid the uuid Modified: trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java 2008-02-26 13:01:15 UTC (rev 1252) +++ trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java 2008-02-26 14:07:15 UTC (rev 1253) @@ -73,7 +73,9 @@ return metadatas.toArray(new MetaData[metadatas.size()]); } - /** Default constructor with default implementations of storage and indexing. */ + /** + * Default constructor with default implementations of storage and indexing. + */ public StorageEngineImpl() { this(null, null); } @@ -243,6 +245,9 @@ return convertList(database.getElementsUsing(mde)); } + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#getMetadatasUsing(java.lang.String, java.lang.String) + */ @Override public MetaData[] getMetadatasUsing(String token, String uuid) throws SimExplorerException { Set<MetaData> metadatasUsing = new HashSet<MetaData>(); @@ -268,6 +273,13 @@ } /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#deleteData(java.lang.String, fr.cemagref.simexplorer.is.entities.metadata.MetaData, fr.cemagref.simexplorer.is.entities.attachment.Attachment) + */ + public void deleteData(String token, MetaData entity, Attachment attachment) throws SimExplorerException { + attachmentHandler.deleteData(entity, attachment); + } + + /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#findFullTextCount(java.lang.String, boolean) */ public int findFullTextCount(String token, String query, SearchColumn searchColumn, boolean onlyLatest) @@ -304,16 +316,6 @@ // Delete /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#deleteElements(java.lang.String) - */ - public void deleteElements(String token, String uuid) throws SimExplorerException { - List<Version> versions = getVersions(token, uuid); - for (Version version : versions) { - deleteElement(token, uuid, version); - } - } - - /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#deleteElement(java.lang.String, fr.cemagref.simexplorer.is.entities.metadata.Version) */ public void deleteElement(String token, String uuid, Version version) throws SimExplorerException { @@ -332,6 +334,7 @@ * Gets the tmp attachment. * * @param id the id + * * @return the tmp attachment */ private Attachment getTmpAttachment(String id) {