/*
* Copyright (c) 2006-2011 Rogério Liesenfeld
* This file is subject to the terms of the MIT license (see LICENSE.txt).
*/
package mockit.coverage.data.dataItems;
import java.io.*;
public abstract class FieldData implements Serializable
{
private static final long serialVersionUID = 8565599590976858508L;
int readCount;
int writeCount;
Boolean covered;
private void writeObject(ObjectOutputStream out) throws IOException
{
isCovered();
out.defaultWriteObject();
}
public final int getReadCount()
{
return readCount;
}
public final int getWriteCount()
{
return writeCount;
}
public final boolean isCovered()
{
if (covered == null) {
covered = false;
markAsCoveredIfNoUnreadValuesAreLeft();
}
return covered;
}
abstract void markAsCoveredIfNoUnreadValuesAreLeft();
final void addCountsFromPreviousTestRun(FieldData previousInfo)
{
readCount += previousInfo.readCount;
writeCount += previousInfo.writeCount;
covered = isCovered() || previousInfo.covered;
}
}