package edu.stanford.nlp.sempre;
import fig.basic.LispTree;
/**
* Created by joberant on 1/23/15.
* Value for representing time
*/
public class TimeValue extends Value {
public final int hour;
public final int minute;
public TimeValue(int hour, int minute) {
if (hour > 23 || hour < 0) throw new RuntimeException("Illegal hour: " + hour);
if (minute > 59 || minute < 0) throw new RuntimeException("Illegal minute: " + minute);
this.hour = hour;
this.minute = minute;
}
public TimeValue(LispTree tree) {
this.hour = Integer.valueOf(tree.child(1).value);
this.minute = Integer.valueOf(tree.child(2).value);
}
@Override
public LispTree toLispTree() {
LispTree tree = LispTree.proto.newList();
tree.addChild("time");
tree.addChild(String.valueOf(hour));
tree.addChild(String.valueOf(minute));
return tree;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TimeValue timeValue = (TimeValue) o;
if (hour != timeValue.hour) return false;
if (minute != timeValue.minute) return false;
return true;
}
@Override
public int hashCode() {
int result = hour;
result = 31 * result + minute;
return result;
}
}