package at.ac.ait.archistar.backendserver.fragments; import at.ac.ait.archistar.backendserver.storageinterface.StorageServer; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; /** * minimal implementation of the Fragment interface for use with the Archistar * prototype * * @author andy */ public class RemoteFragment implements Fragment { private String fragmentId; private byte[] data; private boolean syncedToServer; private StorageServer server; private EncryptionScheme scheme; public RemoteFragment(String fragmentId) { this.fragmentId = fragmentId; this.syncedToServer = false; this.scheme = EncryptionScheme.NONE; } public RemoteFragment(String fragmentId, StorageServer server) { this.fragmentId = fragmentId; this.server = server; this.syncedToServer = false; this.scheme = EncryptionScheme.NONE; } @Override @SuppressFBWarnings("EI_EXPOSE_REP") public byte[] setData(byte[] data) { this.data = data.clone(); this.syncedToServer = false; return this.data; } @Override @SuppressFBWarnings("EI_EXPOSE_REP") public byte[] getData() { return this.data; } @Override public boolean isSynchronized() { return this.syncedToServer; } @Override public String getFragmentId() { return fragmentId; } @Override public StorageServer getStorageServer() { return this.server; } @Override public boolean setSynchronized(boolean value) { return this.syncedToServer = value; } @Override public String setFragmentId(String fragmentId) { return this.fragmentId = fragmentId; } @Override public EncryptionScheme getEncryptionScheme() { return this.scheme; } @Override public void setEncryptionScheme(EncryptionScheme scheme) { this.scheme = scheme; } }