1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 package org.apache.commons.pipeline.validation; 19 20 import org.apache.commons.pipeline.Stage; 21 22 /** 23 * This class is used to store a collection of information about a particular 24 * validation failure. 25 * 26 */ 27 public class ValidationFailure { 28 /** 29 * Enumeration of possible causes of validation failure 30 */ 31 public enum Type { 32 /** 33 * Indicates that a stage appears to be unable to consume the output of the previous stage 34 */ 35 STAGE_CONNECT, 36 /** 37 * Indicates that a branch could not consume the output (type mismatch) of pipeline 38 * stages feeding the branch. 39 */ 40 BRANCH_CONNECT, 41 /** 42 * Indicates that a branch to consume the branch output of a stage could not be found. 43 */ 44 BRANCH_NOT_FOUND, 45 /** 46 * Other validation error - see detail message. 47 */ 48 OTHER 49 }; 50 51 private Type type; 52 private String message; 53 private Stage upstream; 54 private Stage downstream; 55 56 /** 57 * Creates a new instance of ValidationError 58 * @param type The type of problem encountered 59 * @param message A message with more detailed information about the problem 60 * @param upstream A reference to the upstream stage 61 * @param downstream A reference to a downstream stage 62 */ 63 public ValidationFailure(Type type, String message, Stage upstream, Stage downstream) { 64 this.type = type; 65 this.message = message; 66 this.upstream = upstream; 67 this.downstream = downstream; 68 } 69 70 /** 71 * Type identifying what sort of problem was encountered 72 * @return the type of problem encountered 73 */ 74 public Type getType() { 75 return this.type; 76 } 77 78 /** 79 * Returns the descriptive message about the error 80 * @return message describing the error 81 */ 82 public String getMessage() { 83 return this.message; 84 } 85 86 /** 87 * The stage upstream of the connection that could not be validated 88 * @return reference to the upstream Stage 89 */ 90 public Stage getUpstreamStage() { 91 return this.upstream; 92 } 93 94 /** 95 * The stage downstream of the connection that could not be validated 96 * @return reference to the downstream Stage 97 */ 98 public Stage getDownstreamStage() { 99 return this.downstream; 100 } 101 }