/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.github.geophile.erdo.apiimpl;
import com.github.geophile.erdo.AbstractKey;
import com.github.geophile.erdo.AbstractRecord;
import java.nio.ByteBuffer;
public class DeletedRecord extends AbstractRecord
{
// Transferrable interface
@Override
public final void readFrom(ByteBuffer buffer)
{
super.readFrom(buffer);
}
@Override
public final void writeTo(ByteBuffer buffer)
{
super.writeTo(buffer);
}
// AbstractRecord interface
@Override
public boolean deleted()
{
return true;
}
// DeletedRecord interface
@Override
public final AbstractRecord copy()
{
AbstractKey key = key();
assert key != null;
return new DeletedRecord(key.copy());
}
public DeletedRecord(AbstractKey key)
{
super(markDeleted(key.copy()));
}
private static <KEY extends AbstractKey> KEY markDeleted(KEY key)
{
key.deleted(true);
return key;
}
}