10 changed files with 127 additions and 43 deletions
@ -0,0 +1,23 @@ |
|||
package org.thingsboard.server.service.sync.vc.data; |
|||
|
|||
import org.thingsboard.server.common.data.EntityType; |
|||
import org.thingsboard.server.common.data.sync.ie.EntityExportSettings; |
|||
import org.thingsboard.server.common.data.sync.vc.request.create.ComplexVersionCreateRequest; |
|||
import org.thingsboard.server.service.security.model.SecurityUser; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
public class ComplexEntitiesExportCtx extends EntitiesExportCtx<ComplexVersionCreateRequest> { |
|||
|
|||
private final Map<EntityType, EntityExportSettings> settings = new HashMap<>(); |
|||
|
|||
public ComplexEntitiesExportCtx(SecurityUser user, CommitGitRequest commit, ComplexVersionCreateRequest request) { |
|||
super(user, commit, request); |
|||
request.getEntityTypes().forEach((type, config) -> settings.put(type, buildExportSettings(config))); |
|||
} |
|||
|
|||
public EntityExportSettings getSettings(EntityType entityType) { |
|||
return settings.get(entityType); |
|||
} |
|||
} |
|||
@ -0,0 +1,37 @@ |
|||
package org.thingsboard.server.service.sync.vc.data; |
|||
|
|||
import com.google.common.util.concurrent.ListenableFuture; |
|||
import lombok.Data; |
|||
import org.thingsboard.server.common.data.id.TenantId; |
|||
import org.thingsboard.server.common.data.sync.ie.EntityExportSettings; |
|||
import org.thingsboard.server.common.data.sync.vc.request.create.VersionCreateConfig; |
|||
import org.thingsboard.server.common.data.sync.vc.request.create.VersionCreateRequest; |
|||
import org.thingsboard.server.service.security.model.SecurityUser; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
public class EntitiesExportCtx<R extends VersionCreateRequest> { |
|||
|
|||
protected final SecurityUser user; |
|||
protected final CommitGitRequest commit; |
|||
protected final R request; |
|||
private final List<ListenableFuture<Void>> futures = new ArrayList<>(); |
|||
|
|||
public void add(ListenableFuture<Void> future) { |
|||
futures.add(future); |
|||
} |
|||
|
|||
public TenantId getTenantId() { |
|||
return user.getTenantId(); |
|||
} |
|||
|
|||
protected static EntityExportSettings buildExportSettings(VersionCreateConfig config) { |
|||
return EntityExportSettings.builder() |
|||
.exportRelations(config.isSaveRelations()) |
|||
.exportAttributes(config.isSaveAttributes()) |
|||
.exportCredentials(config.isSaveCredentials()) |
|||
.build(); |
|||
} |
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
package org.thingsboard.server.service.sync.vc.data; |
|||
|
|||
import lombok.Getter; |
|||
import org.thingsboard.server.common.data.sync.ie.EntityExportSettings; |
|||
import org.thingsboard.server.common.data.sync.vc.request.create.SingleEntityVersionCreateRequest; |
|||
import org.thingsboard.server.service.security.model.SecurityUser; |
|||
|
|||
public class SimpleEntitiesExportCtx extends EntitiesExportCtx<SingleEntityVersionCreateRequest> { |
|||
|
|||
@Getter |
|||
private final EntityExportSettings settings; |
|||
|
|||
public SimpleEntitiesExportCtx(SecurityUser user, CommitGitRequest commit, SingleEntityVersionCreateRequest request) { |
|||
super(user, commit, request); |
|||
this.settings = request != null ? buildExportSettings(request.getConfig()) : null; |
|||
} |
|||
} |
|||
Loading…
Reference in new issue