package com.l7tech.objectmodel.migration;

import com.l7tech.objectmodel.ExternalEntityHeader;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Migration {
   boolean dependency() default true;

   MigrationMappingSelection mapName() default MigrationMappingSelection.OPTIONAL;

   MigrationMappingSelection mapValue() default MigrationMappingSelection.NONE;

   ExternalEntityHeader.ValueType valueType() default ExternalEntityHeader.ValueType.TEXT;

   PropertyResolver.Type resolver() default PropertyResolver.Type.DEFAULT;

   boolean export() default true;
}
