001    /*
002     * Copyright 2005-2008 The Kuali Foundation
003     *
004     *
005     * Licensed under the Educational Community License, Version 2.0 (the "License");
006     * you may not use this file except in compliance with the License.
007     * You may obtain a copy of the License at
008     *
009     * http://www.opensource.org/licenses/ecl2.php
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package mocks;
018    
019    import java.io.InputStream;
020    import java.util.Collection;
021    import java.util.HashMap;
022    import java.util.List;
023    import java.util.Map;
024    
025    import org.jdom.Element;
026    import org.kuali.rice.kew.doctype.bo.DocumentType;
027    import org.kuali.rice.kew.doctype.service.DocumentTypeService;
028    import org.kuali.rice.kew.dto.DocumentTypeDTO;
029    import org.kuali.rice.kew.export.ExportDataSet;
030    import org.kuali.rice.kew.postprocessor.PostProcessor;
031    import org.kuali.rice.kew.rule.bo.RuleAttribute;
032    
033    
034    public class MockDocumentTypeServiceImpl implements DocumentTypeService {
035    
036        public DocumentType setDocumentTypeVersion(DocumentType documentType, boolean currentInd) {
037            return null;
038        }
039        public DocumentType getMostRecentDocType(String docTypeName) {
040            return null;
041        }
042        public boolean isLockedForRouting(DocumentType documentType) {
043            return false;
044        }
045        private Map documentsById = new HashMap();
046        private Map documentsByName = new HashMap();
047        private Map postProcessors = new HashMap();
048    
049        public void makeCurrent(List documentTypes) {
050            throw new UnsupportedOperationException("not yet implmeneted");
051        }
052    
053        public void addDocumentType(DocumentType documentType, PostProcessor postProcessor) {
054            documentsById.put(documentType.getDocumentTypeId(), documentType);
055            documentsByName.put(documentType.getName(), documentType);
056            postProcessors.put(documentType.getDocumentTypeId(), postProcessor);
057        }
058    
059        public DocumentType findByDocumentId(Long documentId) {
060                    throw new UnsupportedOperationException("not yet implemented");
061            }
062    
063        public Integer getMaxVersionNumber(String name){
064            return new Integer(0);
065        }
066        public DocumentType findById(Long documentTypeId) {
067            return (DocumentType) documentsById.get(documentTypeId);
068        }
069    
070        public DocumentType findByName(String name) {
071            return (DocumentType) documentsByName.get(name);
072        }
073    
074        public DocumentType findByNameCaseInsensitive(String name) {
075            return (DocumentType) documentsByName.get(name);
076        }
077    
078        public void versionAndSave(DocumentType documentType) {
079            addDocumentType(documentType, new MockPostProcessor(true));
080        }
081    
082        public PostProcessor getPostProcessor(Long documentTypeId) {
083            return (PostProcessor) postProcessors.get(documentTypeId);
084        }
085    
086        public Collection findRouteLevels(Long documentTypeId) {
087            return (Collection) ((DocumentType)documentsById.get(documentTypeId)).getRouteLevels();
088        }
089    
090        public Collection find(DocumentType documentType, String docGroupName, boolean climbHiearchy) {
091            throw new UnsupportedOperationException("not implemented in MockDocumentTypeServiceImpl");
092        }
093    
094        public void delete(DocumentType documentType) {
095            documentsById.remove(documentType.getDocumentTypeId());
096            documentsByName.remove(documentType.getName());
097        }
098    
099        public List findByRouteHeaderId(Long routeHeaderId) {
100            throw new UnsupportedOperationException("not implemented in MockDocumentTypeServiceImpl");
101        }
102        public void makeCurrent(Long routeHeaderId) {
103            throw new UnsupportedOperationException("not implemented in MockDocumentTypeServiceImpl");
104        }
105    
106        public List findAllCurrentRootDocuments() {
107            return null;
108        }
109        public DocumentType getMostRecentDocType(Long documentTypeId) {
110            return null;
111        }
112        /* (non-Javadoc)
113         * @see org.kuali.rice.kew.doctype.DocumentTypeService#getDocumentTypeVO(java.lang.Long)
114         */
115        public DocumentTypeDTO getDocumentTypeVO(Long documentTypeId) {
116            return null;
117        }
118        /* (non-Javadoc)
119         * @see org.kuali.rice.kew.doctype.DocumentTypeService#getDocumentTypeVO(java.lang.String)
120         */
121        public DocumentTypeDTO getDocumentTypeVO(String documentTypeName) {
122            return null;
123        }
124        /* (non-Javadoc)
125         * @see org.kuali.rice.kew.doctype.DocumentTypeService#getRootDocumentType(org.kuali.rice.kew.doctype.DocumentType)
126         */
127        public DocumentType findRootDocumentType(DocumentType docType) {
128            return null;
129        }
130        public void loadXml(InputStream inputStream, String principalId) {
131            throw new UnsupportedOperationException("Mock document type service can't load xml");
132        }
133        public Element export(ExportDataSet dataSet) {
134            return null;
135        }
136        public List findAllCurrent() {
137            return null;
138        }
139            public List getChildDocumentTypes(Long documentTypeId) {
140                    return null;
141            }
142            public DocumentType findByNameIgnoreCache(Long documentTypeId) {
143                    return null;
144            }
145            public void save(DocumentType documentType) {
146    
147            }
148        public void save(DocumentType documentType, boolean flushCache) {
149    
150        }
151        public void flushCache() {
152    
153        }
154            public void clearCacheForAttributeUpdate(RuleAttribute ruleAttribute) {
155    
156            }
157            public Integer getDocumentTypeCount() {
158                    return null;
159            }
160        public List<DocumentType> findPreviousInstances(String documentTypeName) {
161            return null;
162        }
163    
164    }