class ProportionalDisplacement implements Displacement {

    private float step;

    public ProportionalDisplacement(float step) {
        this.step = step;
    }

    @Override
    public void setStep(float step) {
        this.step = step;
    }

    private boolean assertValue(float value) {
        boolean ret = !Float.isInfinite(value) && !Float.isNaN(value);
        return ret;
    }

    @Override
    public void moveNode(Node node, ForceVector forceData) {<FILL_FUNCTION_BODY>}
}

        ForceVector displacement = new ForceVector(forceData);
        displacement.multiply(step);

        float x = node.x() + displacement.x();
        float y = node.y() + displacement.y();

        if (assertValue(x)) {
            node.setX(x);
        }
        if (assertValue(y)) {
            node.setY(y);
        }
    
<no_super_class>