--- /dev/null
+/*
+ * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.vpnservice.mdsalutil;
+
+import java.math.BigInteger;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match;
+
+public final class FlowInfoKey {
+
+ private final BigInteger dpId;
+ private final short tableId;
+ private final Match matches;
+ private final String flowId;
+
+ public FlowInfoKey(BigInteger dpId, short tableId, Match matches, String flowId) {
+ this.dpId = dpId;
+ this.tableId = tableId;
+ this.matches = matches;
+ this.flowId = flowId;
+ }
+
+ public short getTableId() {
+ return tableId;
+ }
+
+ public Match getMatches() {
+ return matches;
+ }
+
+ public BigInteger getDpId() {
+ return dpId;
+ }
+
+ public String getFlowId() {
+ return flowId;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((dpId == null) ? 0 : dpId.hashCode());
+ result = prime * result + ((matches == null) ? 0 : matches.hashCode());
+ result = prime * result + tableId;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ FlowInfoKey other = (FlowInfoKey) obj;
+ if (dpId == null) {
+ if (other.dpId != null)
+ return false;
+ } else if (!dpId.equals(other.dpId))
+ return false;
+ if (matches == null) {
+ if (other.matches != null)
+ return false;
+ } else if (!matches.equals(other.matches))
+ return false;
+ if (tableId != other.tableId)
+ return false;
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return "FlowStatisticsKey [dpId=" + dpId + ", tableId=" + tableId + ", matches=" + matches + "]";
+ }
+
+}