jdk/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java
changeset 14702 111342b28e67
parent 13571 737b7b4bd73a
child 17154 e8991539c4d7
--- a/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java	Mon Dec 03 11:07:20 2012 -0500
+++ b/jdk/src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java	Tue Dec 04 14:07:30 2012 +0000
@@ -509,4 +509,24 @@
         };
     }
 
+    /**
+     * Returns a {@code FileTypeDetector} that chains the given array of file
+     * type detectors. When the {@code implProbeContentType} method is invoked
+     * then each of the detectors is invoked in turn, the result from the
+     * first to detect the file type is returned.
+     */
+    final FileTypeDetector chain(final AbstractFileTypeDetector... detectors) {
+        return new AbstractFileTypeDetector() {
+            @Override
+            protected String implProbeContentType(Path file) throws IOException {
+                for (AbstractFileTypeDetector detector : detectors) {
+                    String result = detector.implProbeContentType(file);
+                    if (result != null && !result.isEmpty()) {
+                        return result;
+                    }
+                }
+                return null;
+            }
+        };
+    }
 }