* @throws ConfigurationChangeException Falls das Objekt nicht angelegt werden.
	 */
	private void handleImportObject(ImportObject importObject) throws ConfigurationChangeException {
		final ConfigurationArea configurationArea = importObject.getConfigurationArea();
		final String pid = importObject.getProperties().getPid();
		_debug.finer("*** Folgende Pid wird jetzt weiterverarbeitet", pid);
		CheckedObject checkedObject = getNewObject(configurationArea, pid);
		if(checkedObject != null) {
			// Es gibt ein zur Übernahme / Aktivierung freigegebenes Objekt.
			// wenn dieses Objekt geändert werden muss und geändert werden darf, dann soll es weiter verwendet werden
			boolean isObjectProcessable = _objectDiffs.isObjectProcessable(importObject.getProperties(), checkedObject.getSystemObject());
			if(_objectDiffs.isObjectDifferent(importObject.getProperties(), checkedObject.getSystemObject())) {
				_debug.fine(
						"Das zur Übernahme / Aktivierung freigegebene Objekt mit Pid '" + pid + "' und Id '" + checkedObject.getSystemObject().getId()
						+ "' muss geändert werden. Darf es geändert werden? " + isObjectProcessable
				);
			}
			else {
				_debug.finer(
						"Objekt mit Pid " + checkedObject.getSystemObject().getPid()
						+ " unterscheidet sich nicht von einem zur Übernahme / Aktivierung freigegebene Objekt!"
				);
			}
			if(isObjectProcessable) {
				// wenn es geändert werden kann, dann wird dieses weiterverwendet, wenn nicht, dann muss ein neues angelegt werden.
				final ConfigurationObject configurationObject = getModifiableObject(configurationArea, pid);
				if(configurationObject != null) {
					// ein Objekt mit gleicher Pid welches in Bearbeitung ist, muss gelöscht werden, da
					// das aktive Objekt verwendet wird
					
					((ConfigSystemObject)configurationObject).simpleInvalidation();
					_dissolveReference = true;
				}
				handleObject(checkedObject, importObject);
				return;
			}
			else {
				if(importObject.getSystemObject() == null || importObject.getSystemObject() == checkedObject.getSystemObject()) {
					// Wenn die beiden Objekte gleich sind, diese aber nicht weiterverarbeitet werden dürfen, dann müssen
					// die Referenzen mit einem neuen Objekt aufgelöst werden.
					_debug.finest("DissolveReference because Pid " + pid);
					_dissolveReference = true;
					importObject.setSystemObject(null);
				}
			}
		}
		else {
			// Es gibt kein zur Übernahme / Aktivierung freigegebenes Objekt - gibt es ein aktuelles Objekt?
			checkedObject = getCurrentObject(configurationArea, pid);
			if(checkedObject != null) {
				// es gibt ein aktuelles Objekt
				// wenn dieses Objekt geändert werden muss und geändert werden darf, dann soll es weiter verwendet werden
				boolean isObjectProcessable = _objectDiffs.isObjectProcessable(importObject.getProperties(), checkedObject.getSystemObject());
				if(_objectDiffs.isObjectDifferent(importObject.getProperties(), checkedObject.getSystemObject())) {
					_debug.fine(
							"Das aktuelle Objekt mit Pid '" + pid + "' und Id '" + checkedObject.getSystemObject().getId() + "' muss geändert werden (Typ: "
							+ checkedObject.getSystemObject().getType().getPidOrNameOrId() + "). Darf es geändert werden? " + isObjectProcessable
					);
				}
				else {
					_debug.finer("Objekt mit Pid " + checkedObject.getSystemObject().getPid() + " unterscheidet sich nicht von einem aktuellen Objekt!");
				}
				if(isObjectProcessable) {
					// wenn es geändert werden kann, dann wird dieses weiterverwendet, wenn nicht, dann muss ein neues angelegt werden.
					final ConfigurationObject configurationObject = getModifiableObject(configurationArea, pid);
					if(configurationObject != null) {
						// ein Objekt mit gleicher Pid welches in Bearbeitung ist, muss gelöscht werden, da
						// das aktive Objekt verwendet wird
						
						((ConfigSystemObject)configurationObject).simpleInvalidation();
						_dissolveReference = true;
					}
					handleObject(checkedObject, importObject);
					return;
				}
				else {
					if(importObject.getSystemObject() == null || importObject.getSystemObject() == checkedObject.getSystemObject()) {
						// Wenn die beiden Objekte gleich sind, diese aber nicht weiterverarbeitet werden dürfen, dann müssen
						// die Referenzen mit einem neuen Objekt aufgelöst werden.
						final SystemObject checkedSystemObject = checkedObject.getSystemObject();
						if(checkedSystemObject instanceof DynamicObject) {
							_debug.fine("dynamisches Objekt wird gelöscht", checkedSystemObject);
							forgetCurrentObject(configurationArea, checkedSystemObject);
							((ConfigSystemObject)checkedSystemObject).simpleInvalidation();
						}
						_debug.finest("DissolveReference because Pid " + pid);
						_dissolveReference = true;
						importObject.setSystemObject(null);
					}
				}
			}
		}
		// Es gibt weder ein zur Übernahme / Aktivierung freigegebenes Objekt, noch ein aktuelles Objekt.
		// Gibt es ein in Bearbeitung befindliches Objekt, welches vor dem Import bereits in Bearbeitung war?
		checkedObject = getEditingObject(configurationArea, pid);
		if(checkedObject != null) {
			// Es gibt ein in Bearbeitung befindliches Objekt -> dies kann nach belieben geändert werden.
			_debug.fine("Ein in Bearbeitung befindliches Objekt mit der Pid '" + pid + "' wird weiterverarbeitet.");
			// Objekt weiterverarbeiten - es kann nach belieben verändert werden
			handleObject(checkedObject, importObject);
			return;
		}
		if(importObject.getSystemObject() == null) {
			_debug.fine("Ein neues Objekt mit der Pid '" + pid + "' wird erstellt.");
			_dissolveReference = true;
		}
		else {
			_debug.fine("Ein importiertes Objekt mit der Pid '" + pid + "' wird weiterverarbeitet.");
		}
		handleObject(null, importObject);
	}