code: protected void setFormModel(ValidatingFormModel formModel) {
  		Assert.notNull(formModel);
  		if (this.formModel != null && isControlCreated()) {
  			throw new UnsupportedOperationException("Cannot reset form model once form control has been created");
  		}
  		if (this.formModel != null) {
  			this.formModel.removeCommitListener(this);
  		}
  		this.formModel = formModel;
  		this.formGuard = new FormGuard(formModel);
  		this.formModel.addCommitListener(this);
  		setFormModelDefaultEnabledState();
  	}
docs: Set the {@link FormModel} for this {@link Form}. Normally a Form won't
  change it's FormModel as this may lead to an inconsistent state. Only use
  this when the formModel isn't set yet.
  
  TODO check why we do allow setting when no control is created.
  ValueModels might exist already leading to an inconsistent state.
  
  @param formModel