New Package dealing with device rollback
[transportpce.git] / renderer / src / main / java / org / opendaylight / transportpce / renderer / provisiondevice / transaction / DeviceInterface.java
1 /*
2  * Copyright © 2024 Smartoptics and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.transportpce.renderer.provisiondevice.transaction;
10
11 import java.util.Objects;
12 import org.opendaylight.transportpce.renderer.provisiondevice.transaction.delete.Delete;
13
14 public class DeviceInterface implements Transaction {
15
16     private final String nodeId;
17
18     private final String interfaceId;
19
20     public DeviceInterface(String nodeId, String interfaceId) {
21         this.nodeId = nodeId;
22         this.interfaceId = interfaceId;
23     }
24
25     @Override
26     public boolean rollback(Delete delete) {
27         return delete.deleteInterface(nodeId, interfaceId);
28     }
29
30     @Override
31     public String description() {
32         return String.format("Node: %s interface id: %s", nodeId, interfaceId);
33     }
34
35     @Override
36     public int hashCode() {
37         return Objects.hash(nodeId, interfaceId);
38     }
39
40     @Override
41     public boolean equals(Object object) {
42         if (this == object) {
43             return true;
44         }
45         if (!(object instanceof DeviceInterface)) {
46             return false;
47         }
48         DeviceInterface that = (DeviceInterface) object;
49         return Objects.equals(nodeId, that.nodeId) && Objects.equals(interfaceId,
50                 that.interfaceId);
51     }
52 }