001: /*
002: * This file is part of PFIXCORE.
003: *
004: * PFIXCORE is free software; you can redistribute it and/or modify
005: * it under the terms of the GNU Lesser General Public License as published by
006: * the Free Software Foundation; either version 2 of the License, or
007: * (at your option) any later version.
008: *
009: * PFIXCORE is distributed in the hope that it will be useful,
010: * but WITHOUT ANY WARRANTY; without even the implied warranty of
011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
012: * GNU Lesser General Public License for more details.
013: *
014: * You should have received a copy of the GNU Lesser General Public License
015: * along with PFIXCORE; if not, write to the Free Software
016: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
017: */
018:
019: package de.schlund.pfixcore.editor2.core.spring;
020:
021: import java.util.Collection;
022:
023: import de.schlund.pfixcore.editor2.core.dom.Image;
024: import de.schlund.pfixcore.editor2.core.dom.IncludePartThemeVariant;
025: import de.schlund.pfixcore.editor2.core.exception.EditorSecurityException;
026:
027: /**
028: * Service providing methods to create and restore backups.
029: *
030: * @author Sebastian Marsching <sebastian.marsching@1und1.de>
031: */
032: public interface BackupService {
033: /**
034: * Creates a new backup of the supplied image
035: *
036: * @param image
037: * Image to backup
038: * @throws EditorSecurityException
039: */
040: void backupImage(Image image) throws EditorSecurityException;
041:
042: /**
043: * Restores an old version of an image
044: *
045: * @param image
046: * Image to restore
047: * @param version
048: * String identifying the backup version
049: * @return <code>true</code> if version was found and restored,
050: * <code>false</code> on error
051: * @throws EditorSecurityException
052: */
053: boolean restoreImage(Image image, String version)
054: throws EditorSecurityException;
055:
056: /**
057: * Returns a list containing all versions available for an image as
058: * {@link String} objects. The returned strings can be used to restore a
059: * backup using the {@link #restoreImage(Image, String)} method.
060: *
061: * @param image
062: * Image to list versions for
063: * @return Collection of versions (as {@link String} objects)
064: */
065: Collection<String> listImageVersions(Image image);
066:
067: /**
068: * Creates a new backup of the supplied include part
069: *
070: * @param include
071: * Include part to backup
072: * @throws EditorSecurityException
073: */
074: void backupInclude(IncludePartThemeVariant include)
075: throws EditorSecurityException;
076:
077: /**
078: * Restores an old version of an include part
079: *
080: * @param include
081: * Include part to restore
082: * @param version
083: * String identifying the version to restore
084: * @return <code>true</code> if version was found and restored,
085: * <code>false</code> on error
086: * @throws EditorSecurityException
087: */
088: boolean restoreInclude(IncludePartThemeVariant include,
089: String version) throws EditorSecurityException;
090:
091: /**
092: * Returns a list containing all versions available for an include part as
093: * {@link String} objects. The returned strings can be used to restore a
094: * backup using the {@link #restoreInclude(IncludePartThemeVariant, String)}
095: * method.
096: *
097: * @param include
098: * Include Part to list versions for
099: * @return Collection of versions (as {@link String} objects)
100: */
101: Collection<String> listIncludeVersions(
102: IncludePartThemeVariant include);
103: }
|