1 /* 2 * Copyright 2023 Adrian Herscu 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package dev.aherscu.qa.jgiven.commons.steps; 17 18 import javax.annotation.concurrent.*; 19 20 import dev.aherscu.qa.jgiven.commons.model.*; 21 import dev.aherscu.qa.jgiven.commons.utils.*; 22 import lombok.extern.slf4j.*; 23 24 /** 25 * Generic fixtures. 26 * 27 * @param <SELF> 28 * the type of the subclass 29 * 30 * @param <T> 31 * type of scenario 32 * 33 * @author aherscu 34 */ 35 @ThreadSafe 36 @Slf4j 37 @SuppressWarnings("boxing") 38 public class GenericFixtures<T extends AnyScenarioType, SELF extends GenericFixtures<T, SELF>> 39 extends StageEx<SELF> 40 41 implements ScenarioType<T> { 42 43 /** 44 * Logs the construction of this stage. 45 */ 46 public GenericFixtures() { 47 log.trace("given stage {} constructed", this); //$NON-NLS-1$ 48 } 49 50 /** 51 * Does nothing -- just initializes the JGiven infrastructure. 52 * 53 * @return {@link #self()} 54 */ 55 public SELF nothing() { 56 return self(); 57 } 58 }