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 }