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

it.auties.protobuf.model.ProtobufType Maven / Gradle / Ivy

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

import java.util.Arrays;
import java.util.Map;
import java.util.Optional;

public enum ProtobufType {
    OBJECT(Object.class, Object.class, false),
    MAP(Map.class, Map.class, false),
    FLOAT(float.class, Float.class, true),
    DOUBLE(double.class, Double.class, true),
    BOOL(boolean.class, Boolean.class, true),
    STRING(String.class, String.class, false),
    BYTES(byte[].class, byte[].class, false),
    INT32(int.class, Integer.class, true),
    SINT32(int.class, Integer.class, true),
    UINT32(int.class, Integer.class, true),
    FIXED32(int.class, Integer.class, true),
    SFIXED32(int.class, Integer.class, true),
    INT64(long.class, Long.class, true),
    SINT64(long.class, Long.class, true),
    UINT64(long.class, Long.class, true),
    FIXED64(long.class, Long.class, true),
    SFIXED64(long.class, Long.class, true);

    private final Class primitiveType;

    private final Class wrappedType;

    private final boolean packable;

    ProtobufType(Class primitiveType, Class wrappedType, boolean packable) {
        this.primitiveType = primitiveType;
        this.wrappedType = wrappedType;
        this.packable = packable;
    }

    public static Optional of(String name) {
        return Arrays.stream(values())
                .filter(entry -> entry.name().equalsIgnoreCase(name))
                .findFirst();
    }

    public Class primitiveType() {
        return this.primitiveType;
    }

    public Class wrappedType() {
        return this.wrappedType;
    }

    public boolean isPackable() {
        return this.packable;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy