/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.apache.cassandra.spark.reader;

import java.math.BigInteger;
import java.nio.ByteBuffer;

import org.apache.cassandra.spark.utils.ByteBufferUtils;

public class IndexEntry
{
    public final ByteBuffer partitionKey;
    public final BigInteger token;
    public final long uncompressed;
    public final long compressed;

    public IndexEntry(ByteBuffer partitionKey,
                      BigInteger token,
                      long uncompressed,
                      long compressed)
    {
        this.partitionKey = partitionKey;
        this.token = token;
        this.uncompressed = uncompressed;
        this.compressed = compressed;
    }

    public ByteBuffer getPartitionKey()
    {
        return this.partitionKey;
    }

    public BigInteger getToken()
    {
        return this.token;
    }

    public long getCompressed()
    {
        return compressed;
    }

    public long getUncompressed()
    {
        return uncompressed;
    }

    @Override
    public String toString()
    {
        return ByteBufferUtils.toHexString(this.partitionKey)
               + ": " + uncompressed + " uncompressed bytes, " + compressed + " compressed bytes";
    }
}
