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

it.auties.protobuf.annotation.ProtobufProperty Maven / Gradle / Ivy

The newest version!
package it.auties.protobuf.annotation;

import it.auties.protobuf.builtin.*;
import it.auties.protobuf.model.ProtobufType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ProtobufProperty {
    int index();

    ProtobufType type();

    ProtobufType mapKeyType() default ProtobufType.UNKNOWN;

    ProtobufType mapValueType() default ProtobufType.UNKNOWN;

    Class[] mixins() default {
            ProtobufAtomicMixin.class,
            ProtobufOptionalMixin.class,
            ProtobufUUIDMixin.class,
            ProtobufURIMixin.class,
            ProtobufRepeatedMixin.class,
            ProtobufMapMixin.class,
            ProtobufFutureMixin.class,
            ProtobufLazyMixin.class
    };

    boolean required() default false;

    boolean ignored() default false;

    boolean packed() default false;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy