Resolves the specified URI, and returns the file represented by the URI. : URI « Network Protocol « Java






Resolves the specified URI, and returns the file represented by the URI.

       

/*
  Copyright 2009 Tomer Gabel <tomer@tomergabel.com>

  Licensed 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.


  ant-intellij-tasks project (http://code.google.com/p/ant-intellij-tasks/)

  $Id: UriUtils.java 106 2009-09-30 02:07:29Z tomergabel $
*/

//package com.tomergabel.util;

import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

/**
 * A static container class for URI-related utility functions.
 */
public final class UriUtils {
      /**
     * A static URI which, when resolved against another URI, returns the other URI's parent.
     */
    private static final URI up = URI.create( ".." );

    /**
     * Resolves the specified URI, and returns the file represented by the URI.
     *
     * @param uri The URI for which to return an absolute path.
     * @return The {@link File} instance represented by the specified URI.
     * @throws IllegalArgumentException <ul><li>The URI cannot be null.</li><li>Wrong URI scheme for path resolution;
     *                                  only file:// URIs are supported.</li></ul>
     */
    public static File getFile( URI uri ) throws IllegalArgumentException {
        if ( uri == null )
            throw new IllegalArgumentException( "The URI cannot be null." );
        if ( !"file".equals( uri.getScheme() ) )
            throw new IllegalArgumentException(
                    "Wrong URI scheme for path resolution, expected \"file\" " + "and got \"" + uri.getScheme() +
                            "\"" );

        // Workaround for the following bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5086147
        // Remove (or add, take your pick...) extra slashes after the scheme part.
        if ( uri.getAuthority() != null )
            try {
                uri = new URI( uri.toString().replace( "file://", "file:/" ) );
            } catch ( URISyntaxException e ) {
                throw new IllegalArgumentException( "The specified URI contains an authority, but could not be " +
                        "normalized.", e );
            }

        return new File( uri );
    }
}

   
    
    
    
    
    
    
  








Related examples in the same category

1.Encode a URI path
2.Add two URI path segments
3.Remove parameters from a uri.
4.Remove any authorisation details from a URI
5.A class to represent a Uniform Resource Identifier (URI).
6.Utility to convert File to URL.
7.Return True if the uri has a scheme
8.Normalize a uri containing ../ and ./ paths.
9.URI Support
10.URI utilities
11.Get Parent URI
12.Create and resolve URI
13.Add parameters stored in the Map to the uri string.
14.Make a URL from the given string
15.Is Equal URI
16.Returns the filename for the specified URI.