Пример #1
0
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SimpleFilter* StrongMotionParameters::findSimpleFilter(const std::string& publicID) const {
	SimpleFilter* object = SimpleFilter::Cast(PublicObject::Find(publicID));
	if ( object != NULL && object->parent() == this )
		return object;
	
	return NULL;
}
Пример #2
0
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
bool StrongMotionParameters::add(SimpleFilter* simpleFilter) {
	if ( simpleFilter == NULL )
		return false;

	// Element has already a parent
	if ( simpleFilter->parent() != NULL ) {
		SEISCOMP_ERROR("StrongMotionParameters::add(SimpleFilter*) -> element has already a parent");
		return false;
	}

	if ( PublicObject::IsRegistrationEnabled() ) {
		SimpleFilter* simpleFilterCached = SimpleFilter::Find(simpleFilter->publicID());
		if ( simpleFilterCached ) {
			if ( simpleFilterCached->parent() ) {
				if ( simpleFilterCached->parent() == this )
					SEISCOMP_ERROR("StrongMotionParameters::add(SimpleFilter*) -> element with same publicID has been added already");
				else
					SEISCOMP_ERROR("StrongMotionParameters::add(SimpleFilter*) -> element with same publicID has been added already to another object");
				return false;
			}
			else
				simpleFilter = simpleFilterCached;
		}
	}

	// Add the element
	_simpleFilters.push_back(simpleFilter);
	simpleFilter->setParent(this);

	// Create the notifiers
	if ( Notifier::IsEnabled() ) {
		NotifierCreator nc(OP_ADD);
		simpleFilter->accept(&nc);
	}

	// Notify registered observers
	childAdded(simpleFilter);
	
	return true;
}
Пример #3
0
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
bool StrongMotionParameters::updateChild(Object* child) {
	SimpleFilter* simpleFilterChild = SimpleFilter::Cast(child);
	if ( simpleFilterChild != NULL ) {
		SimpleFilter* simpleFilterElement
			= SimpleFilter::Cast(PublicObject::Find(simpleFilterChild->publicID()));
		if ( simpleFilterElement && simpleFilterElement->parent() == this ) {
			*simpleFilterElement = *simpleFilterChild;
			return true;
		}
		return false;
	}

	Record* recordChild = Record::Cast(child);
	if ( recordChild != NULL ) {
		Record* recordElement
			= Record::Cast(PublicObject::Find(recordChild->publicID()));
		if ( recordElement && recordElement->parent() == this ) {
			*recordElement = *recordChild;
			return true;
		}
		return false;
	}

	StrongOriginDescription* strongOriginDescriptionChild = StrongOriginDescription::Cast(child);
	if ( strongOriginDescriptionChild != NULL ) {
		StrongOriginDescription* strongOriginDescriptionElement
			= StrongOriginDescription::Cast(PublicObject::Find(strongOriginDescriptionChild->publicID()));
		if ( strongOriginDescriptionElement && strongOriginDescriptionElement->parent() == this ) {
			*strongOriginDescriptionElement = *strongOriginDescriptionChild;
			return true;
		}
		return false;
	}

	return false;
}