package com.lasarobotics.library.util;

/**
 * 3D Vector
 */
public class Vector3<T> {
    public final T x;
    public final T y;
    public final T z;
    
    public static class Builder<T> {
        private final T x, y, z;
        
        public Builder<T> x(T n) {
            this.x = n;
            return this;
        }
        
        public Builder<T> y(T n) {
            this.y = n;
            return this;
        }
        
        public Builder<T> z(T n) {
            this.z = n;
            return this;
        }
        
        public Vector3<T> build() { 
            return new Vector3<T>(x, y, x);
        }
    }

    public Vector3(T x, T y, T z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    @Override
    public String toString() {
        return "(" + x + ", " + y + ", " + z + ")";
    }
}

@@ -49,16 +49,28 @@
 D Vector
+ : Immutable
 %0A */%0Apub
@@ -543,32 +543,110 @@
      %7D%0A        %0A
+        // Illegal State Exception errors can be thrown if x, y, or z is null%0A
         public V
@@ -706,17 +706,17 @@
 %3E(x, y, 
-x
+z
 );%0A     

Update Vector3.java