boolean objectValid(Object objectInfo, long queryIntervalStart, long queryIntervalEnd, ConfigurationAreaTime kindOfTime, TimeSpecificationType timeSpecificationType) {
		// Die Klasse ist im Package sichtbar, damit ein JUnit-Test die Methode prüfen kann

		long[] activationTimes;
		if(kindOfTime == ConfigurationAreaTime.GLOBAL_ACTIVATION_TIME) {
			activationTimes = _globalActivationTimes;
		}
		else if(kindOfTime == ConfigurationAreaTime.LOCAL_ACTIVATION_TIME) {
			activationTimes = _localActivationTimes;
		}
		else {
			throw new IllegalArgumentException("Unbekannte Zeit/Version Zuweisung " + kindOfTime);
		}

		// Zeitpunkt, an dem das Objekt gültig wurde
		final long objectValidSince;
		// Zeitpunkt, an dem das Objekt ungültig wurde.
		long objectInvalidSince;

		if((objectInfo instanceof ConfigurationObjectInfo)) {
			final ConfigurationObjectInfo confObject = (ConfigurationObjectInfo)objectInfo;
			objectValidSince = getActivationTime(confObject.getFirstValidVersion(), activationTimes);
			objectInvalidSince = getActivationTime(confObject.getFirstInvalidVersion(), activationTimes);
		}
		else if(objectInfo instanceof DynamicObjectInfo) {
			final DynamicObjectInfo dynObject = (DynamicObjectInfo)objectInfo;
			objectValidSince = dynObject.getFirstValidTime();
			objectInvalidSince = dynObject.getFirstInvalidTime();
		}
		else {
			// Das Objekt kann ein Konfigurationsobjekt sein oder ein dynamisches Objekt. In beiden Fällen ist das Objekt nur teilweise im Speicher vorhanden
			final OldObjectTypeIdInfo oldObjectTypeIdInfo = (OldObjectTypeIdInfo)objectInfo;
			if(oldObjectTypeIdInfo.isConfigurationObject()) {
				objectValidSince = getActivationTime((short)oldObjectTypeIdInfo.getFirstValid(), activationTimes);
				objectInvalidSince = getActivationTime((short)oldObjectTypeIdInfo.getFirstInvalid(), activationTimes);

			}
			else {
				// Es ist ein dynamisches Objekt
				objectValidSince = oldObjectTypeIdInfo.getFirstValid();
				objectInvalidSince = oldObjectTypeIdInfo.getFirstInvalid();
			}
		}

		// (objectValidSince == 0) bedeutet, dass dieses Objekt noch immer gültig ist
		if(objectInvalidSince == 0) objectInvalidSince = Long.MAX_VALUE;

		if(TimeSpecificationType.VALID_DURING_PERIOD == timeSpecificationType) {
			// Das Objekt muss im gesamten Zeitraum gültig gewesen sein
			return objectValidSince <= queryIntervalStart && queryIntervalEnd <= objectInvalidSince;
		}
		else {
			return objectValidSince <= queryIntervalEnd && queryIntervalStart <= objectInvalidSince;
		}
	}