* </ul>
*/
@Override
public void setId(String id)
{
FacesBean facesBean = getFacesBean();
// if we are using a FacesBeanImpl, then the FacesBean will
// delegate all calls to set the id back to us and we can store
// the value localy. Otehrwise,w e need to store it in
// the FacesBean
if (_usesFacesBeanImpl)
{
// only validate if the id has actually changed
if ((_id == null) || !_id.equals(id))
{
_validateId(id);
_id = id;
// if we're a NamingContainer then changing our id will invalidate the clientIds of all
// of our children
if ((_clientId != null) && (this instanceof NamingContainer))
{
clearCachedClientIds(this);
}
}
}
else
{
_validateId(id);
facesBean.setProperty(ID_KEY, id);
}
_clientId = null;
}