/** * Copyright 2014 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.component.annotation; import static java.lang.annotation.ElementType.TYPE; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import com.ottogroup.bi.spqr.pipeline.component.MicroPipelineComponentType; import com.ottogroup.bi.spqr.pipeline.component.emitter.Emitter; import com.ottogroup.bi.spqr.pipeline.component.operator.Operator; import com.ottogroup.bi.spqr.pipeline.component.source.Source; /** * Used to mark an implementation to be an SPQR {@link MicroPipelineComponentType component} ({@link Source}, {@link Operator} or {@link Emitter}) * @author mnxfst * @since Oct 29, 2014 * */ @Documented @Target ( { TYPE } ) @Retention ( value = RetentionPolicy.RUNTIME ) public @interface SPQRComponent { MicroPipelineComponentType type(); String name(); String version(); String description(); }