You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by jo...@apache.org on 2013/02/21 16:50:18 UTC
svn commit: r1448689 - in /commons/proper/vfs/trunk:
core/src/main/java/org/apache/commons/vfs2/
core/src/main/java/org/apache/commons/vfs2/provider/ftp/
core/src/main/java/org/apache/commons/vfs2/provider/ftps/
core/src/main/java/org/apache/commons/vf...
Author: joehni
Date: Thu Feb 21 15:50:18 2013
New Revision: 1448689
URL: http://svn.apache.org/r1448689
Log:
FileSytemConfigBuilder supports system properties for the value of enum-based configuration entries (VFS-463).
Modified:
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/FileSystemConfigBuilder.java
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpFileSystemConfigBuilder.java
commons/proper/vfs/trunk/src/changes/changes.xml
Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/FileSystemConfigBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/FileSystemConfigBuilder.java?rev=1448689&r1=1448688&r2=1448689&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/FileSystemConfigBuilder.java (original)
+++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/FileSystemConfigBuilder.java Thu Feb 21 15:50:18 2013
@@ -220,6 +220,29 @@ public abstract class FileSystemConfigBu
return value;
}
+ /** @since 2.1 */
+ protected <E extends Enum<E>> E getEnum(final Class<E> enumClass, final FileSystemOptions opts, final String name)
+ {
+ return this.<E>getEnum(enumClass, opts, name, null);
+ }
+
+ /** @since 2.1 */
+ protected <E extends Enum<E>> E getEnum(final Class<E> enumClass, final FileSystemOptions opts, final String name, final E defaultValue)
+ {
+ @SuppressWarnings("unchecked")
+ E value = (E) getParam(opts, name);
+ if (value == null)
+ {
+ final String str = getProperty(name);
+ if (str == null)
+ {
+ return defaultValue;
+ }
+ value = Enum.valueOf(enumClass, str);
+ }
+ return value;
+ }
+
/** @since 2.0 */
protected Float getFloat(final FileSystemOptions opts, final String name)
{
Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java?rev=1448689&r1=1448688&r2=1448689&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java (original)
+++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java Thu Feb 21 15:50:18 2013
@@ -143,7 +143,7 @@ public class FtpFileSystemConfigBuilder
*/
public FtpFileType getFileType(final FileSystemOptions opts)
{
- return (FtpFileType) getParam(opts, FILE_TYPE);
+ return getEnum(FtpFileType.class, opts, FILE_TYPE);
}
/**
Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java?rev=1448689&r1=1448688&r2=1448689&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java (original)
+++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java Thu Feb 21 15:50:18 2013
@@ -74,8 +74,7 @@ public final class FtpsFileSystemConfigB
*/
public FtpsMode getFtpsMode(final FileSystemOptions opts)
{
- final FtpsMode mode = (FtpsMode)getParam(opts, FTPS_MODE);
- return mode == null ? FtpsMode.EXPLICIT : mode;
+ return getEnum(FtpsMode.class, opts, FTPS_MODE, FtpsMode.EXPLICIT);
}
/**
@@ -134,7 +133,7 @@ public final class FtpsFileSystemConfigB
*/
public FtpsDataChannelProtectionLevel getDataChannelProtectionLevel(final FileSystemOptions opts)
{
- return (FtpsDataChannelProtectionLevel)getParam(opts, PROT);
+ return getEnum(FtpsDataChannelProtectionLevel.class, opts, PROT);
}
/**
Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpFileSystemConfigBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpFileSystemConfigBuilder.java?rev=1448689&r1=1448688&r2=1448689&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpFileSystemConfigBuilder.java (original)
+++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpFileSystemConfigBuilder.java Thu Feb 21 15:50:18 2013
@@ -217,7 +217,7 @@ public final class SftpFileSystemConfigB
*/
public String getPreferredAuthentications(final FileSystemOptions opts)
{
- return (String) this.getParam(opts, PREFERRED_AUTHENTICATIONS);
+ return getString(opts, PREFERRED_AUTHENTICATIONS);
}
Modified: commons/proper/vfs/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/src/changes/changes.xml?rev=1448689&r1=1448688&r2=1448689&view=diff
==============================================================================
--- commons/proper/vfs/trunk/src/changes/changes.xml (original)
+++ commons/proper/vfs/trunk/src/changes/changes.xml Thu Feb 21 15:50:18 2013
@@ -26,6 +26,9 @@
<!-- <action issue="VFS-443" dev="ggregory" type="update" due-to="nickallen"> -->
<!-- [Local] Need an easy way to convert from a FileObject to a File. -->
<!-- </action> -->
+ <action issue="VFS-463" dev="joehni" type="update">
+ FileSytemConfigBuilder supports system properties for the value of enum-based configuration entries.
+ </action>
<action issue="VFS-462" dev="joehni" type="update">
[FTPS] Deprecate FtpsFileSystemConfigBuilder.setFtpsType and FtpsFileSystemConfigBuilder.getFtpsType
in favor of FtpsFileSystemConfigBuilder.setFtpsMode and FtpsFileSystemConfigBuilder.getFtpsMode which