Methods Summary |
---|
public void | close()Disconnect from recordStream if it is
non null. May be called more than once without error.
// close recordStream if it exists
if (recordStream != null) {
recordStream.disconnect();
recordStream = null;
}
|
public static boolean | deleteFile(java.lang.String uidPath)Removes the storage file for record store filename
if it exists.
File file;
file = new File(classSecurityToken);
try {
file.delete(uidPath);
return true;
} catch (IOException ioe) {
return false;
}
|
public static boolean | exists(java.lang.String uidPath)Looks to see if the storage file for record store
identified by uidPath exists
File file;
file = new File(classSecurityToken);
return file.exists(uidPath);
|
private static java.lang.String | getStoragePath(java.lang.String name)Given a null argument this helper functions returns a
path to where record stores should be stored for the
MIDlet suite of the calling MIDlet process. If name
is non null it returns the full path of that
record store in the file system:
.db
String str;
MIDletSuite mSuite;
StringBuffer path;
mSuite = Scheduler.getScheduler().getMIDletSuite();
// MIDletSuite msuite should not be null.
str = mSuite.getStorageRoot();
if (name != null) {
path = new StringBuffer(str);
// convert the unicode filename into a system acceptable string
path.append(File.unicodeToAsciiFilename(name));
path.append(dbExtension);
str = path.toString();
}
return str;
|
private static java.lang.String | getStoragePath(java.lang.String vendor, java.lang.String suite, java.lang.String name)If name , suite , and vendor
are all non null, returns the full path of that record store
in the file system:
.db
String str = File.getStorageRoot();
StringBuffer path = new StringBuffer(str);
if (vendor != null && suite != null) {
path.append(File.unicodeToAsciiFilename(vendor));
path.append('_");
path.append(File.unicodeToAsciiFilename(suite));
path.append('_");
}
if (name != null) {
path.append(File.unicodeToAsciiFilename(name));
path.append(dbExtension);
str = path.toString();
}
return str;
|
public static java.lang.String | getUniqueIdPath(java.lang.String fileName)Returns a storage system unique string for this record store file
based on the current vendor and suite of the running MIDlet.
- The native storage path for the desired MIDlet suite
is acquired from the Scheduler.
- The
filename arg is converted into an ascii
equivalent safe to use directly in the underlying
file system and appended to the native storage path. See the
com.sun.midp.io.j2me.storage.File.unicodeToAsciiFilename()
method for conversion details.
- Finally a ".db" extension is appeded to the file name.
|
public static java.lang.String | getUniqueIdPath(java.lang.String vendorName, java.lang.String suiteName, java.lang.String fileName)Returns a storage system unique string for this record store file
based on the vendor, suite, and record store name passed in.
return getStoragePath(vendorName, suiteName, fileName);
|
public java.lang.String | getUniqueIdPath()Get the path of this object when it was created
return myStoragePath;
|
public static void | initSecurityToken(com.sun.midp.security.SecurityToken token)Initializes the security token for this class, so it can
perform actions that a normal MIDlet Suite cannot.
if (classSecurityToken != null) {
return;
}
classSecurityToken = token;
|
public static java.lang.String[] | listRecordStores()Returns an array of the names of record stores owned by the
MIDlet suite. Note that if the MIDlet suite does not
have any record stores, this function will return NULL.
return listRecordStoresForSuite(new File(classSecurityToken),
getStoragePath(null), false);
|
private static java.lang.String[] | listRecordStoresForSuite(com.sun.midp.io.j2me.storage.File storage, java.lang.String suiteStorageRoot, boolean rawNames)Returns an array of the names of record stores owned by the
MIDlet suite. Note that if the MIDlet suite does not
have any record stores, this function will return NULL.
Vector files;
Vector names;
String file;
String asciiName;
files = storage.filenamesThatStartWith(suiteStorageRoot);
names = new Vector();
// work through list of strings from the directory
for (int i = 0; i < files.size(); i++) {
file = (String)files.elementAt(i);
if (file.endsWith(dbExtension)) {
if (rawNames) {
names.addElement(file);
} else {
/*
* some or all of the strings in foo may be encoded
* into a system specific format. decode them before
* adding to names.
*/
asciiName = file.substring(suiteStorageRoot.length(),
file.length() - 3);
names.addElement(File.asciiFilenameToUnicode(asciiName));
}
}
}
if (names.size() == 0) {
return null;
}
String[] rv = new String[names.size()];
names.copyInto(rv);
return rv;
|
public int | read(byte[] buf)Read up to buf.length into buf .
return read(buf, 0, buf.length);
|
public int | read(byte[] buf, int offset, int numBytes)Read up to buf.length into buf
starting at offset offset in recordStream
and continuing for up to numBytes bytes.
return recordStream.readBytes(buf, offset, numBytes);
|
public static void | removeRecordStoresForSuite(com.sun.midp.security.SecurityToken token, java.lang.String suiteStorageRoot)Remove all the Record Stores for a suite.
File storage;
String[] filenames;
storage = new File(token);
filenames = listRecordStoresForSuite(storage, suiteStorageRoot, true);
if (filenames == null) {
return;
}
for (int i = 0; i < filenames.length; i++) {
try {
storage.delete(filenames[i]);
} catch (IOException ioe) {
// move on to the next suite
}
}
|
public void | seek(int pos)Sets the position within recordStream to
pos . This will implicitly grow
the underlying stream if pos is made greater
than the current length of the storage stream.
recordStream.setPosition(pos);
|
public static int | spaceAvailable()Approximation of remaining space in storage.
Usage Warning: This may be a slow operation if
the platform has to look at the size of each file
stored in the MIDP memory space and include its size
in the total.
return new File(classSecurityToken).getBytesAvailableForFiles();
|
public static boolean | suiteHasRmsData(java.lang.String suiteStorageRoot)Returns true if the suite has created at least one record store.
File storage = new File(classSecurityToken);
Vector files = storage.filenamesThatStartWith(suiteStorageRoot);
for (int i = 0; i < files.size(); i++) {
String file = (String)files.elementAt(i);
if (file.endsWith(dbExtension)) {
return true;
}
}
return false;
|
public void | truncate(int size)Sets the length of this RecordStoreFile
size bytes. If this file was previously
larger than size the extra data is lost.
size must be <= the current length of
recordStream
if (recordStream != null) {
recordStream.truncate(size);
}
|
public void | write(byte[] buf, int offset, int numBytes)Write buf to recordStream , starting
at offset and continuing for numBytes
bytes.
recordStream.writeBytes(buf, offset, numBytes);
|
public void | write(byte[] buf)Write all of buf to recordStream .
write(buf, 0, buf.length);
|