static function getObjectStructure()
 {
     global $configArray;
     //Load Libraries for lookup values
     $library = new Library();
     $library->orderBy('displayName');
     $library->find();
     $libraryList = array();
     $libraryList[-1] = "All Libraries";
     while ($library->fetch()) {
         $libraryList[$library->libraryId] = $library->displayName;
     }
     $structure = array('id' => array('property' => 'id', 'type' => 'hidden', 'label' => 'Id', 'primaryKey' => true, 'description' => 'The unique id of the e-pub file.'), 'item_type' => array('property' => 'item_type', 'type' => 'enum', 'label' => 'Type', 'values' => EContentItem::getValidItemTypes(), 'description' => 'The type of file being added', 'required' => true, 'storeDb' => true, 'storeSolr' => false), 'libraryId' => array('property' => 'libraryId', 'type' => 'enum', 'label' => 'For use by', 'values' => $libraryList, 'description' => 'The library system that has access to the link', 'required' => true, 'storeDb' => true, 'storeSolr' => false), 'link' => array('property' => 'link', 'type' => 'text', 'label' => 'External Link', 'size' => 100, 'maxLength' => 255, 'description' => 'A link to an external website or document.', 'required' => false, 'storeDb' => true, 'storeSolr' => false), 'filename' => array('property' => 'filename', 'type' => 'file', 'label' => 'Source File', 'path' => $configArray['EContent']['library'], 'description' => 'The source file for display or download within VuFind.', 'serverValidation' => 'validateEpub', 'required' => false, 'storeDb' => true, 'storeSolr' => false), 'folder' => array('property' => 'folder', 'type' => 'folder', 'size' => 100, 'maxLength' => 100, 'label' => 'Folder of MP3 Files (must exist already)', 'path' => $configArray['EContent']['library'], 'description' => 'The directory containing the MP3 files.  Must already exist on the econtent server.', 'serverValidation' => 'validateEpub', 'required' => false, 'storeDb' => true, 'storeSolr' => false), 'acsId' => array('property' => 'acsId', 'type' => 'hidden', 'label' => 'ACS ID', 'description' => 'The ID of the title within the Adobe Content Server.', 'storeDb' => true, 'storeSolr' => false), 'recordId' => array('property' => 'recordId', 'type' => 'hidden', 'label' => 'Record ID', 'description' => 'The ID of the record this item is attached to.', 'storeDb' => true, 'storeSolr' => false), 'notes' => array('property' => 'notes', 'type' => 'text', 'label' => 'Notes', 'description' => 'Notes to the patron to be displayed in the catalog.', 'storeDb' => true, 'storeSolr' => false), 'reviewStatus' => array('property' => 'reviewStatus', 'type' => 'enum', 'values' => array('Not Reviewed' => 'Not Reviewed', 'Approved' => 'Approved', 'Rejected' => 'Rejected'), 'label' => 'Review Status', 'description' => 'The status of the review of the item.', 'storeDb' => true, 'storeSolr' => false, 'default' => 'Not Reviewed'), 'reviewNotes' => array('property' => 'reviewNotes', 'type' => 'textarea', 'label' => 'Review Notes', 'description' => 'Notes relating to the reivew.', 'storeDb' => true, 'storeSolr' => false), 'size' => array('property' => 'size', 'type' => 'label', 'label' => 'Size', 'description' => 'The size of the item in bytes or 0 if not known.', 'storeDb' => false, 'storeSolr' => false), 'externalFormat' => array('property' => 'externalFormat', 'type' => 'label', 'label' => 'External Format', 'description' => 'The textual format for external items for use with OverDrive.', 'storeDb' => false, 'storeSolr' => false), 'externalFormatId' => array('property' => 'externalFormatId', 'type' => 'hidden', 'label' => 'External Format Id', 'description' => 'The internal format for external items for use with OverDrive.', 'storeDb' => false, 'storeSolr' => false), 'externalFormatNumeric' => array('property' => 'externalFormatNumeric', 'type' => 'hidden', 'label' => 'External Format Id', 'description' => 'The numeric format for external items for use with OverDrive.', 'storeDb' => false, 'storeSolr' => false), 'identifier' => array('property' => 'identifier', 'type' => 'label', 'label' => 'Identifier (ISBN/ASIN)', 'description' => 'The Identifier (ISBN/ASIN) for the item if we can split from record.', 'storeDb' => false, 'storeSolr' => false), 'sample' => array('property' => 'sample', 'type' => 'label', 'label' => 'Sample', 'description' => 'A url to get a sample of the title.', 'storeDb' => false, 'storeSolr' => false));
     foreach ($structure as $fieldName => $field) {
         $field['propertyOld'] = $field['property'] . 'Old';
         $structure[$fieldName] = $field;
     }
     return $structure;
 }