Start to factor out transformation of arguments into configuration

git-svn-id: https://svn.apache.org/repos/asf/creadur/tentacles/trunk@1462720 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/creadur/tentacles/Configuration.java b/src/main/java/org/apache/creadur/tentacles/Configuration.java
new file mode 100644
index 0000000..9711941
--- /dev/null
+++ b/src/main/java/org/apache/creadur/tentacles/Configuration.java
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ *  to you 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 org.apache.creadur.tentacles;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+public class Configuration {
+
+    private static final int ARGUMENT_INDEX_FOR_URI_CONFIGURATION = 0;
+
+    private static URI toURI(final String arg) throws URISyntaxException {
+        final URI uri = new URI(arg);
+        if (arg.startsWith("file:")) {
+            return new File(uri).getAbsoluteFile().toURI();
+        }
+        return uri;
+    }
+
+
+    private final URI staging;
+
+    public Configuration(final String... args) throws URISyntaxException {
+        this.staging = toURI(args[ARGUMENT_INDEX_FOR_URI_CONFIGURATION]);
+    }
+
+    public URI getStaging() {
+        return staging;
+    }
+
+}
diff --git a/src/main/java/org/apache/creadur/tentacles/Main.java b/src/main/java/org/apache/creadur/tentacles/Main.java
index 5f73695..e351795 100644
--- a/src/main/java/org/apache/creadur/tentacles/Main.java
+++ b/src/main/java/org/apache/creadur/tentacles/Main.java
@@ -63,10 +63,13 @@
     private String filter;
     private final NexusClient client = new NexusClient();
 
+    private final Configuration configuration;
 
-    public Main(String... args) throws Exception {
+    public Main(final String... args) throws Exception {
 
-        this.staging = getURI(args[0]);
+        configuration = new Configuration(args);
+
+        this.staging = configuration.getStaging();
 
         this.local = new File(rootDirectoryForLocalOutput(args));
 
@@ -102,15 +105,6 @@
         return rootDirectoryForLocal;
     }
 
-    private URI getURI(String arg) throws URISyntaxException {
-        final URI uri = new URI(arg);
-        if (arg.startsWith("file:")) {
-            File file = new File(uri);
-            file = file.getAbsoluteFile();
-            return file.toURI();
-        }
-        return uri;
-    }
 
     private void licenses(String s) throws IOException {
         URL aslURL = this.getClass().getClassLoader().getResource("licenses/" + s + ".txt");