/** * Erstellt dieses Objekt * * @param configurationArea Konfigurationsbereich * @param pid * @param typePid Objekt-Typ-Pid * @param objectName Objekt-name falls vorhanden * @param allConfigurationData Konfigurationsdaten * @param origId * @param origConfigAuthority * @throws MissingObjectException Falls der angegebene Typ nicht existiert oder nicht vom Typ * DynamicObjectType ist. * @throws ConfigurationChangeException Falls die Konfigurationsänderung nicht durchgeführt werden * konnte */ public void create( final ConfigurationArea configurationArea, final String pid, final String typePid, final String objectName, final Map<PidAttributeGroupUsage, Data> allConfigurationData, final long origId, final String origConfigAuthority) throws MissingObjectException, ConfigurationChangeException, MissingKExDaVAttributeGroupException { final SystemObject type = _connection.getDataModel().getObject(typePid); if (type == null) throw new MissingObjectException(type + " konnte nicht gefunden werden"); if (!(type instanceof DynamicObjectType)) { throw new MissingObjectException(type + " ist kein Typ für dynamische Objekte"); } final Map<PidAttributeGroupUsage, Data> map = new HashMap<PidAttributeGroupUsage, Data>(allConfigurationData); if (_connection.getDataModel().getAttributeGroup(Constants.Pids.AttributeGroupKExDaVConfigData) == null) { throw new MissingKExDaVAttributeGroupException(); } if (origConfigAuthority != null) { map.put( new PidAttributeGroupUsage( Constants.Pids.AttributeGroupKExDaVConfigData, Constants.Pids.AspectProperties), createProperties(origId, origConfigAuthority)); } final Collection<DataAndATGUsageInformation> dataList = convertConfigurationData(map); _manager.addMessage( Message.newInfo("Erstelle Objekt: " + (pid.length() == 0 ? '[' + origId + ']' : pid))); final DynamicObject dynamicObject = configurationArea.createDynamicObject((DynamicObjectType) type, pid, objectName, dataList); setWrappedObject(dynamicObject); }