void setValueImpl(Argument value, boolean send) {
   if (value == null) {
     throw new NullPointerException();
   }
   Argument oldValue = this.value;
   if (send) {
     send(CallArguments.create(value));
   }
   this.value = value;
   if (!Argument.equivalent(null, oldValue, value)) {
     pcs.firePropertyChange(property, oldValue, value);
   }
 }