/*
* Copyright (c) 2011,2013 Big Switch Networks, Inc.
*
* Licensed under the Eclipse Public License, Version 1.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.eclipse.org/legal/epl-v10.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*
* This file incorporates work covered by the following copyright and
* permission notice:
*
* Originally created by David Erickson, Stanford University
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS
* IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package org.sdnplatform.storage;
import java.util.Set;
public class StorageSourceNotification {
public enum Action { MODIFY, DELETE };
private String tableName;
private Action action;
private Set<Object> keys;
public StorageSourceNotification() {
}
public StorageSourceNotification(String tableName, Action action, Set<Object> keys) {
this.tableName = tableName;
this.action = action;
this.keys = keys;
}
public String getTableName() {
return tableName;
}
public Action getAction() {
return action;
}
public Set<Object> getKeys() {
return keys;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public void setAction(Action action) {
this.action = action;
}
public void setKeys(Set<Object> keys) {
this.keys = keys;
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 7867;
int result = 1;
result = prime * result + tableName.hashCode();
result = prime * result + action.hashCode();
result = prime * result + keys.hashCode();
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!(obj instanceof StorageSourceNotification))
return false;
StorageSourceNotification other = (StorageSourceNotification) obj;
if (tableName == null) {
if (other.tableName != null)
return false;
} else if (!tableName.equals(other.tableName))
return false;
if (action == null) {
if (other.action != null)
return false;
} else if (action != other.action)
return false;
if (keys == null) {
if (other.keys != null)
return false;
} else if (!keys.equals(other.keys))
return false;
return true;
}
@Override
public String toString() {
return ("StorageNotification[table=" + tableName + "; action=" +
action.toString() + "; keys=" + keys.toString() + "]");
}
}