/*
* PlaceCapacityEdit.java
*/
package pipe.historyActions.place;
import uk.ac.imperial.pipe.models.petrinet.Place;
import javax.swing.undo.AbstractUndoableEdit;
/**
* @author corveau
*/
public class PlaceCapacity extends AbstractUndoableEdit {
private final int newCapacity;
private final int oldCapacity;
private final Place place;
@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
final PlaceCapacity capacity = (PlaceCapacity) o;
if (Double.compare(capacity.newCapacity, newCapacity) != 0) {
return false;
}
if (Double.compare(capacity.oldCapacity, oldCapacity) != 0) {
return false;
}
if (!place.equals(capacity.place)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result;
long temp;
temp = Double.doubleToLongBits(newCapacity);
result = (int) (temp ^ (temp >>> 32));
temp = Double.doubleToLongBits(oldCapacity);
result = 31 * result + (int) (temp ^ (temp >>> 32));
result = 31 * result + place.hashCode();
return result;
}
public PlaceCapacity(Place place, int oldCapacity, int newCapacity) {
this.place = place;
this.oldCapacity = oldCapacity;
this.newCapacity = newCapacity;
}
/** */
@Override
public void undo() {
super.undo();
place.setCapacity(oldCapacity);
}
/** */
@Override
public void redo() {
super.redo();
place.setCapacity(newCapacity);
}
}