package io.gsonfire.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @autor: julio
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ExposeMethodResult {
enum ConflictResolutionStrategy{
/**
* Will overwrite the existing field on the {@link com.google.gson.JsonObject} that conflicts with the field
* name being written
*/
OVERWRITE,
/**
* Will skip writing to the {@link com.google.gson.JsonObject} if it contains a field with the name being used
* by this method result
*/
SKIP
}
/**
* @return The name of the field to store the serialized result of the method
*/
String value();
/**
* @return Strategy to be used when there is conflict between the name of a field on the Java Object vs the field name
* where the result of the method will be serialized
*/
ConflictResolutionStrategy conflictResolution() default ConflictResolutionStrategy.OVERWRITE;
}