com.github.egatlovs.variablemanager.annotations.ObjectValue Maven / Gradle / Ivy
package com.github.egatlovs.variablemanager.annotations;
import org.camunda.bpm.engine.variable.Variables.SerializationDataFormats;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* ObjectValue
*
* You can annotate fields and classes with {@code @ObjectValue} to manipulate the processing behaviour for the annotated object.
* The manipulation depends on what attributes are set.
* 1. If storeFields is set to true:
* The fields will be stored independent of the object itself.
* 2. If serializationFormat is set or a custom serializationDataFormat is set:
* The annotated Field or Object will be written and serialized as if you would use the Camunda TypedValue API.
* 3. If no attribute is set or no ObjectValue-Annotation is present:
* Everything will be JAVA-serialized. Just as if you would set SerializationDataFormat.JAVA.
*
* Supported Fields are:
*
* - serializationDataFormat default JAVA
* - storeFields default false
* - customSerializationDataFormat default ""
*
*
* @author egatlovs
*/
@Retention(RUNTIME)
@Target({TYPE, FIELD})
public @interface ObjectValue {
boolean storeFields() default false;
SerializationDataFormats serializationFormat() default SerializationDataFormats.JAVA;
String customSerializationFormat() default "";
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy