package org.rakam.presto.analysis; import com.google.common.collect.ImmutableList; import com.google.common.base.Splitter; import io.airlift.configuration.Config; import java.net.URI; import java.util.List; public class PrestoConfig { private URI address; private String coldStorageConnector; private String hotStorageConnector; private String streamingConnector = "streaming"; private String userConnector = "user"; private String bulkConnector = "middleware"; private String checkpointColumn = "_shard_time"; private List<String> existingProjects; private boolean enableStreaming = true; @Config("presto.address") public PrestoConfig setAddress(URI address) { this.address = address; return this; } @Config("presto.user-connector") public PrestoConfig setUserConnector(String userConnector) { this.userConnector = userConnector; return this; } @Config("presto.existing-schemas") public PrestoConfig setExistingProjects(String existingProjects) { this.existingProjects = existingProjects != null ? ImmutableList.copyOf(Splitter.on(",").trimResults() .split(existingProjects)) : null; return this; } public List<String> getExistingProjects() { return existingProjects; } @Config("presto.bulk-connector") public PrestoConfig setBulkConnector(String bulkConnector) { this.bulkConnector = bulkConnector; return this; } public String getUserConnector() { return userConnector; } public URI getAddress() { return address; } @Config("presto.cold-storage-connector") public PrestoConfig setColdStorageConnector(String coldStorageConnector) { this.coldStorageConnector = coldStorageConnector; return this; } @Config("presto.streaming-connector") public PrestoConfig setStreamingConnector(String connectorName) { this.streamingConnector = connectorName; return this; } @Config("presto.checkpoint-column") public PrestoConfig setCheckpointColumn(String checkpointColumn) { this.checkpointColumn = checkpointColumn; return this; } public String getCheckpointColumn() { return checkpointColumn; } public String getStreamingConnector() { return streamingConnector; } public String getColdStorageConnector() { return coldStorageConnector; } @Config("presto.hot-storage-connector") public PrestoConfig setHotStorageConnector(String streamConnectorName) { this.hotStorageConnector = streamConnectorName; return this; } @Config("presto.enable-streaming") public PrestoConfig setEnableStreaming(boolean enableStreaming) { this.enableStreaming = enableStreaming; return this; } public boolean getEnableStreaming() { return enableStreaming; } public String getHotStorageConnector() { return hotStorageConnector; } public String getBulkConnector() { return bulkConnector; } }