FileNet annotations store data as one long encoded string of hexadecimals. To easily wrap our minds around parsing this data, we have been dealing with it as a String. This allows us to use indexing and substrings. There is nothing functionally wrong with this, but a performance improvement could be achieved by parsing it as an unsigned integer and by packing bytes. Here is a list of examples/resources on how to do this:
OC Example of packing bytes: TSGTextStripper#combineExtensionBytes
OA Example of extracting those bytes: abstractWordmapModule.js#unpackageWordExtension
FileNet annotations store data as one long encoded string of hexadecimals. To easily wrap our minds around parsing this data, we have been dealing with it as a String. This allows us to use indexing and substrings. There is nothing functionally wrong with this, but a performance improvement could be achieved by parsing it as an unsigned integer and by packing bytes. Here is a list of examples/resources on how to do this:
OC Example of packing bytes:
TSGTextStripper#combineExtensionBytes
OA Example of extracting those bytes:
abstractWordmapModule.js#unpackageWordExtension
Wiki article explaining what is going on in these examples: https://github.com/tsgrp/OpenAnnotate/wiki/WordMaps#word-map-extension
The method that would receive this enhancement is
FilenetAnnotationParserImpl#parseDataFieldsFromStream