001 /* 002 * Copyright 2012 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.ole.docstore.model.xmlpojo.metadata; 017 018 import org.apache.commons.io.IOUtils; 019 import org.kuali.ole.docstore.model.xstream.metadata.DocStoreMetaDataXmlProcessor; 020 import org.slf4j.Logger; 021 import org.slf4j.LoggerFactory; 022 023 import com.thoughtworks.xstream.annotations.XStreamAlias; 024 import com.thoughtworks.xstream.annotations.XStreamImplicit; 025 026 import java.util.List; 027 028 /** 029 * Class to DocumentsMetaData. 030 * 031 * @author Rajesh Chowdary K 032 * @created Jun 14, 2012 033 */ 034 @XStreamAlias("documentsMetaData") 035 public class DocumentsMetaData { 036 037 public static Logger logger = LoggerFactory.getLogger(DocumentsMetaData.class); 038 public static DocumentsMetaData docStoreMetaData = null; 039 040 @XStreamImplicit 041 @XStreamAlias("documentMetaData") 042 private List<DocumentMetaData> documentsMetaData = null; 043 044 public List<DocumentMetaData> getDocumentsMetaData() { 045 return documentsMetaData; 046 } 047 048 public void setDocumentsMetaData(List<DocumentMetaData> documentsMetaData) { 049 this.documentsMetaData = documentsMetaData; 050 } 051 052 public DocumentMetaData getDocumentMetaData(String category, String type, String format) { 053 if (documentsMetaData != null && documentsMetaData.size() > 0) 054 for (DocumentMetaData docMetaData : documentsMetaData) 055 if (docMetaData.getCategory().equals(category) && docMetaData.getType().equals(type) && docMetaData.getFormat().equals(format)) 056 return docMetaData; 057 return null; 058 } 059 060 public static DocumentsMetaData getInstance() { 061 if (docStoreMetaData == null) { 062 try { 063 DocStoreMetaDataXmlProcessor parser = new DocStoreMetaDataXmlProcessor(); 064 String xml = IOUtils.toString(DocumentsMetaData.class.getResourceAsStream("/org/kuali/ole/docstore/documentsMetaData.xml")); 065 docStoreMetaData = parser.fromXml(xml); 066 logger.info("Loaded Doc Store Meta Data Successfully."); 067 } catch (Exception e) { 068 logger.error("Failed in Loading Doc Store Meta Data : Cause : " + e.getMessage(), e); 069 } 070 } 071 return docStoreMetaData; 072 } 073 074 }