01: /*
02: *
03: *
04: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
05: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
06: *
07: * This program is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU General Public License version
09: * 2 only, as published by the Free Software Foundation.
10: *
11: * This program is distributed in the hope that it will be useful, but
12: * WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * General Public License version 2 for more details (a copy is
15: * included at /legal/license.txt).
16: *
17: * You should have received a copy of the GNU General Public License
18: * version 2 along with this work; if not, write to the Free Software
19: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20: * 02110-1301 USA
21: *
22: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
23: * Clara, CA 95054 or visit www.sun.com if you need additional
24: * information or have any questions.
25: */
26:
27: package com.sun.midp.rms;
28:
29: import javax.microedition.rms.*;
30:
31: import com.sun.midp.security.Permissions;
32: import com.sun.midp.security.SecurityToken;
33:
34: import com.sun.midp.midlet.MIDletStateHandler;
35: import com.sun.midp.midlet.MIDletSuite;
36: import com.sun.midp.midletsuite.MIDletSuiteStorage;
37:
38: /**
39: * A utility class for checking and removing record stores.
40: */
41: public class RecordStoreFactory {
42:
43: /** Private constructor to prevent any instances from being created. */
44: private RecordStoreFactory() {
45: }
46:
47: /**
48: * Remove all the Record Stores for a suite.
49: * Called by the installer when updating a suite
50: *
51: * @param token security token with MIDP AMS permission
52: * @param id ID of the suite
53: */
54: public static void removeRecordStoresForSuite(SecurityToken token,
55: int id) {
56:
57: if (token == null) {
58: MIDletSuite midletSuite = MIDletStateHandler
59: .getMidletStateHandler().getMIDletSuite();
60:
61: // if a MIDlet suite is not scheduled, assume the JAM is calling.
62: if (midletSuite != null) {
63: midletSuite.checkIfPermissionAllowed(Permissions.AMS);
64: }
65: } else {
66: token.checkIfPermissionAllowed(Permissions.AMS);
67: }
68:
69: RecordStoreFile.removeRecordStores(id);
70: }
71:
72: /**
73: * Returns true if the suite has created at least one record store.
74: * Called by the installer when updating a suite.
75: *
76: * @param id ID of the suite
77: *
78: * @return true if the suite has at least one record store
79: */
80: public static native boolean suiteHasRmsData(int id);
81: }
|