Extract an interface to make sure that both ways of querying JIRA are kept in sync.

git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1379894 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/plugin/jira/JiraQueryBuilder.java b/src/main/java/org/apache/maven/plugin/jira/JiraQueryBuilder.java
new file mode 100644
index 0000000..0e9a6f7
--- /dev/null
+++ b/src/main/java/org/apache/maven/plugin/jira/JiraQueryBuilder.java
@@ -0,0 +1,56 @@
+package org.apache.maven.plugin.jira;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.plugin.logging.Log;
+
+/**
+ * An interface for building a search query for JIRA.
+ *
+ * @author Dennis Lundberg
+ * @version $Id$
+ * @since 2.8
+ */
+public interface JiraQueryBuilder
+{
+    String build();
+
+    JiraQueryBuilder components( String components );
+
+    JiraQueryBuilder filter( String filter );
+
+    JiraQueryBuilder fixVersion( String fixVersion );
+
+    JiraQueryBuilder fixVersionIds( String fixVersionIds );
+
+    Log getLog();
+
+    JiraQueryBuilder priorityIds( String priorityIds );
+
+    JiraQueryBuilder project( String project );
+
+    JiraQueryBuilder resolutionIds( String resolutionIds );
+
+    JiraQueryBuilder sortColumnNames( String sortColumnNames );
+
+    JiraQueryBuilder statusIds( String statusIds );
+
+    JiraQueryBuilder typeIds( String typeIds );
+}
diff --git a/src/main/java/org/apache/maven/plugin/jira/JqlQueryBuilder.java b/src/main/java/org/apache/maven/plugin/jira/JqlQueryBuilder.java
index 89dceba..795172f 100644
--- a/src/main/java/org/apache/maven/plugin/jira/JqlQueryBuilder.java
+++ b/src/main/java/org/apache/maven/plugin/jira/JqlQueryBuilder.java
@@ -30,9 +30,11 @@
  * Only a limited set of JQL is supported.
  *
  * @author ton.swieb@finalist.com
+ * @version $Id$
  * @since 2.8
  */
 public class JqlQueryBuilder
+    implements JiraQueryBuilder
 {
     /**
      * Log for debug output.
@@ -50,7 +52,7 @@
         this.log = log;
     }
 
-    public JqlQueryBuilder project( String project )
+    public JiraQueryBuilder project( String project )
     {
         addSingleValue( "project", project );
         return this;
@@ -63,43 +65,43 @@
      * @param fixVersionIds
      * @return
      */
-    public JqlQueryBuilder fixVersionIds( String fixVersionIds )
+    public JiraQueryBuilder fixVersionIds( String fixVersionIds )
     {
         addCommaSeparatedValues( "fixVersion", fixVersionIds );
         return this;
     }
 
-    public JqlQueryBuilder statusIds( String statusIds )
+    public JiraQueryBuilder statusIds( String statusIds )
     {
         addCommaSeparatedValues( "status", statusIds );
         return this;
     }
 
-    public JqlQueryBuilder priorityIds( String priorityIds )
+    public JiraQueryBuilder priorityIds( String priorityIds )
     {
         addCommaSeparatedValues( "priority", priorityIds );
         return this;
     }
 
-    public JqlQueryBuilder resolutionIds( String resolutionIds )
+    public JiraQueryBuilder resolutionIds( String resolutionIds )
     {
         addCommaSeparatedValues( "resolution", resolutionIds );
         return this;
     }
 
-    public JqlQueryBuilder components( String components )
+    public JiraQueryBuilder components( String components )
     {
         addCommaSeparatedValues( "component", components );
         return this;
     }
 
-    public JqlQueryBuilder typeIds( String typeIds )
+    public JiraQueryBuilder typeIds( String typeIds )
     {
         addCommaSeparatedValues( "type", typeIds );
         return this;
     }
 
-    public JqlQueryBuilder filter( String filter )
+    public JiraQueryBuilder filter( String filter )
     {
         this.filter = filter;
         return this;
@@ -112,13 +114,13 @@
      * @param fixVersion
      * @return
      */
-    public JqlQueryBuilder fixVersion( String fixVersion )
+    public JiraQueryBuilder fixVersion( String fixVersion )
     {
         addSingleValue( "fixVersion", fixVersion );
         return this;
     }
 
-    public JqlQueryBuilder sortColumnNames( String sortColumnNames )
+    public JiraQueryBuilder sortColumnNames( String sortColumnNames )
     {
         if ( sortColumnNames != null )
         {
diff --git a/src/main/java/org/apache/maven/plugin/jira/ParameterQueryBuilder.java b/src/main/java/org/apache/maven/plugin/jira/ParameterQueryBuilder.java
index cadfca3..963818a 100644
--- a/src/main/java/org/apache/maven/plugin/jira/ParameterQueryBuilder.java
+++ b/src/main/java/org/apache/maven/plugin/jira/ParameterQueryBuilder.java
@@ -29,9 +29,12 @@
  * JIRA 3.x way of constructing a search query based on URL parameters.
  * 
  * @author ton.swieb@finalist.com
+ * @version $Id$
  * @since 2.8
  */
-public class ParameterQueryBuilder {
+public class ParameterQueryBuilder
+    implements JiraQueryBuilder
+{
     /** Log for debug output. */
     protected Log log;
     private String filter = "";
@@ -78,7 +81,15 @@
         typeMap.put( "Sub-task", "7" );
     }
 
-    public ParameterQueryBuilder fixVersionIds( String fixVersionIds )
+    /**
+     * This method has no effect in this implementation.
+     */
+    public JiraQueryBuilder fixVersion( String fixVersion )
+    {
+        return this;
+    }
+
+    public JiraQueryBuilder fixVersionIds( String fixVersionIds )
     {
         // add fix versions
         if ( fixVersionIds != null )
@@ -96,7 +107,7 @@
         return this;
     }
 
-    public ParameterQueryBuilder statusIds( String statusIds )
+    public JiraQueryBuilder statusIds( String statusIds )
     {
         // get the Status Ids
         if ( statusIds != null )
@@ -129,7 +140,7 @@
         return this;
     }
 
-    public ParameterQueryBuilder priorityIds( String priorityIds )
+    public JiraQueryBuilder priorityIds( String priorityIds )
     {
         // get the Priority Ids
         if ( priorityIds != null )
@@ -150,7 +161,15 @@
         return this;
     }
 
-    public ParameterQueryBuilder resolutionIds( String resolutionIds )
+    /**
+     * This method has no effect in this implementation.
+     */
+    public JiraQueryBuilder project( String project )
+    {
+        return this;
+    }
+
+    public JiraQueryBuilder resolutionIds( String resolutionIds )
     {
         // get the Resolution Ids
         if ( resolutionIds != null )
@@ -171,7 +190,7 @@
         return this;
     }
 
-    public ParameterQueryBuilder components( String components )
+    public JiraQueryBuilder components( String components )
     {
         // add components
         if ( components != null )
@@ -190,7 +209,7 @@
         return this;
     }
 
-    public ParameterQueryBuilder typeIds( String typeIds )
+    public JiraQueryBuilder typeIds( String typeIds )
     {
         // get the Type Ids
         if ( typeIds != null )
@@ -210,7 +229,7 @@
         return this;
     }
 
-    public ParameterQueryBuilder sortColumnNames( String sortColumnNames )
+    public JiraQueryBuilder sortColumnNames( String sortColumnNames )
     {
         // get the Sort order
         int validSortColumnNames = 0;
@@ -312,7 +331,7 @@
         return this;
     }
 
-    public ParameterQueryBuilder filter( String filter )
+    public JiraQueryBuilder filter( String filter )
     {
         this.filter = filter;
         return this;