class AtomicValueEvent {

    @Override
    public boolean equals(Object o) {
        if (!(o instanceof AtomicValueEvent)) {
            return false;
        }

        AtomicValueEvent that = (AtomicValueEvent) o;
        return Objects.equals(this.name, that.name) &&
                Objects.equals(this.newValue, that.newValue) &&
                Objects.equals(this.oldValue, that.oldValue);
    }

    public  AtomicValueEvent(String name, V newValue, V oldValue);

}