Novosoft UML Library 0.4.19 project analysisModel POI read existing filesystem create the filesystem read all bytes create a header block from first 512 bytes create blocks from all blocks that are not header,bat or property blocks create bat blocks from bytes that are in bat create property table blocks from bytes starting at header.rootstartblock assign BAT Blocks to the BAT derive property instances from the Property Table Blocks and add them to the property table InputStream write file system createFileSystem createHeaderBlock createBlock [until all files have blocks] create a record [until all files have records] create bat block [if need more] create a record [until all files have records] get the bat array info get the extended bat array info set the bat info set the extended bat info create a block [if needed] create a property add the propert to the block write all blocks to stream OutputStream read file system directory requests directory listing enumerates properties read existing file from file system gets property from gets property from gets BAT Chain from gets next bat chain element [until all are read] gets bytes [from each block in bat chain] constructs a byte array input stream with file bytes requests file returns input stream PropertyBlock ByteArrayInputStream delete file from file system replace file in file system 1 1 read file uses uses rename existing file in file system POIFileSystem readFileSystem(InputStream in) return Block createBlock(byte[] bytes, int offset, int length) return HeaderBlock BATBlock PropertyTableBlock Property RootProperty BAT createRecord return bytes getBlocks return blocks 0 -1 void PropertyTable createRecord return name startBlock DirectoryProperty FileProperty child next 0 1 previous HSSF ClientApps create HSSF File create new filesystem read existing HSSF File write HSSF File read Workbook Entry write Workbook Entry write sheet entry write new file to file system read Sheet Entry HSSFSerializer Cocoon Sends Sax Events Sends an Ignored Event Sends and Interrogative Event Sends Setup Event Sends Start Document Event Sends End Document Event Sends Start Element Event Sends End Element Event Sends Raw Data Event designModel Property _name _name_size _property_type _storage_type _previous_property _next_property _child_property _seconds_1 _days_1 _seconds_2 _days_2 _start_block _size _raw_data[ 128 ] _index setIndex index preWrite getIndex return setStartBlock startBlock PROPERTY_SIZE java 128 _NO_INDEX java -1 _DIRECTORY_TYPE java 1 _DOCUMENT_TYPE java 2 _ROOT_TYPE java 5 _BIG_BLOCK_STORAGE java 1 _SMALL_BLOCK_STORAGE java 0 Property setName name setPropertyType propertyType setStorageType storageType setChildProperty child getChildProperty return setSize size shouldUseSmallBlocks return _next_file _previous_file RootProperty _children DocumentProperty DocumentProperty name size PropertyBlock _properties[ 4 ] createPropertyBlockArray return properties PropertyTable _properties _blocks[ ] getRoot return addProperty property preWrite PropertyTable getStartBlock return _start_block 1 -1 File getNextFile return setNextFile file getPreviousFile return setPreviousFile file realize Directory getChildren return addChild property realize BigBlock writeData stream BIG_BLOCK_SIZE java 512 doWriteData stream data[] HeaderBlock _bat_count _property_start _sbat_start java -2 _xbat_start java -2 _xbat_count java 0 _data[ 512 ] setBATBlocks blockCount startBlock return setPropertyStart startBlock setXBATStart startBlock Header calculateXBATStorageRequirements return blockCount BATBlock _fields[ 128 ] _data[ 512 ] createBATBlocks return entries[] calculateStorageRequirements return entryCount Filesystem createDocument stream name writeFilesystem stream Filesystem _property_table _header_block _documents volatile true Document getDocumentProperty return _property _blocks[] Document name stream DocumentBlock _data[ 512 ] DocumentBlock stream size return partiallyRead return _bytes_read BATManaged countBlocks return setStartBlock index realize realize realize realize BlockWritable writeBlocks stream realize realize realize realize realize BlockAllocationTable createBlocks allocateSpace return blockCount _entries _blocks[] BlockAllocationTable countBlocks return realize POIFSSerializer startPrefixMapping ignoredPrefix ignoredUri endPrefixMapping ignoredPrefix processingInstruction ignoredTarget ignoredData skippedEntity ignoredName startDTD ignoredName ignoredPublicId ignoredSystemId endDTD startEntity ignoredName endEntity ignoredName startCDATA endCDATA comment ignoredCh[] ignoredStart ignoredLength shouldSetContentLength return setOutputStream out _output_stream java null _locator java null setDocumentLocator locator startDocument endDocument startElement namespaceURI localName qName atts endElement namespaceURI localName qName characters ch[] start length ignorableWhitespace ch[] start length _open_elements java new Stack() _filesystem java new Filesystem() getElementProcessorFactory return doLocalPreEndDocument doLocalPostEndDocument getFilesystem return SAXExceptionFactory return message e SAXExceptionFactory return message org.xml.sax Locator Attributes SAXException Attribute _name _value getName return getValue return getValueAsInt return getValueAsShort return getValueAsLong return getValueAsBoolean return Attribute name value ElementProcessor initialize attributes[] parent filesystem acceptCharacters data[] acceptWhitespaceCharacters data[] endProcessing ElementProcessorFactory _element_processor_map createElementProcessor return name addElementProcessorProgenitor name progenitor lookupElementProcessorProgenitor return name doCreateElementProcessor return progenitor constructElementProcessor return progenitor createNewElementProcessorInstance return progenitor HSSFSerializer _element_processor_factory getMimeType return HSSFElementProcessorFactory ElementProcessorFactory.CannotCreateElementProcessorException includes extends java lang Object Integer int String Char short byte Byte Short boolean long double char Cloneable reflect Constructor Class Exception util Iterator Collection List Vector SortedSet Set Stack Map io InputStream OutputStream util FixedField readFromBytes return data[] readFromStream return stream writeToBytes return data[] toString return BitField getValue return holder getShortValue return holder getRawValue return holder getShortRawValue return holder isSet return holder isAllSet return holder setValue return holder value setShortValue return holder value clear return holder clearShort return holder clearByte return holder set return holder setShort return holder setByte return holder setBoolean return holder flag setShortBoolean return holder flag setByteBoolean return holder flag ByteField get return set value set value data[] HexDump EOL dump data[] offset stream index IntList add index value add return value addAll return c addAll return index c clear contains return o containsAll return c equals return o get return index hashCode return indexOf return o isEmpty return lastIndexOf return o remove return index removeValue return o removeAll return c retainAll return c set return index element size return toArray return[] toArray return[] a[] LittleEndian BufferUnderrunException getShort return data[] offset getShort return data[] getInt return data[] offset getInt return data[] getLong return data[] offset getDouble return data[] offset getDouble return data[] putShort data[] offset value putShort data[] value getLong return data[] putInt data[] offset value putInt data[] value putLong data[] offset value putLong data[] value readShort return stream readInt return stream readLong return stream readFromStream return [] stream size LittleEndianConsts SHORT_SIZE java 2 INT_SIZE java 4 LONG_SIZE java 8 DOUBLE_SIZE java 8 transient false LongField get return set value set value data[] ShortField get return set value set value data[] ShortList add index value add value addAll return c addAll return index c clear contains return o containsAll return c equals return o get return index hashCode return indexOf return o isEmpty return lastIndexof return o remove return index removeValue return o removeAll return c retainAll return c set return index element size return toArray return[] toArray return [] a[] IntegerField get return set value set value data[] StringUtil getFromUnicode return string[] offset len getFromUnicode return string[] realize realize realize realize create addProperty addChild create create create Filesystem HeaderBlock PropertyTable RootProperty create create create create getDocumentProperty getRoot create (multiple) create Filesystem Document DocumentBlock DocumentProperty PropertyTable RootProperty create (1 .. n) create getDocumentProperty addProperty getRoot addChild create setIndex (for each Property) createPropertyBlockArray create (enough so we have a multiple of 4 properties) create (1 for every 4 properties) preWrite (for each Property) setNextFile set _child_property setPreviousFile preWrite countBlocks allocateSpace setStartBlock createBlocks setBatBlocks setPropertyStart writeBlocks create setXBATStart createDocument writeFileSystem create Filesystem HeaderBlock PropertyTable RootProperty Filesystem Document DocumentProperty DocumentBlock PropertyTable RootProperty PropertyTable Property PropertyBlock PropertyBlock Property RootProperty Property Filesystem PropertyTable BATManaged BlockAllocationTable HeaderBlock BlockWritable (Client Application) Filesystem