001 /**
002 * Copyright 2005-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.rice.krad.datadictionary.validation.result;
017
018 import org.kuali.rice.krad.datadictionary.validation.AttributeValueReader;
019 import org.kuali.rice.krad.datadictionary.validation.capability.Constrainable;
020 import org.kuali.rice.krad.datadictionary.validation.constraint.Constraint;
021
022 import java.util.Arrays;
023 import java.util.Collections;
024 import java.util.List;
025
026 /**
027 *
028 * @author Kuali Rice Team (rice.collab@kuali.org)
029 */
030 public class ProcessorResult {
031
032 private final transient List<Constraint> constraints;
033 private final transient Constrainable definition;
034 private final transient AttributeValueReader attributeValueReader;
035
036 private final List<ConstraintValidationResult> constraintValidationResults;
037
038 public ProcessorResult(ConstraintValidationResult constraintValidationResult) {
039 this(constraintValidationResult, null, null);
040 }
041
042 public ProcessorResult(ConstraintValidationResult constraintValidationResult, Constrainable definition, AttributeValueReader attributeValueReader, Constraint... constraints) {
043 this.constraintValidationResults = Collections.singletonList(constraintValidationResult);
044 this.definition = definition;
045 this.attributeValueReader = attributeValueReader;
046 this.constraints = Arrays.asList(constraints);
047 }
048
049 public ProcessorResult(ConstraintValidationResult constraintValidationResult, Constrainable definition, AttributeValueReader attributeValueReader, List<Constraint> constraints) {
050 this.constraintValidationResults = Collections.singletonList(constraintValidationResult);
051 this.definition = definition;
052 this.attributeValueReader = attributeValueReader;
053 this.constraints = constraints;
054 }
055
056 public ProcessorResult(List<ConstraintValidationResult> constraintValidationResults) {
057 this(constraintValidationResults, null, null);
058 }
059
060 public ProcessorResult(List<ConstraintValidationResult> constraintValidationResults, Constrainable definition, AttributeValueReader attributeValueReader, Constraint... constraints) {
061 this.constraintValidationResults = constraintValidationResults;
062 this.definition = definition;
063 this.attributeValueReader = attributeValueReader;
064 this.constraints = Arrays.asList(constraints);
065 }
066
067 public boolean isSingleConstraintResult() {
068 return this.constraintValidationResults.size() == 1;
069 }
070
071 public boolean isDefinitionProvided() {
072 return definition != null;
073 }
074
075 public boolean isAttributeValueReaderProvided() {
076 return attributeValueReader != null;
077 }
078
079 public ConstraintValidationResult getFirstConstraintValidationResult() {
080 return this.constraintValidationResults.isEmpty() ? null : this.constraintValidationResults.get(0);
081 }
082
083 /**
084 * @return the constraintValidationResults
085 */
086 public List<ConstraintValidationResult> getConstraintValidationResults() {
087 return this.constraintValidationResults;
088 }
089
090 /**
091 * @return the definition
092 */
093 public Constrainable getDefinition() {
094 return this.definition;
095 }
096
097 /**
098 * @return the attributeValueReader
099 */
100 public AttributeValueReader getAttributeValueReader() {
101 return this.attributeValueReader;
102 }
103
104 /**
105 * @return the constraints
106 */
107 public List<Constraint> getConstraints() {
108 return this.constraints;
109 }
110
111 }