All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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