So the record store system is going to be simple in design for the most part. I am not going to do super complex huffman compression to shave some bytes off it will just be a simple database. I do however have to have it managed by blocks. So the thing is then, are records looked up in a map or are linear searches done. It could vary how they are used.


Ok so, there will need to be a connection to the record store manager of sorts and it must have a reference to the local suite that is currently running. So it makes me wonder, where is MIDletIdentity used? Only for IMC currently. So I suppose the system service to be created is RecordStoreManagerConnection or RecordManagerConnection. This will just be for the most part a class that manages the databases directly. Or better yet not a connection, but just a manager.


When it comes to RecordManager on the kernel side it will be as it is, but on the client side it would probably use IMC to communicate with the kernel or similar as another service. But the methods used would pretty much be the same for the most part.


So what I need to do is to have a kind of assigning. Basically I need to identify with the manager that this is a certain MIDlet. Basically there would just be a self identity. I suppose all method calls would require an identifier so to speak.


For the manager I could just not care about the local MIDlet. Or just use it implicitly from the RecordStore itself.


At the basic level, I am going to have it where everything is managed by the record store manager. Perhaps though. I do not want to write what modifies the records over and over again for each implementation. I want that basic block like interface that I described before where all records are stored. The only issue is then I will need a connection interface or class then. But that varies. So that means the following: I have a problem. Accessing the raw record store bytes should be left to the kernel and running processes should use an IMC interface to interact with records. But at the lowest levels I want every storage format to use a fixed binary interface. So this means that I have the connection interface that can be created by the implementation of the record store, but one where an actual binary backed one can be done. So this would essentially be an openConnection(RecordStoreOwner). The file based one will for the most part just use a pre-existing (in the RMS package) class which does all the binary stuff using another given interface. Then on SquirrelJME, running processes will use an IMC based one. So I suppose then that the classes should be renamed. Instead of RecordStoreManager it is instead RecordClusterManager which opens connections to RecordCluster abstract class or interface.


This will be a slight problem. Class.getResourceAsStream in Java SE does not match how Java ME 8 looks up resoures. Basically, if I merge the classpath together as one then it will just look in the earlier JARs for the manifest. So what I will need to do is simple although it has a very high potential of not working or completely breaking things. I would have to juggle with classloaders which in most cases will not work at all (it is a very buggy system), or I can just set system properties which can specify application property overrides. The app property overrides would be the simplest to do because otherwise the simple hosted launch system may become overly complex while causing more issues than it fixes.