You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/12/24 17:57:55 UTC
[commons-vfs] 01/02: Sort members.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git
commit 3ff6111240a1eb11d65003dfec9ade8a130df99b
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Tue Dec 24 12:53:51 2019 -0500
Sort members.
---
.../commons/vfs2/provider/HostFileNameParser.java | 356 ++++++++++-----------
1 file changed, 178 insertions(+), 178 deletions(-)
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/HostFileNameParser.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/HostFileNameParser.java
index 516bcc9..c15c37d 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/HostFileNameParser.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/HostFileNameParser.java
@@ -33,33 +33,179 @@ import org.apache.commons.vfs2.util.CryptorFactory;
* @see URLFileNameParser URLFileNameParser for the implementation which also handles the query string too
*/
public class HostFileNameParser extends AbstractFileNameParser {
+ /**
+ * Parsed authority info (scheme, hostname, username/password, port).
+ */
+ protected static class Authority {
+ private String hostName;
+ private String password;
+ private int port;
+ private String scheme;
+ private String userName;
+
+ /**
+ * Gets the host name.
+ *
+ * @return the host name.
+ * @since 2.0
+ */
+ public String getHostName() {
+ return hostName;
+ }
+
+ /**
+ * Gets the user password.
+ *
+ * @return the password or null.
+ * @since 2.0
+ */
+ public String getPassword() {
+ return password;
+ }
+
+ /**
+ * Gets the port.
+ *
+ * @return the port or -1.
+ * @since 2.0
+ */
+ public int getPort() {
+ return port;
+ }
+
+ /**
+ * Get the connection schema.
+ *
+ * @return the connection scheme.
+ * @since 2.0
+ */
+ public String getScheme() {
+ return scheme;
+ }
+
+ /**
+ * Gets the user name.
+ *
+ * @return the user name or null.
+ * @since 2.0
+ */
+ public String getUserName() {
+ return userName;
+ }
+
+ /**
+ * Sets the host name.
+ *
+ * @param hostName the host name.
+ * @since 2.0
+ */
+ public void setHostName(final String hostName) {
+ this.hostName = hostName;
+ }
+
+ /**
+ * Sets the user password.
+ *
+ * @param password the user password.
+ * @since 2.0
+ */
+ public void setPassword(final String password) {
+ this.password = password;
+ }
+
+ /**
+ * Sets the connection port.
+ *
+ * @param port the port number or -1.
+ * @since 2.0
+ */
+ public void setPort(final int port) {
+ this.port = port;
+ }
+
+ /**
+ * Sets the connection schema.
+ *
+ * @param scheme the connection scheme.
+ * @since 2.0
+ */
+ public void setScheme(final String scheme) {
+ this.scheme = scheme;
+ }
+
+ /**
+ * Sets the user name.
+ *
+ * @param userName the user name.
+ * @since 2.0
+ */
+ public void setUserName(final String userName) {
+ this.userName = userName;
+ }
+ }
+
private final int defaultPort;
public HostFileNameParser(final int defaultPort) {
this.defaultPort = defaultPort;
}
- public int getDefaultPort() {
- return defaultPort;
+ /**
+ * Extracts the hostname from a URI.
+ *
+ * @param name string buffer with the "scheme://[userinfo@]" part has been removed already. Will be modified.
+ * @return the host name or null.
+ */
+ protected String extractHostName(final StringBuilder name) {
+ final int maxlen = name.length();
+ int pos = 0;
+ for (; pos < maxlen; pos++) {
+ final char ch = name.charAt(pos);
+ if (ch == '/' || ch == ';' || ch == '?' || ch == ':' || ch == '@' || ch == '&' || ch == '=' || ch == '+'
+ || ch == '$' || ch == ',') {
+ break;
+ }
+ }
+ if (pos == 0) {
+ return null;
+ }
+
+ final String hostname = name.substring(0, pos);
+ name.delete(0, pos);
+ return hostname;
}
- @Override
- public FileName parseUri(final VfsComponentContext context, final FileName base, final String fileName)
- throws FileSystemException {
- // FTP URI are generic URI (as per RFC 2396)
- final StringBuilder name = new StringBuilder();
+ /**
+ * Extracts the port from a URI.
+ *
+ * @param name string buffer with the "scheme://[userinfo@]hostname" part has been removed already. Will be
+ * modified.
+ * @param uri full URI for error reporting.
+ * @return The port, or -1 if the URI does not contain a port.
+ * @throws FileSystemException if URI is malformed.
+ * @throws NumberFormatException if port number cannot be parsed.
+ */
+ protected int extractPort(final StringBuilder name, final String uri) throws FileSystemException {
+ if (name.length() < 1 || name.charAt(0) != ':') {
+ return -1;
+ }
- // Extract the scheme and authority parts
- final Authority auth = extractToPath(context, fileName, name);
+ final int maxlen = name.length();
+ int pos = 1;
+ for (; pos < maxlen; pos++) {
+ final char ch = name.charAt(pos);
+ if (ch < '0' || ch > '9') {
+ break;
+ }
+ }
- // Decode and normalise the file name
- UriParser.canonicalizePath(name, 0, name.length(), this);
- UriParser.fixSeparators(name);
- final FileType fileType = UriParser.normalisePath(name);
- final String path = name.toString();
+ final String port = name.substring(1, pos);
+ name.delete(0, pos);
+ if (port.isEmpty()) {
+ throw new FileSystemException("vfs.provider/missing-port.error", uri);
+ }
- return new GenericFileName(auth.scheme, auth.hostName, auth.port, defaultPort, auth.userName, auth.password,
- path, fileType);
+ return Integer.parseInt(port);
}
/**
@@ -163,172 +309,26 @@ public class HostFileNameParser extends AbstractFileNameParser {
return null;
}
- /**
- * Extracts the hostname from a URI.
- *
- * @param name string buffer with the "scheme://[userinfo@]" part has been removed already. Will be modified.
- * @return the host name or null.
- */
- protected String extractHostName(final StringBuilder name) {
- final int maxlen = name.length();
- int pos = 0;
- for (; pos < maxlen; pos++) {
- final char ch = name.charAt(pos);
- if (ch == '/' || ch == ';' || ch == '?' || ch == ':' || ch == '@' || ch == '&' || ch == '=' || ch == '+'
- || ch == '$' || ch == ',') {
- break;
- }
- }
- if (pos == 0) {
- return null;
- }
-
- final String hostname = name.substring(0, pos);
- name.delete(0, pos);
- return hostname;
- }
-
- /**
- * Extracts the port from a URI.
- *
- * @param name string buffer with the "scheme://[userinfo@]hostname" part has been removed already. Will be
- * modified.
- * @param uri full URI for error reporting.
- * @return The port, or -1 if the URI does not contain a port.
- * @throws FileSystemException if URI is malformed.
- * @throws NumberFormatException if port number cannot be parsed.
- */
- protected int extractPort(final StringBuilder name, final String uri) throws FileSystemException {
- if (name.length() < 1 || name.charAt(0) != ':') {
- return -1;
- }
-
- final int maxlen = name.length();
- int pos = 1;
- for (; pos < maxlen; pos++) {
- final char ch = name.charAt(pos);
- if (ch < '0' || ch > '9') {
- break;
- }
- }
-
- final String port = name.substring(1, pos);
- name.delete(0, pos);
- if (port.isEmpty()) {
- throw new FileSystemException("vfs.provider/missing-port.error", uri);
- }
-
- return Integer.parseInt(port);
+ public int getDefaultPort() {
+ return defaultPort;
}
- /**
- * Parsed authority info (scheme, hostname, username/password, port).
- */
- protected static class Authority {
- private String scheme;
- private String hostName;
- private String userName;
- private String password;
- private int port;
-
- /**
- * Get the connection schema.
- *
- * @return the connection scheme.
- * @since 2.0
- */
- public String getScheme() {
- return scheme;
- }
-
- /**
- * Sets the connection schema.
- *
- * @param scheme the connection scheme.
- * @since 2.0
- */
- public void setScheme(final String scheme) {
- this.scheme = scheme;
- }
-
- /**
- * Gets the host name.
- *
- * @return the host name.
- * @since 2.0
- */
- public String getHostName() {
- return hostName;
- }
-
- /**
- * Sets the host name.
- *
- * @param hostName the host name.
- * @since 2.0
- */
- public void setHostName(final String hostName) {
- this.hostName = hostName;
- }
-
- /**
- * Gets the user name.
- *
- * @return the user name or null.
- * @since 2.0
- */
- public String getUserName() {
- return userName;
- }
-
- /**
- * Sets the user name.
- *
- * @param userName the user name.
- * @since 2.0
- */
- public void setUserName(final String userName) {
- this.userName = userName;
- }
-
- /**
- * Gets the user password.
- *
- * @return the password or null.
- * @since 2.0
- */
- public String getPassword() {
- return password;
- }
+ @Override
+ public FileName parseUri(final VfsComponentContext context, final FileName base, final String fileName)
+ throws FileSystemException {
+ // FTP URI are generic URI (as per RFC 2396)
+ final StringBuilder name = new StringBuilder();
- /**
- * Sets the user password.
- *
- * @param password the user password.
- * @since 2.0
- */
- public void setPassword(final String password) {
- this.password = password;
- }
+ // Extract the scheme and authority parts
+ final Authority auth = extractToPath(context, fileName, name);
- /**
- * Gets the port.
- *
- * @return the port or -1.
- * @since 2.0
- */
- public int getPort() {
- return port;
- }
+ // Decode and normalise the file name
+ UriParser.canonicalizePath(name, 0, name.length(), this);
+ UriParser.fixSeparators(name);
+ final FileType fileType = UriParser.normalisePath(name);
+ final String path = name.toString();
- /**
- * Sets the connection port.
- *
- * @param port the port number or -1.
- * @since 2.0
- */
- public void setPort(final int port) {
- this.port = port;
- }
+ return new GenericFileName(auth.scheme, auth.hostName, auth.port, defaultPort, auth.userName, auth.password,
+ path, fileType);
}
}