@Override public void importIdentifiers(ValueTable sourceValueTable) throws IOException { ValueTable identifiersTable = identifiersTableService.ensureIdentifiersTable(sourceValueTable.getEntityType()); ImmutableSet.Builder<String> builder = ImmutableSet.builder(); builder.addAll( Iterables.transform( sourceValueTable.getVariableEntities(), new Function<VariableEntity, String>() { @Override public String apply(VariableEntity input) { return input.getIdentifier(); } })); ValueTable sourceIdentifiersTable = new StaticValueTable( sourceValueTable.getDatasource(), identifiersTable.getName(), builder.build(), identifiersTable.getEntityType()); // Don't copy null values otherwise, we'll delete existing mappings DatasourceCopier.Builder.newCopier() .dontCopyNullValues() .withLoggingListener() .build() .copy(sourceIdentifiersTable, identifiersTableService.getDatasource()); }
@Override public void copyIdentifiers(ValueTable identifiersValueTable) throws IOException { ValueTable destinationIdentifiersTable = identifiersTableService.ensureIdentifiersTable(identifiersValueTable.getEntityType()); ValueTable sourceIdentifiersTable = identifiersValueTable; if (!destinationIdentifiersTable.getName().equals(identifiersValueTable.getName())) { sourceIdentifiersTable = new RenameValueTable(destinationIdentifiersTable.getName(), identifiersValueTable); } // Don't copy null values otherwise, we'll delete existing mappings DatasourceCopier.Builder.newCopier() .dontCopyNullValues() .withLoggingListener() .build() .copy(sourceIdentifiersTable, identifiersTableService.getDatasource()); }
@Override public int importIdentifiers( @NotNull IdentifiersMapping idMapping, @NotNull IdentifierGenerator pIdentifier) { IdentifierGenerator localParticipantIdentifier = pIdentifier == null ? participantIdentifier : pIdentifier; ValueTable identifiersTable = identifiersTableService.ensureIdentifiersTable(idMapping.getEntityType()); Variable variable = identifiersTableService.ensureIdentifiersMapping(idMapping); PrivateVariableEntityMap entityMap = new OpalPrivateVariableEntityMap(identifiersTable, variable, localParticipantIdentifier); List<VariableEntity> systemEntities = StreamSupport.stream( new IdentifiersMaps(identifiersTable, idMapping.getName()).spliterator(), true) // .filter(unitId -> !unitId.hasPrivateIdentifier()) // .map(IdentifiersMaps.IdentifiersMap::getSystemEntity) // .collect(Collectors.toList()); entityMap.createPrivateEntities(systemEntities); return systemEntities.size(); }
private void importIdentifiers( @NotNull IdentifiersMapping idMapping, ValueTable sourceTable, @Nullable String select) { Variable variable = identifiersTableService.ensureIdentifiersMapping(idMapping); String selectScript = select == null // ? variable.hasAttribute("select") ? variable.getAttributeStringValue("select") : null // : select; ValueTable sourceIdentifiersTable = identifierService.createPrivateView(sourceTable.getName(), sourceTable, selectScript); Variable identifierVariable = identifierService.createIdentifierVariable(sourceIdentifiersTable, idMapping); PrivateVariableEntityMap entityMap = new OpalPrivateVariableEntityMap( identifiersTableService.getIdentifiersTable(idMapping.getEntityType()), identifierVariable, participantIdentifier); try (ValueTableWriter identifiersTableWriter = identifiersTableService.createIdentifiersTableWriter(idMapping.getEntityType())) { for (VariableEntity privateEntity : sourceIdentifiersTable.getVariableEntities()) { if (entityMap.publicEntity(privateEntity) == null) { entityMap.createPublicEntity(privateEntity); } identifierService.copyParticipantIdentifiers( entityMap.publicEntity(privateEntity), sourceIdentifiersTable, entityMap, identifiersTableWriter); } } }