Filing OSID
The OKI Filing OSID has been selected to be the primary service interface for the CC Installer application.
See also notes on File Types.
The Filing OSID
The Filing OSID consists of the following interfaces:
Interface Name |
CHS Impl Name |
Status |
Filing System Impl Name |
Status |
---|---|---|---|---|
Directory |
 |
 |
fsDirectory |
Complete |
DirectoryAdminSession |
chsDirectoryAdminSession |
Partial |
fsDirectoryAdminSession |
Partial |
DirectoryEntry |
chsDirectoryEntry |
Complete |
fsDirectoryEntry |
Most |
DirectoryEntryLookupSession |
 |
 |
fsDirectoryEntryLookupSession |
Complete |
DirectoryEntryQuery |
 |
 |
fsDirectoryEntryQuery |
3 match types |
DirectoryEntrySearch |
 |
 |
 |
 |
DirectoryList |
chsDirectoryList |
Complete |
fsDirectoryList |
Complete |
DirectoryRecord |
 |
 |
fsDirectoryRecord |
Complete |
DirectoryForm |
 |
 |
fsDirectoryForm |
Partial |
DirectoryFormRecord |
 |
 |
fsDirectoryFormRecord |
Complete |
DirectoryNotificationSession |
 |
 |
 |
 |
DirectoryQuery |
 |
 |
 |
 |
DirectoryReceiver |
 |
 |
 |
 |
DirectorySearch |
 |
 |
 |
 |
DirectorySearchResults |
 |
 |
 |
 |
DirectorySearchSession |
chsDirectorySearchSession |
Partial |
 |
 |
File |
chsFile |
Complete |
fsFile |
Complete |
FileList |
chsFileList |
Complete |
fsFileList |
Complete |
FileRecord |
 |
 |
fsFileRecord |
Complete |
FileForm |
 |
 |
 |
 |
FileFormRecord |
 |
 |
 |
 |
FileNotificationSession |
 |
 |
 |
 |
FileQuery |
 |
 |
fsFileQuery |
4 match types |
FileReceiver |
 |
 |
 |
 |
FileSearch |
 |
 |
fsFileSearch |
Complete |
FileSearchOrder |
 |
 |
fsFileSearchOrder |
Most |
FileSearchResults |
 |
 |
 |
 |
FileSearchSession |
chsFileSearchSession |
Partial |
fsFileSearchSession |
Most |
FileSession |
chsFileSession |
Complete |
fsFileSession |
Complete |
FilingManagementSession |
 |
 |
 |
 |
FilingManager |
chsFilingManager |
Partial |
fsFilingManager |
Some |
FilingProfile |
 |
 |
fsFilingProfile |
stubbed |
FilingProxyManager |
 |
 |
 |
 |
OSIDs flagged as complete may have methods that throw UnimplementedException.
In addition, the following OSIDs are used:
Package |
Interface Name |
CHS Impl Name |
Status |
FS Impl Name |
Status |
---|---|---|---|---|---|
osid |
OsidQuery |
 |
 |
fsOsidQuery |
1 match |
osid |
OsidSearch |
 |
 |
fsOsidSearch |
 |
osid |
OsidSearchOrder |
 |
 |
fsOsidSearchOrder |
All |
osid |
OsidSession |
 |
 |
fsSession |
Most |
runtime |
RuntimeManager |
 |
 |
fsRuntimeManager |
some |
runtime |
RuntimeProfile |
 |
 |
fsRuntimeProfile |
some |
transport |
TransportManager |
 |
 |
fsTransportManager |
Most |
transport |
TransportSession |
 |
 |
fsTransportSession |
Complete |
transport |
TransportReceiver |
 |
 |
fsTransportReceiver |
 |
transport |
DataInputStream |
chsDataInputStream |
Prototype |
fsDataInputStream |
Complete |
transport |
DataOutputStream |
chsDataOutputStream |
Prototype |
fsDataOutputStream |
Complete |
calendaring |
DateTime |
 |
 |
fsDateTime |
Most |
type |
TypeManager |
 |
 |
fsTypeManager |
Partial |
type |
Type |
 |
 |
fsType |
Complete |
type |
TypeList |
 |
 |
fsTypeList |
Complete |
type |
TypeLookupSession |
 |
 |
fsTypeLookupSession |
Complete |
id |
Id |
 |
 |
fsId |
Complete |
authorization |
AuthenticationManager |
 |
 |
fsAuthenticationManager |
some |
authorization |
AgentLookupSession |
 |
 |
fsAgentLookupSession |
some |
authorization |
Agent |
 |
 |
fsAgent |
some |
Type Hierarchy
fsDirectoryEntry
fsFileType
fsTextFileType
fsJpegFileType
fsHtmlFileType
fsXmlFileType
fsArchiveType
fsArchiveFileType
fsDirectoryType
The following search types have been created:
- fsDirectoryEntrySearchType
- fsFileSearchtype
- fsFileNameAllSearchType
- fsFileNameRegexSearchType
- fsFileNamePrefixSearchType
- fsFileNameSuffixSearchType
- fsFileNameContainsSearchType
- fsFileSizeInclusiveType
- fsFileSizeExclusiveType
- fsFileSizeLessThanType
- fsFileSizeGreaterThanType
Record Hierarchy
fsFileRecord
fsTextFileRecord
fsDirectoryRecord
fsArchiveDirectoryRecord
Form Hierarchy
fsFileForm
fsDirectoryForm
fsArchiveDirectoryForm
Implementation Strategy
Reading and writing of files largely takes place in the FileSession and DirectoryAdminSession interfaces. Said sessions are created (initiated) in the FilingManager. The following dependencies exist to implement basic file I/O:
- FilingProfile
- FilingManager
- FileSession
- OsidSession (extends)
- File
- DirectoryEntry (extends)
- Id
- Agent
- DateTime
- DirectoryEntry (extends)
- DataInputStream
- DataOutputStream
- DirectoryAdminSession
- OsidSession (extends)
- Directory
- DirectoryEntry (extends)
- Id
- Agent
- DateTime
- DirectoryEntry (extends)
- File
- DirectoryEntry (extends)
- Id
- Agent
- DateTime
- DirectoryEntry (extends)
- (many other session types)
- FileSession
The following classes need to be implemented based on the above interfaces, extensions and dependencies:
- FilingProfile
- FilingManager
- FileSession
- DirectoryAdminSession
- Directory
- File
- Id
- Agent
- DateTime
- DataInputStream
- DataOutputStream
A total of 11 classes.
Additional classes will be needed to handle directory selection (to target the CC installation).
Creating a File
- Get a DirectoryAdminSession
- Create the file in that directory.
- Get a FileSession
- Get the output stream from the session.
- Write data to the stream
- Close the stream.
Streaming Data
The way the Filing OSID is designed, a an application requests a DataOutputStream from a FileSession. However, CHS wants an InputStream to write content to it. This means that Piped I/O will be required. It's a bit tricky to visualize.