
/*
 * Copyright (c) 2006-2009 by Dirk Riehle, http://dirkriehle.com
 *
 * This file is part of the Wahlzeit photo rating application.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public
 * License along with this program. If not, see
 * <http://www.gnu.org/licenses/>.
 */

package org.wahlzeit.model;

public class CartesianCoordinate extends AbstractCoordinate{

    private double x, y, z;

    public CartesianCoordinate(double x, double y, double z){
        this.x = x;
        this.y = y;
        this.z = z;
    }

    public double getX() {
        return x;
    }

    public double getY() {
        return y;
    }

    public double getZ() {
        return z;
    }

    @Override
    public CartesianCoordinate asCartesianCoordinate() {
        return this;
    }
}

@@ -1,8 +1,36 @@
+package org.wahlzeit.model;%0A
 %0A/*%0A * C
@@ -837,37 +837,8 @@
 */%0A%0A
-package org.wahlzeit.model;%0A%0A
 publ
@@ -1205,24 +1205,25 @@
 n z;%0A    %7D%0A%0A
+%0A
     @Overrid
@@ -1293,19 +1293,403 @@
     
-return this
+assertClassInvariants();%0A        return this;%0A    %7D%0A%0A    @Override%0A    public void assertClassInvariants() %7B%0A        assert x %3C Double.POSITIVE_INFINITY && x %3E Double.NEGATIVE_INFINITY && x != Double.NaN;%0A        assert y %3C Double.POSITIVE_INFINITY && y %3E Double.NEGATIVE_INFINITY && y != Double.NaN;%0A        assert z %3C Double.POSITIVE_INFINITY && z %3E Double.NEGATIVE_INFINITY && z != Double.NaN
 ;%0A  

add assertClassInvariants()