@Override
 public int hashCode() {
   final int prime = 31;
   int result = super.hashCode();
   result = prime * result + _interpolator.hashCode();
   return result;
 }
 @Override
 public Double getValue(Double x, Double y, Double z) {
   Validate.notNull(x, "x");
   Validate.notNull(y, "y");
   Validate.notNull(z, "z");
   return _interpolator.interpolate(_dataBundle, new double[] {x, y, z});
 }
 private void init() {
   _dataBundle =
       _interpolator.getDataBundle(
           getXDataAsPrimitive(),
           getYDataAsPrimitive(),
           getZDataAsPrimitive(),
           getValuesAsPrimitive());
 }
 @Override
 public Double getValue(Triple<Double, Double, Double> xyz) {
   Validate.notNull(xyz, "xyz");
   Double x = xyz.getFirst();
   Validate.notNull(x, "x");
   Double y = xyz.getSecond();
   Validate.notNull(y, "y");
   Double z = xyz.getThird();
   Validate.notNull(z, "z");
   return _interpolator.interpolate(_dataBundle, new double[] {x, y, z});
 }