From 2aa99351e920f616e5e1e42ca47d745822e7e932 Mon Sep 17 00:00:00 2001 From: Isaac Parenteau Date: Thu, 13 Sep 2018 20:05:44 -0500 Subject: [PATCH] added converters --- .../converters/BooleanConverter.java | 21 ++++++++++++++++ .../converters/ByteArrayConverter.java | 14 +++++++++++ .../converters/DirectoryConverter.java | 14 +++++++++++ .../converters/DirectoryExistConverter.java | 25 +++++++++++++++++++ .../argparser/converters/DoubleConverter.java | 12 +++++++++ .../converters/FileExistConverter.java | 25 +++++++++++++++++++ .../argparser/converters/FloatConverter.java | 12 +++++++++ .../argparser/converters/LongConverter.java | 12 +++++++++ .../argparser/converters/ShortConverter.java | 12 +++++++++ 9 files changed, 147 insertions(+) create mode 100644 src/main/java/net/locusworks/argparser/converters/BooleanConverter.java create mode 100644 src/main/java/net/locusworks/argparser/converters/ByteArrayConverter.java create mode 100644 src/main/java/net/locusworks/argparser/converters/DirectoryConverter.java create mode 100644 src/main/java/net/locusworks/argparser/converters/DirectoryExistConverter.java create mode 100644 src/main/java/net/locusworks/argparser/converters/DoubleConverter.java create mode 100644 src/main/java/net/locusworks/argparser/converters/FileExistConverter.java create mode 100644 src/main/java/net/locusworks/argparser/converters/FloatConverter.java create mode 100644 src/main/java/net/locusworks/argparser/converters/LongConverter.java create mode 100644 src/main/java/net/locusworks/argparser/converters/ShortConverter.java diff --git a/src/main/java/net/locusworks/argparser/converters/BooleanConverter.java b/src/main/java/net/locusworks/argparser/converters/BooleanConverter.java new file mode 100644 index 0000000..2fcfd3a --- /dev/null +++ b/src/main/java/net/locusworks/argparser/converters/BooleanConverter.java @@ -0,0 +1,21 @@ +package net.locusworks.argparser.converters; + +import net.locusworks.argparser.interfaces.IParameterConverter; + +/** + * Converts a DataDiodeProperty value into a boolean value + * @author Isaac Parenteau + * + */ +public class BooleanConverter implements IParameterConverter { + + @Override + public Boolean convert(String value) { + if (value == null || value.trim().isEmpty()) return false; + + if (value.trim().toLowerCase().equals("yes")) return true; + + boolean retVal = Boolean.parseBoolean(value.trim()); + return retVal; + } +} diff --git a/src/main/java/net/locusworks/argparser/converters/ByteArrayConverter.java b/src/main/java/net/locusworks/argparser/converters/ByteArrayConverter.java new file mode 100644 index 0000000..7c9a140 --- /dev/null +++ b/src/main/java/net/locusworks/argparser/converters/ByteArrayConverter.java @@ -0,0 +1,14 @@ +package net.locusworks.argparser.converters; + +import java.nio.charset.StandardCharsets; + +import net.locusworks.argparser.interfaces.IParameterConverter; + +public class ByteArrayConverter implements IParameterConverter { + + @Override + public byte[] convert(String value) { + return value.getBytes(StandardCharsets.UTF_8); + } + +} diff --git a/src/main/java/net/locusworks/argparser/converters/DirectoryConverter.java b/src/main/java/net/locusworks/argparser/converters/DirectoryConverter.java new file mode 100644 index 0000000..935ad14 --- /dev/null +++ b/src/main/java/net/locusworks/argparser/converters/DirectoryConverter.java @@ -0,0 +1,14 @@ +package net.locusworks.argparser.converters; + +import java.io.File; + +import net.locusworks.argparser.interfaces.IParameterConverter; + +public class DirectoryConverter implements IParameterConverter { + + public File convert(String value) { + File file = new File(value); + return file; + } + +} diff --git a/src/main/java/net/locusworks/argparser/converters/DirectoryExistConverter.java b/src/main/java/net/locusworks/argparser/converters/DirectoryExistConverter.java new file mode 100644 index 0000000..e5d5c08 --- /dev/null +++ b/src/main/java/net/locusworks/argparser/converters/DirectoryExistConverter.java @@ -0,0 +1,25 @@ +package net.locusworks.argparser.converters; + +import java.io.File; + +import net.locusworks.argparser.interfaces.IParameterConverter; + +/** + * Converts a command line argument to a File with verification that the file + * exists and is a file nothing else + * @author Isaac Parenteau + * + */ +public class DirectoryExistConverter implements IParameterConverter{ + + @Override + public File convert(String value) { + File f = new File(value); + + if (!f.exists()) throw new IllegalArgumentException(value + " does not exist"); + if (!f.isDirectory()) throw new IllegalArgumentException(value + " is not a directory"); + + return new File(value); + } + +} diff --git a/src/main/java/net/locusworks/argparser/converters/DoubleConverter.java b/src/main/java/net/locusworks/argparser/converters/DoubleConverter.java new file mode 100644 index 0000000..e1988f6 --- /dev/null +++ b/src/main/java/net/locusworks/argparser/converters/DoubleConverter.java @@ -0,0 +1,12 @@ +package net.locusworks.argparser.converters; + +import net.locusworks.argparser.interfaces.IParameterConverter; + +public class DoubleConverter implements IParameterConverter { + + @Override + public Double convert(String value) { + return Double.parseDouble(value); + } + +} diff --git a/src/main/java/net/locusworks/argparser/converters/FileExistConverter.java b/src/main/java/net/locusworks/argparser/converters/FileExistConverter.java new file mode 100644 index 0000000..2d45c5e --- /dev/null +++ b/src/main/java/net/locusworks/argparser/converters/FileExistConverter.java @@ -0,0 +1,25 @@ +package net.locusworks.argparser.converters; + +import java.io.File; + +import net.locusworks.argparser.interfaces.IParameterConverter; + +/** + * Converts a command line argument to a File with verification that the file + * exists and is a file nothing else + * @author Isaac Parenteau + * + */ +public class FileExistConverter implements IParameterConverter{ + + @Override + public File convert(String value) { + File f = new File(value); + + if (!f.exists()) throw new IllegalArgumentException(value + " does not exist"); + if (!f.isFile()) throw new IllegalArgumentException(value + " is not a file"); + + return new File(value); + } + +} diff --git a/src/main/java/net/locusworks/argparser/converters/FloatConverter.java b/src/main/java/net/locusworks/argparser/converters/FloatConverter.java new file mode 100644 index 0000000..da6b7ba --- /dev/null +++ b/src/main/java/net/locusworks/argparser/converters/FloatConverter.java @@ -0,0 +1,12 @@ +package net.locusworks.argparser.converters; + +import net.locusworks.argparser.interfaces.IParameterConverter; + +public class FloatConverter implements IParameterConverter { + + @Override + public Float convert(String value) { + return Float.parseFloat(value); + } + +} diff --git a/src/main/java/net/locusworks/argparser/converters/LongConverter.java b/src/main/java/net/locusworks/argparser/converters/LongConverter.java new file mode 100644 index 0000000..606b9e9 --- /dev/null +++ b/src/main/java/net/locusworks/argparser/converters/LongConverter.java @@ -0,0 +1,12 @@ +package net.locusworks.argparser.converters; + +import net.locusworks.argparser.interfaces.IParameterConverter; + +public class LongConverter implements IParameterConverter { + + @Override + public Long convert(String value) { + return Long.parseLong(value); + } + +} diff --git a/src/main/java/net/locusworks/argparser/converters/ShortConverter.java b/src/main/java/net/locusworks/argparser/converters/ShortConverter.java new file mode 100644 index 0000000..4c30dd6 --- /dev/null +++ b/src/main/java/net/locusworks/argparser/converters/ShortConverter.java @@ -0,0 +1,12 @@ +package net.locusworks.argparser.converters; + +import net.locusworks.argparser.interfaces.IParameterConverter; + +public class ShortConverter implements IParameterConverter { + + @Override + public Short convert(String value) { + return Short.parseShort(value); + } + +}