// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bool Parameter::detachFrom(PublicObject* object) { if ( object == NULL ) return false; // check all possible parents ParameterSet* parameterSet = ParameterSet::Cast(object); if ( parameterSet != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return parameterSet->remove(this); // The object has not been added locally so it must be looked up else { Parameter* child = parameterSet->findParameter(publicID()); if ( child != NULL ) return parameterSet->remove(child); else { SEISCOMP_DEBUG("Parameter::detachFrom(ParameterSet): parameter has not been found"); return false; } } } SEISCOMP_ERROR("Parameter::detachFrom(%s) -> wrong class type", object->className()); return false; }
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> bool Comment::detachFrom(PublicObject* object) { if ( object == NULL ) return false; // check all possible parents MomentTensor* momentTensor = MomentTensor::Cast(object); if ( momentTensor != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return momentTensor->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = momentTensor->comment(index()); if ( child != NULL ) return momentTensor->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(MomentTensor): comment has not been found"); return false; } } } FocalMechanism* focalMechanism = FocalMechanism::Cast(object); if ( focalMechanism != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return focalMechanism->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = focalMechanism->comment(index()); if ( child != NULL ) return focalMechanism->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(FocalMechanism): comment has not been found"); return false; } } } Amplitude* amplitude = Amplitude::Cast(object); if ( amplitude != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return amplitude->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = amplitude->comment(index()); if ( child != NULL ) return amplitude->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(Amplitude): comment has not been found"); return false; } } } Magnitude* magnitude = Magnitude::Cast(object); if ( magnitude != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return magnitude->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = magnitude->comment(index()); if ( child != NULL ) return magnitude->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(Magnitude): comment has not been found"); return false; } } } StationMagnitude* stationMagnitude = StationMagnitude::Cast(object); if ( stationMagnitude != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return stationMagnitude->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = stationMagnitude->comment(index()); if ( child != NULL ) return stationMagnitude->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(StationMagnitude): comment has not been found"); return false; } } } Pick* pick = Pick::Cast(object); if ( pick != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return pick->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = pick->comment(index()); if ( child != NULL ) return pick->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(Pick): comment has not been found"); return false; } } } Event* event = Event::Cast(object); if ( event != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return event->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = event->comment(index()); if ( child != NULL ) return event->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(Event): comment has not been found"); return false; } } } Origin* origin = Origin::Cast(object); if ( origin != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return origin->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = origin->comment(index()); if ( child != NULL ) return origin->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(Origin): comment has not been found"); return false; } } } Parameter* parameter = Parameter::Cast(object); if ( parameter != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return parameter->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = parameter->comment(index()); if ( child != NULL ) return parameter->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(Parameter): comment has not been found"); return false; } } } ParameterSet* parameterSet = ParameterSet::Cast(object); if ( parameterSet != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return parameterSet->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = parameterSet->comment(index()); if ( child != NULL ) return parameterSet->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(ParameterSet): comment has not been found"); return false; } } } Stream* stream = Stream::Cast(object); if ( stream != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return stream->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = stream->comment(index()); if ( child != NULL ) return stream->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(Stream): comment has not been found"); return false; } } } SensorLocation* sensorLocation = SensorLocation::Cast(object); if ( sensorLocation != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return sensorLocation->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = sensorLocation->comment(index()); if ( child != NULL ) return sensorLocation->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(SensorLocation): comment has not been found"); return false; } } } Station* station = Station::Cast(object); if ( station != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return station->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = station->comment(index()); if ( child != NULL ) return station->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(Station): comment has not been found"); return false; } } } Network* network = Network::Cast(object); if ( network != NULL ) { // If the object has been added already to the parent locally // just remove it by pointer if ( object == parent() ) return network->remove(this); // The object has not been added locally so it must be looked up else { Comment* child = network->comment(index()); if ( child != NULL ) return network->remove(child); else { SEISCOMP_DEBUG("Comment::detachFrom(Network): comment has not been found"); return false; } } } SEISCOMP_ERROR("Comment::detachFrom(%s) -> wrong class type", object->className()); return false; }