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

com.cosmian.jna.findex.serde.Tuple Maven / Gradle / Ivy

package com.cosmian.jna.findex.serde;

import java.util.Map;
import java.util.Objects;

/**
 * A tuple holds a pair of {@link Leb128Serializable}. A tuple is also a {@link java.util.Map.Entry} and can be used in
 * methods taking it as argument (LEFT is the KEY, RIGHT is the VALUE).
 */
public class Tuple
    implements Map.Entry {
    protected LEFT left;

    protected RIGHT right;

    public Tuple(LEFT left, RIGHT right) {
        this.left = left;
        this.right = right;
    }

    public LEFT getLeft() {
        return left;
    }

    public RIGHT getRight() {
        return right;
    }

    @Override
    public String toString() {
        return "(" + this.left.toString() + ", " + this.right.toString() + ")";
    }

    @Override
    public int hashCode() {
        return right.hashCode() ^ left.hashCode();
    }

    @Override
    public boolean equals(Object o) {
        if (o == this)
            return true;
        if (!(o instanceof Tuple)) {
            return false;
        }
        Tuple tuple = (Tuple) o;
        return Objects.equals(left, tuple.left) && Objects.equals(right, tuple.right);
    }

    @Override
    public LEFT getKey() {
        return this.left;
    }

    @Override
    public RIGHT getValue() {
        return this.right;
    }

    @Override
    public RIGHT setValue(RIGHT value) {
        this.right = value;
        return right;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy