/**
* Copyright 2015 Otto (GmbH & Co KG)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.ottogroup.bi.spqr.pipeline;
import java.io.Serializable;
/**
* Result states returned by {@link MicroPipelineValidator#validate(MicroPipelineConfiguration)} on config validation
* @author mnxfst
* @since Apr 13, 2015
*/
public enum MicroPipelineValidationResult implements Serializable {
// general results
OK, // configuration is valid (no errors found that could be inferred from configuration
MISSING_CONFIGURATION, // configuration object is missing at all
MISSING_COMPONENTS, // configuration misses component configuration which renders the queue useless
MISSING_QUEUES, // configuration misses queue configuration and thus communication between components is impossible
PIPELINE_INITIALIZATION_FAILED, // initialization of the overall pipeline failed for any reason (see optional text message in response if provided)
QUEUE_INITIALIZATION_FAILED, // initialization of a configured queue failed for any reason (see optional text message in response if provided)
COMPONENT_INITIALIZATION_FAILED, // initialization of a configured component failed for any reason (see optional text message in response if provided)
TECHNICAL_ERROR, // general error ... no categorization possible
NON_UNIQUE_PIPELINE_ID, //
MISSING_PIPELINE_ID, // pipeline identifier missing - mostly generated ... thus: generation error
// component specific results
MISSING_COMPONENT_CONFIGURATION, // provided component configuration is empty
MISSING_COMPONENT_ID, // any of the provided component configurations misses the required identifier
NON_UNIQUE_COMPONENT_ID, // any of the provided component configurations shows a non-unique (value is pipeline bounded) identifier
MISSING_COMPONENT_TYPE, // any of the provided component configurations misses the required type
MISSING_COMPONENT_NAME, // any of the provided component configurations misses the required name
MISSING_COMPONENT_VERSION, // any of the provided component configurations misses the required version
UNKNOWN_COMPONENT_NAME, // any of the provided component configurations references an unknown component name
UNKNOWN_COMPONENT_VERSION, // any of the provided component configurations references an unknown component version
MISSING_SOURCE_QUEUE, // any of the operator or emitter components shows no source queue
UNKNOWN_SOURCE_QUEUE, // any of the operator or emitter components reference an unknown source queue
NOT_PERMITTED_SOURCE_QUEUE_REF, // any of the source components reference a source queue which is not permitted for that type
MISSING_DESTINATION_QUEUE, // any of the source or operator components shows no destination queue
UNKNOWN_DESTINATION_QUEUE, // any of the source or operator components reference an unknown destination queue
NOT_PERMITTED_DESTINATION_QUEUE_REF, // any of the emitter components reference a destination queue which is not permitted for that type
// queue specific results
MISSING_QUEUE_CONFIGURATION, // provided queue configuration is empty
MISSING_QUEUE_ID, // any of the provided queue configurations misses the required identifier
NON_UNIQUE_QUEUE_ID // any of the provided queue configurations shows a non-unique (value is pipeline bounded) identifier
}