summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric Beust <cedric@beust.com>2015-03-11 09:01:58 -0700
committerCedric Beust <cedric@beust.com>2015-03-11 09:01:58 -0700
commit78c4431a617cc9d3c9561ef1b5f111febf15f720 (patch)
treeccfbc22df6d35f36aa9fe33b088156c52ef6773e
parent6c86beb7fdc16a6b02ea5591e0fbc9d35a3a646e (diff)
parentb55abbbe352028c09c37f0c37a9f4dfa099838b5 (diff)
downloadplatform_external_jcommander-78c4431a617cc9d3c9561ef1b5f111febf15f720.tar.gz
platform_external_jcommander-78c4431a617cc9d3c9561ef1b5f111febf15f720.tar.bz2
platform_external_jcommander-78c4431a617cc9d3c9561ef1b5f111febf15f720.zip
Merge pull request #189 from samvv/master
Added converters for URIs, URLs and Paths
-rw-r--r--src/main/java/com/beust/jcommander/converters/PathConverter.java37
-rw-r--r--src/main/java/com/beust/jcommander/converters/URIConverter.java45
-rw-r--r--src/main/java/com/beust/jcommander/converters/URLConverter.java46
-rw-r--r--src/test/java/com/beust/jcommander/args/ArgsConverter.java18
4 files changed, 145 insertions, 1 deletions
diff --git a/src/main/java/com/beust/jcommander/converters/PathConverter.java b/src/main/java/com/beust/jcommander/converters/PathConverter.java
new file mode 100644
index 0000000..b7fdafd
--- /dev/null
+++ b/src/main/java/com/beust/jcommander/converters/PathConverter.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (C) 2010 the original author or authors.
+ * See the notice.md file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.beust.jcommander.converters;
+
+import com.beust.jcommander.IStringConverter;
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+/**
+ * Convert a string into a path.
+ *
+ * @author samvv
+ */
+public class PathConverter implements IStringConverter<Path> {
+
+ public Path convert(String value) {
+ return Paths.get(value);
+ }
+
+}
diff --git a/src/main/java/com/beust/jcommander/converters/URIConverter.java b/src/main/java/com/beust/jcommander/converters/URIConverter.java
new file mode 100644
index 0000000..3473bf0
--- /dev/null
+++ b/src/main/java/com/beust/jcommander/converters/URIConverter.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (C) 2010 the original author or authors.
+ * See the notice.md file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.beust.jcommander.converters;
+
+import com.beust.jcommander.ParameterException;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * Convert a string into a URI.
+ *
+ * @author samvv
+ */
+public class URIConverter extends BaseConverter<URI> {
+
+ public URIConverter(String optionName) {
+ super(optionName);
+ }
+
+ public URI convert(String value) {
+ try {
+ return new URI(value);
+ } catch (URISyntaxException e) {
+ throw new ParameterException(getErrorString(value, "a RFC 2396 and RFC 2732 compliant URI"));
+ }
+ }
+
+}
diff --git a/src/main/java/com/beust/jcommander/converters/URLConverter.java b/src/main/java/com/beust/jcommander/converters/URLConverter.java
new file mode 100644
index 0000000..1f3734b
--- /dev/null
+++ b/src/main/java/com/beust/jcommander/converters/URLConverter.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (C) 2010 the original author or authors.
+ * See the notice.md file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.beust.jcommander.converters;
+
+import com.beust.jcommander.ParameterException;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * Convert a string into a URI.
+ *
+ * @author samvv
+ */
+public class URLConverter extends BaseConverter<URL> {
+
+ public URLConverter(String optionName) {
+ super(optionName);
+ }
+
+ public URL convert(String value) {
+ try {
+ return new URL(value);
+ } catch (MalformedURLException e) {
+ throw new ParameterException(
+ getErrorString(value, "a RFC 2396 and RFC 2732 compliant URL"));
+
+ }
+ }
+} \ No newline at end of file
diff --git a/src/test/java/com/beust/jcommander/args/ArgsConverter.java b/src/test/java/com/beust/jcommander/args/ArgsConverter.java
index 159ed78..677cf9b 100644
--- a/src/test/java/com/beust/jcommander/args/ArgsConverter.java
+++ b/src/test/java/com/beust/jcommander/args/ArgsConverter.java
@@ -20,16 +20,31 @@ package com.beust.jcommander.args;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.converters.FileConverter;
+import com.beust.jcommander.converters.PathConverter;
+import com.beust.jcommander.converters.URIConverter;
+import com.beust.jcommander.converters.URLConverter;
import java.io.File;
import java.math.BigDecimal;
+import java.net.URI;
+import java.net.URL;
+import java.nio.file.Path;
import java.util.List;
public class ArgsConverter {
@Parameter(names = "-file", converter = FileConverter.class)
public File file;
-
+
+ @Parameter(names = "-url", converter = URLConverter.class)
+ public URL url;
+
+ @Parameter(names = "-uri", converter = URIConverter.class)
+ public URI uri;
+
+ @Parameter(names = "-path", converter = PathConverter.class)
+ public Path path;
+
@Parameter(names = "-listStrings")
public List<String> listStrings;
@@ -38,4 +53,5 @@ public class ArgsConverter {
@Parameter(names = "-listBigDecimals")
public List<BigDecimal> listBigDecimals;
+
}