62 lines
1.7 KiB
Java
62 lines
1.7 KiB
Java
package ru.dragonestia.picker.model;
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.Nullable;
|
|
import ru.dragonestia.picker.api.model.node.INode;
|
|
import ru.dragonestia.picker.api.model.node.NodeDetails;
|
|
import ru.dragonestia.picker.api.model.node.PickingMethod;
|
|
import ru.dragonestia.picker.api.model.node.ResponseNode;
|
|
import ru.dragonestia.picker.api.repository.type.NodeIdentifier;
|
|
|
|
public class Node implements INode {
|
|
|
|
private final String identifier;
|
|
private final PickingMethod pickingMethod;
|
|
private final boolean persist;
|
|
|
|
public Node(@NotNull NodeIdentifier identifier, @NotNull PickingMethod pickingMethod, boolean persist) {
|
|
this.identifier = identifier.getValue();
|
|
this.pickingMethod = pickingMethod;
|
|
this.persist = persist;
|
|
}
|
|
|
|
@Override
|
|
public @NotNull String getIdentifier() {
|
|
return identifier;
|
|
}
|
|
|
|
@Override
|
|
public @NotNull PickingMethod getPickingMethod() {
|
|
return pickingMethod;
|
|
}
|
|
|
|
@Override
|
|
public @NotNull Boolean isPersist() {
|
|
return persist;
|
|
}
|
|
|
|
@Override
|
|
public @Nullable String getDetail(@NotNull NodeDetails detail) {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
public @NotNull ResponseNode toResponseObject() {
|
|
return new ResponseNode(identifier, pickingMethod);
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return identifier.hashCode();
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object object) {
|
|
if (object == this) return true;
|
|
if (object == null) return false;
|
|
if (object instanceof Node other) {
|
|
return identifier.equals(other.identifier);
|
|
}
|
|
return false;
|
|
}
|
|
}
|