code: protected ComponentModel getOrCreateComponentModel() {
  		ComponentModel model = getComponentModel();
  
  		if (locked && model == sharedModel) {
  			UIContext effectiveContext = UIContextHolder.getCurrent();
  
  			if (effectiveContext != null) {
  				model = newComponentModel();
  				model.setSharedModel(sharedModel);
  
  				effectiveContext.setModel(this, model);
  				initialiseComponentModel();
  			}
  		}
  
  		return model;
  	}
docs: Retrieves the model for this component so that it can be modified. If this method is called during request
  processing, and a session specific model does not yet exist, then a new model is created. Subclasses may override
  this method to narrow the return type to their specific model type.
  
  @return the model for this component