00bb66
From 3258e4276bd13f3c9cd45ddf416e77b9732f079a Mon Sep 17 00:00:00 2001
00bb66
From: "Endi S. Dewata" <edewata@redhat.com>
00bb66
Date: Mon, 2 Oct 2017 17:44:02 +0200
00bb66
Subject: [PATCH] Added getter methods for JDAPFilter classes.
00bb66
00bb66
Some JDAPFilter classes have been modified to provide getter
00bb66
methods to access the elements of parsed LDAP filters.
00bb66
00bb66
Eclipse project files have been added to simplify development
00bb66
using Eclipse.
00bb66
00bb66
The LDAPUrl has been modified to fix complie error in Eclipse.
00bb66
00bb66
Some unused import statements have been removed as well.
00bb66
00bb66
https://bugzilla.mozilla.org/show_bug.cgi?id=1376300
00bb66
---
00bb66
 .classpath                                         | 11 +++++
00bb66
 .project                                           | 17 ++++++++
00bb66
 java-sdk/ietfldap/org/ietf/ldap/LDAPUrl.java       |  2 +-
00bb66
 java-sdk/ldapjdk/netscape/ldap/client/JDAPAVA.java |  2 -
00bb66
 .../netscape/ldap/client/JDAPBERTagDecoder.java    |  1 -
00bb66
 .../ldapjdk/netscape/ldap/client/JDAPFilter.java   |  1 -
00bb66
 .../netscape/ldap/client/JDAPFilterAVA.java        |  2 -
00bb66
 .../netscape/ldap/client/JDAPFilterAnd.java        |  2 -
00bb66
 .../ldap/client/JDAPFilterApproxMatch.java         |  2 -
00bb66
 .../ldap/client/JDAPFilterEqualityMatch.java       |  2 -
00bb66
 .../netscape/ldap/client/JDAPFilterExtensible.java |  2 -
00bb66
 .../ldap/client/JDAPFilterGreaterOrEqual.java      |  2 -
00bb66
 .../ldap/client/JDAPFilterLessOrEqual.java         |  2 -
00bb66
 .../netscape/ldap/client/JDAPFilterNot.java        | 12 ++++--
00bb66
 .../ldapjdk/netscape/ldap/client/JDAPFilterOr.java |  4 +-
00bb66
 .../netscape/ldap/client/JDAPFilterPresent.java    | 10 ++++-
00bb66
 .../netscape/ldap/client/JDAPFilterSet.java        | 10 ++++-
00bb66
 .../netscape/ldap/client/JDAPFilterSubString.java  | 50 +++++++++++++++++++---
00bb66
 18 files changed, 100 insertions(+), 34 deletions(-)
00bb66
 create mode 100644 .classpath
00bb66
 create mode 100644 .project
00bb66
00bb66
diff --git a/.classpath b/.classpath
00bb66
new file mode 100644
00bb66
index 0000000..426c9dd
00bb66
--- /dev/null
00bb66
+++ b/.classpath
00bb66
@@ -0,0 +1,11 @@
00bb66
+
00bb66
+<classpath>
00bb66
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
00bb66
+	<classpathentry excluding="tools/" kind="src" path="java-sdk/ietfldap"/>
00bb66
+	<classpathentry kind="src" path="java-sdk/ldapbeans"/>
00bb66
+	<classpathentry kind="src" path="java-sdk/ldapfilter"/>
00bb66
+	<classpathentry kind="src" path="java-sdk/ldapjdk"/>
00bb66
+	<classpathentry kind="src" path="java-sdk/ldapsp"/>
00bb66
+	<classpathentry kind="lib" path="/usr/lib/java/jss4.jar"/>
00bb66
+	<classpathentry kind="output" path="bin"/>
00bb66
+</classpath>
00bb66
diff --git a/.project b/.project
00bb66
new file mode 100644
00bb66
index 0000000..b6607c7
00bb66
--- /dev/null
00bb66
+++ b/.project
00bb66
@@ -0,0 +1,17 @@
00bb66
+
00bb66
+<projectDescription>
00bb66
+	<name>ldap-sdks</name>
00bb66
+	<comment></comment>
00bb66
+	<projects>
00bb66
+	</projects>
00bb66
+	<buildSpec>
00bb66
+		<buildCommand>
00bb66
+			<name>org.eclipse.jdt.core.javabuilder</name>
00bb66
+			<arguments>
00bb66
+			</arguments>
00bb66
+		</buildCommand>
00bb66
+	</buildSpec>
00bb66
+	<natures>
00bb66
+		<nature>org.eclipse.jdt.core.javanature</nature>
00bb66
+	</natures>
00bb66
+</projectDescription>
00bb66
diff --git a/java-sdk/ietfldap/org/ietf/ldap/LDAPUrl.java b/java-sdk/ietfldap/org/ietf/ldap/LDAPUrl.java
00bb66
index 5fcd70e..fd808de 100644
00bb66
--- a/java-sdk/ietfldap/org/ietf/ldap/LDAPUrl.java
00bb66
+++ b/java-sdk/ietfldap/org/ietf/ldap/LDAPUrl.java
00bb66
@@ -383,7 +383,7 @@ public class LDAPUrl implements java.io.Serializable {
00bb66
 
00bb66
             try {
00bb66
                 // then try Sun JSSESocketFactory
00bb66
-                _factory = new JSSESocketFactory(null);
00bb66
+                _factory = new JSSESocketFactory((String[])null);
00bb66
             }
00bb66
             catch (Throwable e) {
00bb66
             }
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPAVA.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPAVA.java
00bb66
index 6d16bd4..2cc4d76 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPAVA.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPAVA.java
00bb66
@@ -37,8 +37,6 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
-import java.io.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
 
00bb66
 /**
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPBERTagDecoder.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPBERTagDecoder.java
00bb66
index 94b69ca..5b87223 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPBERTagDecoder.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPBERTagDecoder.java
00bb66
@@ -37,7 +37,6 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
 import java.io.*;
00bb66
 
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilter.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilter.java
00bb66
index 366d49d..0e16fff 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilter.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilter.java
00bb66
@@ -39,7 +39,6 @@ package netscape.ldap.client;
00bb66
 
00bb66
 import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the filter.
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterAVA.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterAVA.java
00bb66
index bf80dbe..d31785d 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterAVA.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterAVA.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the attribute value assertion filter.
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterAnd.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterAnd.java
00bb66
index 0a47917..f780cfb 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterAnd.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterAnd.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the filter And.
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterApproxMatch.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterApproxMatch.java
00bb66
index 747f5ed..91ca4a0 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterApproxMatch.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterApproxMatch.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the approximate match filter.
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterEqualityMatch.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterEqualityMatch.java
00bb66
index c6e0bfe..6d891eb 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterEqualityMatch.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterEqualityMatch.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the equality match filter.
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterExtensible.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterExtensible.java
00bb66
index 2e83117..04c9710 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterExtensible.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterExtensible.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the extended match filter.
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterGreaterOrEqual.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterGreaterOrEqual.java
00bb66
index cbf066f..8aa7878 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterGreaterOrEqual.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterGreaterOrEqual.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the greater or equal filter.
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterLessOrEqual.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterLessOrEqual.java
00bb66
index 8368ad3..7b1b434 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterLessOrEqual.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterLessOrEqual.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the less or equal filter.
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterNot.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterNot.java
00bb66
index 4aabd66..e25ea14 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterNot.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterNot.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the filter not.
00bb66
@@ -66,6 +64,14 @@ public class JDAPFilterNot extends JDAPFilter {
00bb66
     }
00bb66
 
00bb66
     /**
00bb66
+     * Gets original filter.
00bb66
+     * @return original filter
00bb66
+     */
00bb66
+    public JDAPFilter getFilter() {
00bb66
+    	return m_filter;
00bb66
+    }
00bb66
+
00bb66
+    /**
00bb66
      * Gets ber representation of the filter.
00bb66
      * @return ber representation
00bb66
      */
00bb66
@@ -76,7 +82,7 @@ public class JDAPFilterNot extends JDAPFilter {
00bb66
     }
00bb66
 
00bb66
     /**
00bb66
-     * Gets string reprensetation of the filter.
00bb66
+     * Gets string representation of the filter.
00bb66
      * @return string representation
00bb66
      */
00bb66
     public String toString() {
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterOr.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterOr.java
00bb66
index 430760f..d624f01 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterOr.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterOr.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the filter And.
00bb66
@@ -59,7 +57,7 @@ public class JDAPFilterOr extends JDAPFilterSet {
00bb66
     }
00bb66
 
00bb66
     /**
00bb66
-     * Gets string reprensetation of the filter.
00bb66
+     * Gets string representation of the filter.
00bb66
      * @return string representation
00bb66
      */
00bb66
     public String toString() {
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterPresent.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterPresent.java
00bb66
index db408a2..796e14e 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterPresent.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterPresent.java
00bb66
@@ -37,9 +37,7 @@
00bb66
  * ***** END LICENSE BLOCK ***** */
00bb66
 package netscape.ldap.client;
00bb66
 
00bb66
-import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the filter present.
00bb66
@@ -66,6 +64,14 @@ public class JDAPFilterPresent extends JDAPFilter {
00bb66
     }
00bb66
 
00bb66
     /**
00bb66
+     * Gets attribute type.
00bb66
+     * @return attribute type
00bb66
+     */
00bb66
+    public String getType() {
00bb66
+    	return m_type;
00bb66
+    }
00bb66
+
00bb66
+    /**
00bb66
      * Gets ber representation of the filter.
00bb66
      * @return ber representation
00bb66
      */
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterSet.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterSet.java
00bb66
index 72a0098..5f5a71e 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterSet.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterSet.java
00bb66
@@ -51,7 +51,7 @@ public abstract class JDAPFilterSet extends JDAPFilter {
00bb66
      * Internal variables
00bb66
      */
00bb66
     private int m_tag;
00bb66
-    private Vector m_set = new Vector();
00bb66
+    private Vector<JDAPFilter> m_set = new Vector<>();
00bb66
 
00bb66
     /**
00bb66
      * Constructs the filter set.
00bb66
@@ -63,6 +63,14 @@ public abstract class JDAPFilterSet extends JDAPFilter {
00bb66
     }
00bb66
 
00bb66
     /**
00bb66
+     * Gets the filter set.
00bb66
+     * @return filter set
00bb66
+     */
00bb66
+     public Collection<JDAPFilter> getFilters() {
00bb66
+    	 return m_set;
00bb66
+     }
00bb66
+
00bb66
+    /**
00bb66
      * Adds filter into the filter set.
00bb66
      * @param filter adding filter
00bb66
      */
00bb66
diff --git a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterSubString.java b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterSubString.java
00bb66
index 129a8ec..b660082 100644
00bb66
--- a/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterSubString.java
00bb66
+++ b/java-sdk/ldapjdk/netscape/ldap/client/JDAPFilterSubString.java
00bb66
@@ -39,11 +39,10 @@ package netscape.ldap.client;
00bb66
 
00bb66
 import java.util.*;
00bb66
 import netscape.ldap.ber.stream.*;
00bb66
-import java.io.*;
00bb66
 
00bb66
 /**
00bb66
  * This class implements the filter substring.
00bb66
- * See RFC 1777.
00bb66
+ * See RFC 1777 and 2254.
00bb66
  * 
00bb66
  * [4] SEQUENCE {
00bb66
  *   type AttributeType,
00bb66
@@ -52,7 +51,12 @@ import java.io.*;
00bb66
  *     any [1] LDAPString,
00bb66
  *     final [2] LDAPString
00bb66
  *   }
00bb66
- *     }
00bb66
+ * }
00bb66
+ *
00bb66
+ * substring  = attr "=" [initial] any [final]
00bb66
+ * initial    = value
00bb66
+ * any        = "*" *(value "*")
00bb66
+ * final      = value
00bb66
  * 
00bb66
  *
00bb66
  * @version 1.0
00bb66
@@ -62,9 +66,9 @@ public class JDAPFilterSubString extends JDAPFilter {
00bb66
      * Internal variables
00bb66
      */
00bb66
     private String m_type = null;
00bb66
-    private Vector m_initial = new Vector();
00bb66
-    private Vector m_any = new Vector();
00bb66
-    private Vector m_final = new Vector();
00bb66
+    private Vector<String> m_initial = new Vector<>();
00bb66
+    private Vector<String> m_any = new Vector<>();
00bb66
+    private Vector<String> m_final = new Vector<>();
00bb66
 
00bb66
     /**
00bb66
      * Constructs the filter.
00bb66
@@ -76,6 +80,23 @@ public class JDAPFilterSubString extends JDAPFilter {
00bb66
     }
00bb66
 
00bb66
     /**
00bb66
+     * Get attribute type.
00bb66
+     * @return attribute type
00bb66
+     */
00bb66
+    public String getType() {
00bb66
+    	return m_type;
00bb66
+    }
00bb66
+
00bb66
+    /**
00bb66
+     * Get initial substring.
00bb66
+     * @return initial substring.
00bb66
+     */
00bb66
+    public String getInitialSubstring() {
00bb66
+    	// RFC 2254: there is only one optional initial substring
00bb66
+    	return m_initial.isEmpty() ? null : m_initial.get(0);
00bb66
+    }
00bb66
+
00bb66
+    /**
00bb66
      * Adds initial substring.
00bb66
      * @param s initial substring
00bb66
      */
00bb66
@@ -84,6 +105,14 @@ public class JDAPFilterSubString extends JDAPFilter {
00bb66
     }
00bb66
 
00bb66
     /**
00bb66
+     * Get any substrings.
00bb66
+     * @return any substrings.
00bb66
+     */
00bb66
+    public Collection<String> getAnySubstrings() {
00bb66
+    	return m_any;
00bb66
+    }
00bb66
+
00bb66
+    /**
00bb66
      * Adds any substring.
00bb66
      * @param s any substring
00bb66
      */
00bb66
@@ -92,6 +121,15 @@ public class JDAPFilterSubString extends JDAPFilter {
00bb66
     }
00bb66
 
00bb66
     /**
00bb66
+     * Get final substring.
00bb66
+     * @return final substring.
00bb66
+     */
00bb66
+    public String getFinalSubstring() {
00bb66
+    	// RFC 2254: there is only one optional final substring
00bb66
+    	return m_final.isEmpty() ? null : m_final.get(0);
00bb66
+    }
00bb66
+
00bb66
+    /**
00bb66
      * Adds final substring.
00bb66
      * @param s final substring
00bb66
      */
00bb66
-- 
00bb66
2.13.6
00bb66