1 17 package org.alfresco.repo.action.evaluator; 18 19 import java.util.List ; 20 21 import org.alfresco.model.ContentModel; 22 import org.alfresco.repo.action.evaluator.compare.ContentPropertyName; 23 import org.alfresco.service.cmr.action.ActionCondition; 24 import org.alfresco.service.cmr.action.ActionServiceException; 25 import org.alfresco.service.cmr.action.ParameterDefinition; 26 import org.alfresco.service.cmr.dictionary.DataTypeDefinition; 27 import org.alfresco.service.cmr.dictionary.PropertyDefinition; 28 import org.alfresco.service.cmr.repository.NodeRef; 29 import org.alfresco.service.namespace.QName; 30 31 36 public class CompareMimeTypeEvaluator extends ComparePropertyValueEvaluator 37 { 38 41 public static final String NAME = "compare-mime-type"; 42 43 46 private static final String ERRID_NOT_A_CONTENT_TYPE = "compare_mime_type_evaluator.not_a_content_type"; 47 private static final String ERRID_NO_PROPERTY_DEFINTION_FOUND = "compare_mime_type_evaluator.no_property_definition_found"; 48 49 52 public boolean evaluateImpl(ActionCondition actionCondition, NodeRef actionedUponNodeRef) 53 { 54 QName propertyQName = (QName)actionCondition.getParameterValue(ComparePropertyValueEvaluator.PARAM_PROPERTY); 55 if (propertyQName == null) 56 { 57 actionCondition.setParameterValue(ComparePropertyValueEvaluator.PARAM_PROPERTY, ContentModel.PROP_CONTENT); 59 } 60 else 61 { 62 QName propertyTypeQName = null; 64 PropertyDefinition propertyDefintion = this.dictionaryService.getProperty(propertyQName); 65 if (propertyDefintion != null) 66 { 67 propertyTypeQName = propertyDefintion.getDataType().getName(); 68 if (DataTypeDefinition.CONTENT.equals(propertyTypeQName) == false) 69 { 70 throw new ActionServiceException(ERRID_NOT_A_CONTENT_TYPE); 71 } 72 } 73 else 74 { 75 throw new ActionServiceException(ERRID_NO_PROPERTY_DEFINTION_FOUND); 76 } 77 } 78 79 actionCondition.setParameterValue(ComparePropertyValueEvaluator.PARAM_CONTENT_PROPERTY, ContentPropertyName.MIME_TYPE.toString()); 81 82 return super.evaluateImpl(actionCondition, actionedUponNodeRef); 83 } 84 85 88 @Override 89 protected void addParameterDefintions(List <ParameterDefinition> paramList) 90 { 91 super.addParameterDefintions(paramList); 92 } 93 } 94 | Popular Tags |