package io.vivarium.audit; import io.vivarium.core.CreatureBlueprint; import io.vivarium.core.World; import io.vivarium.serialization.SerializedParameter; import io.vivarium.serialization.VivariumObject; import lombok.EqualsAndHashCode; import lombok.ToString; @EqualsAndHashCode(callSuper = true) @ToString @SuppressWarnings("serial") // Default serialization is never used for a durable store public abstract class AuditRecord extends VivariumObject { @SerializedParameter protected CreatureBlueprint _trackedCreatureBlueprint; protected AuditRecord() { } protected AuditRecord(CreatureBlueprint creatureBlueprint) { _trackedCreatureBlueprint = creatureBlueprint; } /** * Inspect a world, recording any information required by the audit record * * @param inputs * @return outputsS */ public abstract void record(World world, int tick); @Override public void finalizeSerialization() { } }