@@ -0,0 +1,1539 @@
+package jp.naist.cl.srparser.util;%0A%0Aimport java.io.Serializable;%0A%0A/**%0A * jp.naist.cl.srparser.util%0A *%0A * @author Hiroki Teranishi%0A */%0Apublic class Triple%3CL, M, R%3E implements Serializable %7B%0A    private static final long serialVersionUID = 1L;%0A%0A    public final L left;%0A    public final M middle;%0A    public final R right;%0A%0A    public Triple(final L left, final M middle, final R right) %7B%0A        this.left = left;%0A        this.middle = middle;%0A        this.right = right;%0A    %7D%0A%0A    public static %3CL, M, R%3E Triple%3CL, M, R%3E create(final L left, final M middle, final R right) %7B%0A        return new Triple%3C%3E(left, middle, right);%0A    %7D%0A%0A    @Override%0A    public boolean equals(final Object obj) %7B%0A        if (obj == this) %7B%0A            return true;%0A        %7D%0A        if (obj instanceof Triple%3C?, ?, ?%3E) %7B%0A            final Triple%3C?, ?, ?%3E other = (Triple%3C?, ?, ?%3E) obj;%0A            return left.equals(other.left)%0A                && middle.equals(other.middle)%0A                && right.equals(other.right);%0A        %7D%0A        return false;%0A    %7D%0A%0A    public L getLeft() %7B%0A        return left;%0A    %7D%0A%0A    public M getMiddle() %7B%0A        return middle;%0A    %7D%0A%0A    public R getRight() %7B%0A        return right;%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return (left == null ? 0 : left.hashCode()) %5E%0A                (middle == null ? 0 : middle.hashCode()) %5E%0A                (right == null ? 0 : right.hashCode());%0A    %7D%0A%0A    @Override%0A    public String toString() %7B%0A        return %22(%22 + left + %22,%22 + middle + %22,%22 + right + %22)%22;%0A    %7D%0A%7D%0A

add util.Triple