001: /*
002: * Copyright 1990-2006 Sun Microsystems, Inc. All Rights Reserved.
003: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
004: *
005: * This program is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU General Public License version
007: * 2 only, as published by the Free Software Foundation.
008: *
009: * This program is distributed in the hope that it will be useful, but
010: * WITHOUT ANY WARRANTY; without even the implied warranty of
011: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
012: * General Public License version 2 for more details (a copy is
013: * included at /legal/license.txt).
014: *
015: * You should have received a copy of the GNU General Public License
016: * version 2 along with this work; if not, write to the Free Software
017: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
018: * 02110-1301 USA
019: *
020: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
021: * Clara, CA 95054 or visit www.sun.com if you need additional
022: * information or have any questions.
023: */
024:
025: package com.sun.jump.module.contentstore;
026:
027: import com.sun.midp.jump.push.executive.persistence.StoreOperationManager;
028: import java.io.IOException;
029: import java.util.Map;
030:
031: /** In memory version of <code>JUMPContentStore</code>. */
032: public final class InMemoryContentStore extends JUMPContentStore
033: implements StoreOperationManager.ContentStore {
034: /** Store. */
035: private final InMemoryStore store;
036:
037: /**
038: * Creates a content store.
039: *
040: * @throws IOException if operation fails
041: */
042: public InMemoryContentStore() throws IOException {
043: store = new InMemoryStore();
044: }
045:
046: /**
047: * Loads this module.
048: *
049: * @param map parameters
050: */
051: public void load(final Map map) {
052: }
053:
054: /**
055: * Unloads this module.
056: */
057: public void unload() {
058: }
059:
060: /**
061: * Fetches the store.
062: *
063: * @return store
064: */
065: protected JUMPStore getStore() {
066: return store;
067: }
068:
069: /**
070: * Opens content store.
071: *
072: * @param accessExclusive access type
073: *
074: * @return store handle
075: */
076: public JUMPStoreHandle openStore(final boolean accessExclusive) {
077: return new JUMPStoreHandle(getStore(), accessExclusive);
078: }
079:
080: /**
081: * Opens content store.
082: *
083: * As requested by #StoreOperationManager.ContentStore interface
084: *
085: * @param accessExclusive access type
086: *
087: * @return store handle
088: *
089: * @thorws IOException if IO fails
090: */
091: public JUMPStoreHandle open(final boolean accessExclusive) {
092: return openStore(accessExclusive);
093: }
094:
095: /**
096: * Closes opened content store handle.
097: *
098: * As requested by #StoreOperationManager.ContentStore interface
099: *
100: * @param storeHandle handle to close
101: */
102: public void close(final JUMPStoreHandle storeHandle) {
103: closeStore(storeHandle);
104: }
105:
106: /**
107: * Populates a store handle with some prebuild dirs.
108: *
109: * @param storeHandle handle to the store to operate on
110: * @param dirs directories to create
111: *
112: * @throws IOException if IO failed
113: */
114: public static void initStore(final JUMPStoreHandle storeHandle,
115: final String[] dirs) throws IOException {
116: for (int i = 0; i < dirs.length; i++) {
117: storeHandle.createNode(dirs[i]);
118: }
119: }
120: }
|