001/* 002 * Copyright 2023 the original author or authors. 003 * <p> 004 * Licensed under the Apache 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 * <p> 008 * https://www.apache.org/licenses/LICENSE-2.0 009 * <p> 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 */ 016package de.cuioss.test.valueobjects.api.generator; 017 018import static java.lang.annotation.ElementType.TYPE; 019import static java.lang.annotation.RetentionPolicy.RUNTIME; 020 021import java.lang.annotation.Repeatable; 022import java.lang.annotation.Retention; 023import java.lang.annotation.Target; 024 025import de.cuioss.test.generator.TypedGenerator; 026 027/** 028 * Used for adding an additional {@link TypedGenerator} for the actual 029 * test-class. This can be done defining one or more {@link TypedGenerator} as 030 * class, see {@link #value()}. 031 * 032 * @author Oliver Wolff 033 */ 034@Retention(RUNTIME) 035@Target(TYPE) 036@Repeatable(PropertyGenerators.class) 037public @interface PropertyGenerator { 038 039 /** 040 * @return one or an array of {@link TypedGenerator}. This is the standard usage 041 * for this annotation. 042 */ 043 @SuppressWarnings("java:S1452") 044 Class<? extends TypedGenerator<?>>[] value() default {}; 045 046}