Skip to content

Commit

Permalink
feat: Added toString on all args classes
Browse files Browse the repository at this point in the history
  • Loading branch information
jruaux committed Jul 19, 2024
1 parent 3262849 commit f848c06
Show file tree
Hide file tree
Showing 21 changed files with 179 additions and 61 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,10 @@ public DataSource dataSource() {
return properties.initializeDataSourceBuilder().build();
}

@Override
public String toString() {
return "DataSourceArgs [driver=" + driver + ", url=" + url + ", username=" + username + ", password=" + password
+ "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -130,4 +130,12 @@ public void setSql(String sql) {
this.sql = sql;
}

@Override
public String toString() {
return "DatabaseReaderArgs [dataSourceArgs=" + dataSourceArgs + ", sql=" + sql + ", maxItemCount="
+ maxItemCount + ", fetchSize=" + fetchSize + ", maxRows=" + maxRows + ", queryTimeout=" + queryTimeout
+ ", useSharedExtendedConnection=" + useSharedExtendedConnection + ", verifyCursorPosition="
+ verifyCursorPosition + "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,10 @@ public void setDataSourceArgs(DataSourceArgs dataSourceArgs) {
this.dataSourceArgs = dataSourceArgs;
}

@Override
public String toString() {
return "DatabaseWriterArgs [dataSourceArgs=" + dataSourceArgs + ", sql=" + sql + ", assertUpdates="
+ assertUpdates + "]";
}

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package com.redis.riot.file;

import java.net.MalformedURLException;
import java.net.URI;

import org.springframework.core.io.Resource;
import org.springframework.core.io.UrlResource;
import org.springframework.util.StringUtils;

import io.awspring.cloud.s3.InMemoryBufferingS3OutputStreamProvider;
Expand All @@ -23,7 +21,7 @@
public class AwsArgs {

@ArgGroup(exclusive = false)
private AwsCredentialsArgs credentialsArgs;
private AwsCredentialsArgs credentialsArgs = new AwsCredentialsArgs();

@Option(names = "--s3-region", description = "Region to use for the AWS client (e.g. us-west-1).", paramLabel = "<name>")
private Region region;
Expand Down Expand Up @@ -80,7 +78,9 @@ public void setEndpoint(URI endpoint) {
this.endpoint = endpoint;
}

public static void main(String[] args) throws MalformedURLException {
new UrlResource("s3://riot-bucket-jrx/beers.json");
@Override
public String toString() {
return "AwsArgs [credentialsArgs=" + credentialsArgs + ", region=" + region + ", endpoint=" + endpoint + "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,9 @@ public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}

@Override
public String toString() {
return "AwsCredentialsArgs [accessKey=" + accessKey + ", secretKey=" + secretKey + "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@

import org.springframework.core.io.Resource;

import picocli.CommandLine.ArgGroup;
import picocli.CommandLine.Option;

public class FileReaderArgs extends FileArgs {
public class FileReaderArgs {

public static final String DEFAULT_CONTINUATION_STRING = "\\";
public static final int DEFAULT_MAX_ITEM_COUNT = Integer.MAX_VALUE;
Expand All @@ -36,11 +37,13 @@ public class FileReaderArgs extends FileArgs {
@Option(names = "--max", description = "Max number of lines to import.", paramLabel = "<count>")
private int maxItemCount = DEFAULT_MAX_ITEM_COUNT;

@Override
@ArgGroup(exclusive = false)
private FileArgs fileArgs = new FileArgs();

public Resource resource(String location) throws IOException {
Resource resource = super.resource(location);
Resource resource = fileArgs.resource(location);
InputStream inputStream = resource.getInputStream();
if (isGzipped() || FileUtils.isGzip(location)) {
if (fileArgs.isGzipped() || FileUtils.isGzip(location)) {
return new FilenameInputStreamResource(new GZIPInputStream(inputStream), resource.getFilename(),
resource.getDescription());
}
Expand Down Expand Up @@ -103,4 +106,19 @@ public void setMaxItemCount(int maxItemCount) {
this.maxItemCount = maxItemCount;
}

public FileArgs getFileArgs() {
return fileArgs;
}

public void setFileArgs(FileArgs fileArgs) {
this.fileArgs = fileArgs;
}

@Override
public String toString() {
return "FileReaderArgs [columnRanges=" + columnRanges + ", continuationString=" + continuationString
+ ", fields=" + fields + ", headerLine=" + headerLine + ", includedFields=" + includedFields
+ ", linesToSkip=" + linesToSkip + ", maxItemCount=" + maxItemCount + ", fileArgs=" + fileArgs + "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ private <T> LineMapper<T> lineMapper(Class<T> itemType) {
private DelimitedLineTokenizer delimitedLineTokenizer(String delimiter) {
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
tokenizer.setDelimiter(delimiter);
tokenizer.setQuoteCharacter(args.getQuoteCharacter());
tokenizer.setQuoteCharacter(args.getFileArgs().getQuoteCharacter());
if (!ObjectUtils.isEmpty(args.getIncludedFields())) {
tokenizer.setIncludedFields(args.getIncludedFields().stream().mapToInt(Integer::intValue).toArray());
}
Expand All @@ -85,7 +85,7 @@ private DelimitedLineTokenizer delimitedLineTokenizer(String delimiter) {

private FlatFileItemReader<Map<String, Object>> flatFileReader(Resource resource, AbstractLineTokenizer tokenizer) {
if (ObjectUtils.isEmpty(args.getFields())) {
Assert.isTrue(args.isHeader(),
Assert.isTrue(args.getFileArgs().isHeader(),
String.format("Could not create reader for file '%s': no header or field names specified",
resource.getFilename()));
} else {
Expand All @@ -102,8 +102,8 @@ private <T> FlatFileItemReaderBuilder<T> flatFileReader(Resource resource) {
FlatFileItemReaderBuilder<T> builder = new FlatFileItemReaderBuilder<>();
builder.resource(resource);
builder.maxItemCount(args.getMaxItemCount());
if (args.getEncoding() != null) {
builder.encoding(args.getEncoding());
if (args.getFileArgs().getEncoding() != null) {
builder.encoding(args.getFileArgs().getEncoding());
}
builder.recordSeparatorPolicy(recordSeparatorPolicy());
builder.linesToSkip(linesToSkip());
Expand Down Expand Up @@ -159,8 +159,8 @@ private <T> JsonItemReader<T> jsonReader(Resource resource, Class<T> itemType) {
}

private String delimiter(Resource resource) {
if (args.getDelimiter() != null) {
return args.getDelimiter();
if (args.getFileArgs().getDelimiter() != null) {
return args.getFileArgs().getDelimiter();
}
String extension = FileUtils.fileExtension(resource);
if (extension == null) {
Expand All @@ -177,7 +177,8 @@ private String delimiter(Resource resource) {
}

private RecordSeparatorPolicy recordSeparatorPolicy() {
return new DefaultRecordSeparatorPolicy(String.valueOf(args.getQuoteCharacter()), args.getContinuationString());
return new DefaultRecordSeparatorPolicy(String.valueOf(args.getFileArgs().getQuoteCharacter()),
args.getContinuationString());
}

private int headerIndex() {
Expand All @@ -191,7 +192,7 @@ private int linesToSkip() {
if (args.getLinesToSkip() != null) {
return args.getLinesToSkip();
}
if (args.isHeader()) {
if (args.getFileArgs().isHeader()) {
return 1;
}
return 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@

import com.google.cloud.spring.core.GcpScope;

import picocli.CommandLine.ArgGroup;
import picocli.CommandLine.Option;

public class FileWriterArgs extends FileArgs {
public class FileWriterArgs {

public static final String DEFAULT_LINE_SEPARATOR = System.getProperty("line.separator");
public static final String DEFAULT_ELEMENT_NAME = "record";
Expand Down Expand Up @@ -47,20 +48,24 @@ public class FileWriterArgs extends FileArgs {
@Option(names = "--transactional", description = "Delay writing to the buffer if a transaction is active.", negatable = true, defaultValue = "true", fallbackValue = "true")
private boolean transactional = DEFAULT_TRANSACTIONAL;

public FileWriterArgs() {
getGoogleStorageArgs().setScope(GcpScope.STORAGE_READ_WRITE);
@ArgGroup(exclusive = false)
private FileArgs fileArgs = defaultFileArgs();

public static FileArgs defaultFileArgs() {
FileArgs fileArgs = new FileArgs();
fileArgs.getGoogleStorageArgs().setScope(GcpScope.STORAGE_READ_WRITE);
return fileArgs;
}

@Override
public WritableResource resource(String location) throws IOException {
if (location == null) {
return new SystemOutResource();
}
Resource resource = super.resource(location);
Resource resource = fileArgs.resource(location);
Assert.notNull(resource, "Could not resolve file " + location);
Assert.isInstanceOf(WritableResource.class, resource);
WritableResource writableResource = (WritableResource) resource;
if (isGzipped() || FileUtils.isGzip(location)) {
if (fileArgs.isGzipped() || FileUtils.isGzip(location)) {
OutputStream outputStream = writableResource.getOutputStream();
return new OutputStreamResource(new GZIPOutputStream(outputStream), resource.getFilename(),
resource.getDescription());
Expand Down Expand Up @@ -140,4 +145,20 @@ public void setTransactional(boolean transactional) {
this.transactional = transactional;
}

public FileArgs getFileArgs() {
return fileArgs;
}

public void setFileArgs(FileArgs fileArgs) {
this.fileArgs = fileArgs;
}

@Override
public String toString() {
return "FileWriterArgs [formatterString=" + formatterString + ", append=" + append + ", forceSync=" + forceSync
+ ", rootName=" + rootName + ", elementName=" + elementName + ", lineSeparator=" + lineSeparator
+ ", shouldDeleteIfEmpty=" + shouldDeleteIfEmpty + ", shouldDeleteIfExists=" + shouldDeleteIfExists
+ ", transactional=" + transactional + ", fileArgs=" + fileArgs + "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ private <T> JsonFileItemWriter<T> jsonWriter(WritableResource resource) {
JsonFileItemWriterBuilder<T> writer = new JsonFileItemWriterBuilder<>();
writer.name(resource.getFilename());
writer.append(args.isAppend());
writer.encoding(args.getEncoding());
writer.encoding(args.getFileArgs().getEncoding());
writer.lineSeparator(args.getLineSeparator());
writer.resource(resource);
writer.saveState(false);
Expand All @@ -79,7 +79,7 @@ private <T> XmlResourceItemWriter<T> xmlWriter(WritableResource resource) {
XmlResourceItemWriterBuilder<T> writer = new XmlResourceItemWriterBuilder<>();
writer.name(resource.getFilename());
writer.append(args.isAppend());
writer.encoding(args.getEncoding());
writer.encoding(args.getFileArgs().getEncoding());
writer.lineSeparator(args.getLineSeparator());
writer.rootName(args.getRootName());
writer.resource(resource);
Expand All @@ -94,16 +94,16 @@ private ItemWriter<Map<String, Object>> delimitedWriter(WritableResource resourc
Supplier<Map<String, Object>> headerSupplier) {
FlatFileItemWriterBuilder<Map<String, Object>> writer = flatFileWriter(resource);
DelimitedBuilder<Map<String, Object>> delimitedBuilder = writer.delimited();
delimitedBuilder.delimiter(args.getDelimiter());
delimitedBuilder.delimiter(args.getFileArgs().getDelimiter());
delimitedBuilder.fieldExtractor(new PassThroughFieldExtractor<>());
delimitedBuilder.quoteCharacter(String.valueOf(args.getQuoteCharacter()));
delimitedBuilder.quoteCharacter(String.valueOf(args.getFileArgs().getQuoteCharacter()));
return writer(writer, delimitedBuilder.build(), headerSupplier);
}

private FlatFileItemWriter<Map<String, Object>> writer(FlatFileItemWriterBuilder<Map<String, Object>> writer,
LineAggregator<Map<String, Object>> lineAggregator, Supplier<Map<String, Object>> headerSupplier) {
writer.lineAggregator(lineAggregator);
if (args.isHeader()) {
if (args.getFileArgs().isHeader()) {
Map<String, Object> headerRecord = headerSupplier.get();
if (CollectionUtils.isEmpty(headerRecord)) {
log.warn("Could not determine header");
Expand Down Expand Up @@ -132,7 +132,7 @@ private <T> FlatFileItemWriterBuilder<T> flatFileWriter(WritableResource resourc
builder.name(resource.getFilename());
builder.resource(resource);
builder.append(args.isAppend());
builder.encoding(args.getEncoding());
builder.encoding(args.getFileArgs().getEncoding());
builder.forceSync(args.isForceSync());
builder.lineSeparator(args.getLineSeparator());
builder.saveState(false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,10 @@ public Resource resource(String location) throws IOException {
return new GoogleStorageResource(builder.build().getService(), location);
}

@Override
public String toString() {
return "GoogleStorageArgs [keyFile=" + keyFile + ", projectId=" + projectId + ", encodedKey=" + encodedKey
+ ", scope=" + scope + "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -158,4 +158,12 @@ public boolean isStacktrace() {
return level().toInt() <= Level.INFO.toInt();
}

@Override
public String toString() {
return "LoggingArgs [file=" + file + ", showDateTime=" + showDateTime + ", dateTimeFormat=" + dateTimeFormat
+ ", showThreadId=" + showThreadId + ", showThreadName=" + showThreadName + ", showLogName="
+ showLogName + ", showShortLogName=" + showShortLogName + ", levelInBrackets=" + levelInBrackets
+ ", levels=" + levels + ", debug=" + debug + ", info=" + info + ", quiet=" + quiet + "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,9 @@ public void setUpdateInterval(long interval) {
this.updateInterval = interval;
}

@Override
public String toString() {
return "ProgressArgs [style=" + style + ", updateInterval=" + updateInterval + "]";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,8 @@ public void setVars(Map<String, Object> variables) {

@Override
public String toString() {
return "EvaluationContextArgs [varExpressions=" + varExpressions + ", dateFormat=" + dateFormat + ", vars="
+ vars + "]";
return "EvaluationContextArgs [varExpressions=" + varExpressions + ", dateFormat=" + dateFormat
+ ", numberFormat=" + numberFormat + ", vars=" + vars + "]";
}

}
15 changes: 15 additions & 0 deletions plugins/riot/src/main/java/com/redis/riot/GenerateArgs.java
Original file line number Diff line number Diff line change
Expand Up @@ -337,4 +337,19 @@ private MapOptions mapOptions(Range fieldCount, Range fieldLength) {
options.setFieldLength(fieldLength);
return options;
}

@Override
public String toString() {
return "GenerateArgs [count=" + count + ", keyspace=" + keyspace + ", keyRange=" + keyRange + ", types=" + types
+ ", expiration=" + expiration + ", hashFieldCount=" + hashFieldCount + ", hashFieldLength="
+ hashFieldLength + ", jsonFieldCount=" + jsonFieldCount + ", jsonFieldLength=" + jsonFieldLength
+ ", listMemberCount=" + listMemberCount + ", listMemberRange=" + listMemberRange + ", setMemberCount="
+ setMemberCount + ", setMemberLength=" + setMemberLength + ", streamMessageCount=" + streamMessageCount
+ ", streamFieldCount=" + streamFieldCount + ", streamFieldLength=" + streamFieldLength
+ ", stringLength=" + stringLength + ", timeseriesSampleCount=" + timeseriesSampleCount
+ ", timeseriesStartTime=" + timeseriesStartTime + ", zsetMemberCount=" + zsetMemberCount
+ ", zsetMemberLength=" + zsetMemberLength + ", zsetScore=" + zsetScore + "]";
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -112,4 +112,11 @@ public void setPrune(boolean prune) {
this.prune = prune;
}

@Override
public String toString() {
return "KeyValueProcessorArgs [keyExpression=" + keyExpression + ", typeExpression=" + typeExpression
+ ", ttlExpression=" + ttlExpression + ", propagateTtl=" + propagateTtl + ", propagateIds="
+ propagateIds + ", prune=" + prune + "]";
}

}
Loading

0 comments on commit f848c06

Please sign in to comment.