private boolean isObjectDependsOnDataset(final Data data) {
		if(data.isPlain()) {
			final AttributeType att = data.getAttributeType();
			if(att instanceof ReferenceAttributeType) {
				final ReferenceAttributeType referenceAttributeType = (ReferenceAttributeType)att;
				if(referenceAttributeType.getReferenceType() == ReferenceType.COMPOSITION) {
					final SystemObject referencedObject = data.asReferenceValue().getSystemObject();
					if(referencedObject != null && referencedObject == this) return true;
				}
			}
			return false;
		}
		else {
			boolean isObjectDependsOnDataset = false;
			for(Iterator iterator = data.iterator(); iterator.hasNext();) {
				Data subData = (Data)iterator.next();
				if(isObjectDependsOnDataset(subData)) isObjectDependsOnDataset = true;
			}
			return isObjectDependsOnDataset;
		}
	}