001: /*
002: * <copyright>
003: *
004: * Copyright 1997-2004 BBNT Solutions, LLC
005: * under sponsorship of the Defense Advanced Research Projects
006: * Agency (DARPA).
007: *
008: * You can redistribute this software and/or modify it under the
009: * terms of the Cougaar Open Source License as published on the
010: * Cougaar Open Source Website (www.cougaar.org).
011: *
012: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
013: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
014: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
015: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
016: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
017: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
018: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
019: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
020: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
021: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
022: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
023: *
024: * </copyright>
025: */
026:
027: package org.cougaar.core.persist;
028:
029: import java.io.IOException;
030: import java.io.InputStream;
031: import java.io.OutputStream;
032:
033: import org.cougaar.core.service.DataProtectionKey;
034:
035: /**
036: * A {@link PersistencePlugin} that does nothing.
037: * <p>
038: * Persistence clients can check the {@link
039: * Persistence#isDummyPersistence} method to avoid the (minimal)
040: * overhead imposed by this implementation.
041: * <p>
042: * Running with this persistence implementation incurs most
043: * of the work of doing persistence, but discards the results.
044: * This is often used for performance testing.
045: */
046: public class DummyPersistence extends PersistencePluginAdapter
047: implements PersistencePlugin {
048:
049: public void init(PersistencePluginSupport pps, String name,
050: String[] params, boolean deleteOldPersistence)
051: throws PersistenceException {
052: init(pps, name, params);
053: }
054:
055: protected void handleParameter(String param) {
056: // Ignore params
057: }
058:
059: public boolean isWritable() {
060: return true; // Cannot be disabled.
061: }
062:
063: public SequenceNumbers[] readSequenceNumbers(String suffix) {
064: return new SequenceNumbers[0];
065: }
066:
067: public void writeSequenceNumbers(SequenceNumbers sequenceNumbers) {
068: }
069:
070: public void cleanupOldDeltas(SequenceNumbers cleanupNumbers) {
071: }
072:
073: public void cleanupArchive() {
074: }
075:
076: public OutputStream openOutputStream(int deltaNumber, boolean full)
077: throws IOException {
078: return null; // Null means don't write output
079: }
080:
081: public void finishOutputStream(SequenceNumbers retain, boolean full) {
082: }
083:
084: public void abortOutputStream(SequenceNumbers retain) {
085: }
086:
087: public InputStream openInputStream(int deltaNumber)
088: throws IOException {
089: throw new IOException("No dummy input");
090: }
091:
092: public void finishInputStream(int deltaNumber) {
093: }
094:
095: public void deleteOldPersistence() {
096: }
097:
098: public void storeDataProtectionKey(int deltaNumber,
099: DataProtectionKey key) throws IOException {
100: }
101:
102: public DataProtectionKey retrieveDataProtectionKey(int deltaNumber)
103: throws IOException {
104: return null;
105: }
106: }
|