
io.sphere.sdk.annotations.HasUpdateAction Maven / Gradle / Ivy
package io.sphere.sdk.annotations;
import java.lang.annotation.*;
@Repeatable(HasCustomUpdateActions.class)
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface HasUpdateAction {
/**
* Used to specify the action name
* @return the action name
*/
String value() default "";
String className() default "";
PropertySpec[] fields() default {};
/**
* This adds a {code @include.example exampleBaseClass#updateActionTestName()} javadoc tag
* to all generated update actions.
*
* Where {@code updateActionTestName} is derived by un-capitalizing the update action name
* (e.g. for a {@code SetKey} update action the updateActionTestName is {@code setKey}.
*
* This follows our convention to have integration tests for all of our update actions.
*
* @return the example base class name
*/
String exampleBaseClass() default "";
FactoryMethod[] factoryMethods() default {};
CopyFactoryMethod[] copyFactoryMethods() default {};
Class[] superInterfaces() default {};
boolean makeAbstract() default false;
/**
* Specifies whether there should be a default factory method generated.
* a default factory method accepts all required parameters as argument.
*
* @return true if you need to generate a default factory, false otherwise.
*/
boolean generateDefaultFactory() default true;
}