/**
 * Copyright Pablo Abad 2017
 */
package org.pabad.dremel.parsing.data.internal;

public class AtomicField<ValueType> {

    public AtomicField(ValueType value, int repetitionLevel, int definitionLevel) {
        this.value = value;
        this.repetitionLevel = repetitionLevel;
        this.definitionLevel = definitionLevel;
    }

    public int getDefinitionLevel() {
        return definitionLevel;
    }

    public int getRepetitionLevel() {
        return repetitionLevel;
    }

    public ValueType getValue() {
        return value;
    }

    @Override
    public String toString() {
        return String.format("(%s, %d, %d)", value, repetitionLevel, definitionLevel);
    }

    private int definitionLevel;
    private int repetitionLevel;
    private ValueType value;

}

@@ -79,16 +79,86 @@
 ernal;%0A%0A
+import org.pabad.dremel.storage.ColumnKey;%0A%0Aimport java.util.Arrays;%0A%0A
 public c
@@ -855,10 +855,768 @@
 value;%0A%0A
+    @Override%0A    public boolean equals(Object object) %7B%0A        if (this == object)%0A            return true;%0A        if (object == null)%0A            return false;%0A        if (getClass() != object.getClass())%0A            return false;%0A        AtomicField%3CValueType%3E other = (AtomicField%3CValueType%3E) object;%0A        return (value != null ? value.equals(other.value) : other.value == null) &&%0A                definitionLevel == other.definitionLevel &&%0A                repetitionLevel == other.repetitionLevel;%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        int result = 17;%0A        result = 31 * result + value.hashCode();%0A        result = 31 * result + repetitionLevel;%0A        result = 31 * result + definitionLevel;%0A        return result;%0A    %7D%0A%0A
 %7D%0A

Fix equals for AtomicField