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

com.aerospike.dsl.model.cdt.map.MapPart Maven / Gradle / Ivy

The newest version!
package com.aerospike.dsl.model.cdt.map;

import com.aerospike.client.cdt.MapReturnType;
import com.aerospike.dsl.model.PathFunction;
import com.aerospike.dsl.model.cdt.CdtPart;
import lombok.Getter;

@Getter
public abstract class MapPart extends CdtPart {

    private final MapPartType mapPartType;

    protected MapPart(MapPartType mapPartType) {
        super(PartType.MAP_PART);
        this.mapPartType = mapPartType;
    }

    @Override
    public int getReturnType(PathFunction.ReturnParam returnParam) {
        return switch (returnParam) {
            case VALUE -> MapReturnType.VALUE;
            case KEY_VALUE -> MapReturnType.KEY_VALUE;
            case UNORDERED_MAP -> MapReturnType.UNORDERED_MAP;
            case ORDERED_MAP -> MapReturnType.ORDERED_MAP;
            case KEY -> MapReturnType.KEY;
            case INDEX -> MapReturnType.INDEX;
            case RANK -> MapReturnType.RANK;
            case COUNT, NONE -> MapReturnType.COUNT;
            case EXISTS -> MapReturnType.EXISTS;
            case REVERSE_INDEX -> MapReturnType.REVERSE_INDEX;
            case REVERSE_RANK -> MapReturnType.REVERSE_RANK;
        };
    }

    public enum MapPartType {
        MAP_TYPE_DESIGNATOR,
        KEY,
        INDEX,
        VALUE,
        RANK,
        KEY_RANGE,
        KEY_LIST,
        INDEX_RANGE,
        VALUE_LIST,
        VALUE_RANGE,
        RANK_RANGE,
        RANK_RANGE_RELATIVE,
        INDEX_RANGE_RELATIVE
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy