All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.javers.core.diff.changetype.NewObject Maven / Gradle / Ivy

There is a newer version: 7.6.1
Show newest version
package org.javers.core.diff.changetype;

import org.javers.common.string.PrettyValuePrinter;
import org.javers.common.validation.Validate;
import org.javers.core.commit.CommitMetadata;
import org.javers.core.diff.Change;
import org.javers.core.metamodel.object.GlobalId;

import java.util.Optional;

/**
 * New object added to a graph
 *
 * @author bartosz walacik
 */
public final class NewObject extends Change {

    NewObject(GlobalId newId, Optional newCdo) {
        this(newId, newCdo, Optional.empty());
    }

    public NewObject(GlobalId newId, Optional newCdo, Optional commitMetadata) {
        super(newId, newCdo, commitMetadata);
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj instanceof NewObject) {
            NewObject that = (NewObject) obj;
            return super.equals(that);
        }
        return false;
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public String prettyPrint(PrettyValuePrinter valuePrinter) {
        Validate.argumentIsNotNull(valuePrinter);
        return "new object: " + getAffectedGlobalId().value();
    }
}