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

Filing Type Class Hierarchy

fsDirectoryEntry
fsFileType (tick)
fsTextFileType (tick)
fsJpegFileType (tick)
fsHtmlFileType (tick)
fsXmlFileType (tick)
fsArchiveType (tick)
fsArchiveFileType (tick)

fsDirectoryType

The following search types have been created:

  • fsDirectoryEntrySearchType
  • fsFileSearchtype
  • fsFileNameAllSearchType
  • fsFileNameRegexSearchType
  • fsFileNamePrefixSearchType
  • fsFileNameSuffixSearchType
  • fsFileNameContainsSearchType
  • fsFileSizeInclusiveType
  • fsFileSizeExclusiveType
  • fsFileSizeLessThanType
  • fsFileSizeGreaterThanType

Record Hierarchy

Filing Record Class Hierarchy

fsFileRecord (tick)
fsTextFileRecord (tick)

fsDirectoryRecord (tick)
fsArchiveDirectoryRecord (tick)

Form Hierarchy

Filing Form Class Hierarchy

fsFileForm (question)

fsDirectoryForm (tick)
fsArchiveDirectoryForm (tick)

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:

  1. FilingProfile
  2. FilingManager
    1. FileSession
      1. OsidSession (extends)
      2. File
        1. DirectoryEntry (extends)
          1. Id
          2. Agent
          3. DateTime
      3. DataInputStream
      4. DataOutputStream
    2. DirectoryAdminSession
      1. OsidSession (extends)
      2. Directory
        1. DirectoryEntry (extends)
          1. Id
          2. Agent
          3. DateTime
      3. File
        1. DirectoryEntry (extends)
          1. Id
          2. Agent
          3. DateTime
    3. (many other session types)

The following classes need to be implemented based on the above interfaces, extensions and dependencies:

  1. FilingProfile
  2. FilingManager
  3. FileSession
  4. DirectoryAdminSession
  5. Directory
  6. File
  7. Id
  8. Agent
  9. DateTime
  10. DataInputStream
  11. DataOutputStream

A total of 11 classes.

Additional classes will be needed to handle directory selection (to target the CC installation).

Creating a File

  1. Get a DirectoryAdminSession
  2. Create the file in that directory.
  3. Get a FileSession
  4. Get the output stream from the session.
  5. Write data to the stream
  6. 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.