Всем привет.
Значит, потребовалось набросать примерчик используя C4J фреймворк.
Написал класс
package ua.avereschaka.Utils;
import de.vksi.c4j.ContractReference;
import ua.avereschaka.Contracts.PhysicsUtilsContract;
@ContractReference(PhysicsUtilsContract.class)
public class PhysicsUtils {
public double getMinSpeed(double busSpeed, double distToBus, double distToRoad){
return (busSpeed * distToRoad) / distToBus;
}
}
После этого, естественно, контракт для него
package ua.avereschaka.Contracts;
import de.vksi.c4j.Contract;
import de.vksi.c4j.Target;
import ua.avereschaka.Utils.PhysicsUtils;
import static de.vksi.c4j.Condition.*;
@Contract
public class PhysicsUtilsContract extends PhysicsUtils {
@Target
private PhysicsUtils target;
@Override
public double getMinSpeed(double busSpeed, double distToBus, double distToRoad) {
if (preCondition()) {
assert busSpeed >= 0;
assert distToBus >= 0;
assert distToRoad >= 0;
}
if (postCondition()) {
assert result() != null;
assert result(Double.class) >= 0;
}
return ignored();
}
}
Запускаю с неверными параметрами(например, передаю отрицательную busSpeed) и он нормально отрабатывает.
В чем проблема?
Юзаю IDEA 15, jar файлик подключил через project settings, ибо этого C4J нету в Maven.
Ткните, пожалуйста, куда мне двигаться, или укажите на явную ошибку в коде.
Спасибо.