boolean isSystemObjectProcessable(SystemObjectProperties property, SystemObject systemObject) {
		final SystemObjectType propertyType = getType(property.getType());
		// Typ vergleichen
		if(propertyType != systemObject.getType()) {
			return false;
		}

		final ConfigurationConfigurationObject configProperty = (ConfigurationConfigurationObject)property;
		final List<ConfigurationDataset> datasets = new LinkedList<ConfigurationDataset>();
		final List<ConfigurationObjectSet> objectSets = new LinkedList<ConfigurationObjectSet>();
		for(ConfigurationObjectElements elements : configProperty.getDatasetAndObjectSet()) {
			if(elements instanceof ConfigurationDataset) {
				datasets.add((ConfigurationDataset)elements);
			}
			else if(elements instanceof ConfigurationObjectSet) {
				objectSets.add((ConfigurationObjectSet)elements);
			}
		}

		// Datensätze prüfen
		if(!isDatasetsProcessable(datasets, systemObject)) {
			return false;
		}

		// wenn es sich um ein konfigurierendes Objekt handelt ...
		if(propertyType.isConfigurating()) {
			// Mengen prüfen
			if(!isSystemObjectSetsProcessable(objectSets, (ConfigurationObject)systemObject)) {
				return false;
			}

			// Default-Parameter-Datensatz prüfen
			if(!isDefaultParameterProcessable(configProperty.getDefaultParameters(), systemObject)) {
				return false;
			}
		}
		return true;
	}