001    /**
002     * Copyright 2005-2014 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.rice.krad.workflow.attribute;
017    
018    import org.kuali.rice.core.api.uif.RemotableAttributeError;
019    import org.kuali.rice.core.api.uif.RemotableAttributeField;
020    import org.kuali.rice.kew.api.document.DocumentWithContent;
021    import org.kuali.rice.kew.api.document.attribute.DocumentAttribute;
022    import org.kuali.rice.kew.api.document.attribute.WorkflowAttributeDefinition;
023    import org.kuali.rice.kew.api.document.search.DocumentSearchCriteria;
024    import org.kuali.rice.kew.api.document.search.DocumentSearchResult;
025    import org.kuali.rice.kew.api.extension.ExtensionDefinition;
026    import org.kuali.rice.kew.framework.document.attribute.SearchableAttribute;
027    import org.kuali.rice.kew.framework.document.search.DocumentSearchCustomizer;
028    import org.kuali.rice.kew.framework.document.search.DocumentSearchResultSetConfiguration;
029    import org.kuali.rice.kew.framework.document.search.DocumentSearchResultValues;
030    import org.kuali.rice.kew.framework.document.search.NullDocumentSearchCustomizer;
031    
032    import java.util.List;
033    
034    public class DataDictionaryDocumentSearchCustomizer implements SearchableAttribute, DocumentSearchCustomizer {
035    
036        private SearchableAttribute searchableAttribute;
037        private DocumentSearchCustomizer documentSearchCustomizer;
038    
039        public DataDictionaryDocumentSearchCustomizer() {
040            this(new DataDictionarySearchableAttribute(), new NullDocumentSearchCustomizer());
041        }
042    
043        public DataDictionaryDocumentSearchCustomizer(SearchableAttribute searchableAttribute,
044                DocumentSearchCustomizer documentSearchCustomizer) {
045            this.searchableAttribute = searchableAttribute;
046            this.documentSearchCustomizer = documentSearchCustomizer;
047        }
048    
049        @Override
050        public final String generateSearchContent(ExtensionDefinition extensionDefinition,
051                String documentTypeName,
052                WorkflowAttributeDefinition attributeDefinition) {
053            return getSearchableAttribute().generateSearchContent(extensionDefinition, documentTypeName,
054                    attributeDefinition);
055        }
056    
057        @Override
058        public final List<DocumentAttribute> extractDocumentAttributes(ExtensionDefinition extensionDefinition,
059                DocumentWithContent documentWithContent) {
060            return getSearchableAttribute().extractDocumentAttributes(extensionDefinition, documentWithContent);
061        }
062    
063        @Override
064        public final List<RemotableAttributeField> getSearchFields(ExtensionDefinition extensionDefinition,
065                String documentTypeName) {
066            return getSearchableAttribute().getSearchFields(extensionDefinition, documentTypeName);
067        }
068    
069        @Override
070        public final List<RemotableAttributeError> validateDocumentAttributeCriteria(ExtensionDefinition extensionDefinition,
071                DocumentSearchCriteria documentSearchCriteria) {
072            return getSearchableAttribute().validateDocumentAttributeCriteria(extensionDefinition, documentSearchCriteria);
073        }
074    
075        @Override
076        public final DocumentSearchCriteria customizeCriteria(DocumentSearchCriteria documentSearchCriteria) {
077            return getDocumentSearchCustomizer().customizeCriteria(documentSearchCriteria);
078        }
079    
080        @Override
081        public final DocumentSearchCriteria customizeClearCriteria(DocumentSearchCriteria documentSearchCriteria) {
082            return getDocumentSearchCustomizer().customizeClearCriteria(documentSearchCriteria);
083        }
084    
085        @Override
086        public final DocumentSearchResultValues customizeResults(DocumentSearchCriteria documentSearchCriteria,
087                List<DocumentSearchResult> defaultResults) {
088            return getDocumentSearchCustomizer().customizeResults(documentSearchCriteria, defaultResults);
089        }
090    
091        @Override
092        public DocumentSearchResultSetConfiguration customizeResultSetConfiguration(
093                DocumentSearchCriteria documentSearchCriteria) {
094            return getDocumentSearchCustomizer().customizeResultSetConfiguration(documentSearchCriteria);
095        }
096    
097        @Override
098        public final boolean isCustomizeCriteriaEnabled(String documentTypeName) {
099            return getDocumentSearchCustomizer().isCustomizeCriteriaEnabled(documentTypeName);
100        }
101    
102        @Override
103        public final boolean isCustomizeClearCriteriaEnabled(String documentTypeName) {
104            return getDocumentSearchCustomizer().isCustomizeClearCriteriaEnabled(documentTypeName);
105        }
106    
107        @Override
108        public final boolean isCustomizeResultsEnabled(String documentTypeName) {
109            return getDocumentSearchCustomizer().isCustomizeResultsEnabled(documentTypeName);
110        }
111    
112        @Override
113        public final boolean isCustomizeResultSetFieldsEnabled(String documentTypeName) {
114            return getDocumentSearchCustomizer().isCustomizeResultSetFieldsEnabled(documentTypeName);
115        }
116    
117            protected SearchableAttribute getSearchableAttribute() {
118            return this.searchableAttribute;
119            }
120    
121        public void setSearchableAttribute(SearchableAttribute searchableAttribute) {
122            this.searchableAttribute = searchableAttribute;
123        }
124    
125        protected DocumentSearchCustomizer getDocumentSearchCustomizer() {
126            return this.documentSearchCustomizer;
127        }
128    
129        public void setDocumentSearchCustomizer(DocumentSearchCustomizer documentSearchCustomizer) {
130            this.documentSearchCustomizer = documentSearchCustomizer;
131        }
132    
133    
134    }