package space.ai.component.operation;
import space.ai.component.Component;
public class Xor<T> extends Component {
public Component.Value<T> a, b;
public Component.Value<T> result = new Component.Value<T>() {
@Override public T value() {
try {
Number n1 = (Number)a.value();
Number n2 = (Number)b.value();
return (T)(Number)(n1.intValue() ^ n2.intValue());
} catch(ClassCastException ex) {
Character n1 = (Character)a.value();
Character n2 = (Character)b.value();
return (T)(Character)(char)(n1 ^ n2);
}
}
};
}