@@ -0,0 +1,624 @@
+package net.sf.kerner.utils.impl;%0A%0Aimport net.sf.kerner.utils.View;%0A%0Apublic class SetterOnlyOnce%3CT%3E implements View%3CT%3E %7B%0A%0A    private final boolean strict;%0A%0A    private T t = null;%0A%0A    public SetterOnlyOnce() %7B%0A        this(false);%0A    %7D%0A%0A    public SetterOnlyOnce(final boolean strict) %7B%0A        this.strict = strict;%0A    %7D%0A%0A    public T getOriginal() %7B%0A        return t;%0A    %7D%0A%0A    public void set(final T t) %7B%0A        if (this.t == null %7C%7C (!strict && this.t.equals(t))) %7B%0A            this.t = t;%0A        %7D else %7B%0A            throw new RuntimeException(%22refuse to override %22 + this.t + %22 with %22 + t);%0A        %7D%0A    %7D%0A%0A%7D%0A

Introduce SetterOnlyOnce.