private void setDefaultParameterDataset(final ConfigurationDefaultParameter[] defaultParameters, final SystemObject systemObject)
			throws IOException, ConfigurationChangeException {
		final AttributeGroup attributeGroup = (AttributeGroup)getObject("atg.defaultParameterdatensätze");
		final Data data;
		if(defaultParameters.length > 0) {
			// den Datensatz komplett neu schreiben
			data = AttributeBaseValueDataFactory.createAdapter(attributeGroup, AttributeHelper.getAttributesValues(attributeGroup));
			final Data.Array array = data.getArray("Default-Parameterdatensatz");
			array.setLength(defaultParameters.length);

			// Elemente füllen
			for(int i = 0; i < array.getLength(); i++) {
				final Data item = array.getItem(i);
				final ConfigurationDefaultParameter defaultParameter = defaultParameters[i];
				String pidType = defaultParameter.getPidType();
				if("".equals(pidType)) {
					if(systemObject instanceof SystemObjectType) {
						SystemObjectType systemObjectType = (SystemObjectType)systemObject;
						pidType = systemObjectType.getPid();
					}
					else {
						pidType = systemObject.getType().getPid();
					}
				}
				final SystemObject typeObject = getObject(pidType);
				if(!(typeObject instanceof SystemObjectType)) {
					throw new ConfigurationChangeException(
							"Default-Parameter-Datensatz am '" + systemObject.getPidOrNameOrId() + "' konnte nicht importiert werden, weil ein ungültiger Typ '"
							+ pidType + "' angegeben wurde."
					);
				}
				final SystemObjectType referencedType = (SystemObjectType)typeObject;
				item.getReferenceValue("typ").setSystemObject(referencedType);

				final SystemObject atgObject = getObject(defaultParameter.getPidAtg());
				if(!(atgObject instanceof AttributeGroup)) {
					throw new ConfigurationChangeException(
							"Default-Parameter-Datensatz am '" + systemObject.getPidOrNameOrId()
							+ "' konnte nicht importiert werden, weil eine ungültige Attributgruppe '" + defaultParameter.getPidAtg() + "' angegeben wurde."
					);
				}
				final AttributeGroup atg = (AttributeGroup)atgObject;
				item.getReferenceValue("attributgruppe").setSystemObject(atg);

				// Datensatz mit der angegebenen ATG erstellen
				final Data defaultData = AttributeBaseValueDataFactory.createAdapter(atg, AttributeHelper.getAttributesValues(atg));
				defaultData.setToDefault();
//System.out.println("atg.getPid() = " + atg.getPid());
//System.out.println("atg.isValid() = " + atg.isValid());
//System.out.println("defaultData = " + defaultData);
				fillData(defaultData, defaultParameter.getDataAnddataListAndDataField());
				if(!defaultData.isDefined()) {
					throw new IllegalStateException(
							"Default-Parameter-Datensatz mit der ATG '" + atg.getPid() + "' am Konfigurationsobjekt '" + systemObject.getPidOrNameOrId()
							+ "' ist nicht vollständig definiert."
					);
				}
				// aus dem Data ein byte-Array machen
				final ByteArrayOutputStream out = new ByteArrayOutputStream();
				final Serializer serializer;
				try {
					serializer = SerializingFactory.createSerializer(3, out);
				}
				catch(NoSuchVersionException e) {
					throw new IOException("Serialisierer konnte nicht in der gewünschten Version erstellt werden");
				}
				serializer.writeData(defaultData);
				final byte[] bytes = out.toByteArray();

				item.getUnscaledValue("serialisierer").set(serializer.getVersion());
				final Data.Array datasetArray = item.getArray("datensatz");
				datasetArray.setLength(bytes.length);
				for(int j = 0; j < bytes.length; j++) {
					datasetArray.getScaledValue(j).set(bytes[j]);
				}
			}
		}
		else {
			// Keine Default-Parameterdatensätze in der Versorgungsdatei vorhanden führt zum Löschen des Datensatzes
			data = null;
		}
		// Datensatz speichern
		systemObject.setConfigurationData(attributeGroup, data);
	}