/*
 * Copyright (C) 2008 feilong (venusdrogon@163.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.
 */
package com.feilong.core.net;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import com.feilong.core.util.CollectionsUtil;
import com.feilong.core.util.Validator;

/**
 * The Class URLUtil.
 *
 * @author <a href="mailto:venusdrogon@163.com">feilong</a>
 * @version 1.2.1 2015年6月21日 上午12:54:15
 * @since 1.2.1
 */
public class URLUtil{

    /**
     * To string array.
     *
     * @param urls
     *            the urls
     * @return the string[]
     * @throws NullPointerException
     *             if isNullOrEmpty(urls)
     * @since 1.2.1
     */
    public static String[] toStringArray(URL[] urls) throws NullPointerException{
        if (Validator.isNullOrEmpty(urls)){
            throw new NullPointerException("urls can't be null/empty!");
        }

        String[] stringArray = new String[urls.length];

        int i = 0;
        for (URL url : urls){
            stringArray[i] = url.toString();
            i++;
        }
        return stringArray;
    }

    /**
     * To ur ls.
     *
     * @param paths
     *            the paths
     * @return the UR l[]
     * @throws NullPointerException
     *             the null pointer exception
     */
    public static URL[] toURLs(String[] paths) throws NullPointerException{
        if (Validator.isNullOrEmpty(paths)){
            throw new NullPointerException("paths can't be null/empty!");
        }

        int length = paths.length;

        URL[] urls = new URL[length];

        int i = 0;
        try{
            for (String path : paths){
                urls[i] = new File(path).toURI().toURL();
                i++;
            }
        }catch (MalformedURLException e){
            throw new URIParseException(e);
        }

        return urls;
    }

    /**
     * To ur ls.
     *
     * @param paths
     *            the paths
     * @return the UR l[]
     * @throws NullPointerException
     *             the null pointer exception
     */
    public static URL[] toURLs(List<String> paths) throws NullPointerException{
        if (Validator.isNullOrEmpty(paths)){
            throw new NullPointerException("paths can't be null/empty!");
        }
        String[] array = CollectionsUtil.toArray(paths);
        return toURLs(array);
    }
}

@@ -993,16 +993,22 @@
 %0Apublic 
+final 
 class UR
@@ -1015,16 +1015,292 @@
 LUtil%7B%0A%0A
+    /** Don't let anyone instantiate this class. */%0A    private URLUtil()%7B%0A        //AssertionError%E4%B8%8D%E6%98%AF%E5%BF%85%E9%A1%BB%E7%9A%84. %E4%BD%86%E5%AE%83%E5%8F%AF%E4%BB%A5%E9%81%BF%E5%85%8D%E4%B8%8D%E5%B0%8F%E5%BF%83%E5%9C%A8%E7%B1%BB%E7%9A%84%E5%86%85%E9%83%A8%E8%B0%83%E7%94%A8%E6%9E%84%E9%80%A0%E5%99%A8. %E4%BF%9D%E8%AF%81%E8%AF%A5%E7%B1%BB%E5%9C%A8%E4%BB%BB%E4%BD%95%E6%83%85%E5%86%B5%E4%B8%8B%E9%83%BD%E4%B8%8D%E4%BC%9A%E8%A2%AB%E5%AE%9E%E4%BE%8B%E5%8C%96.%0A        //see %E3%80%8AEffective Java%E3%80%8B 2nd%0A        throw new AssertionError(%22No %22 + getClass().getName() + %22 instances for you!%22);%0A    %7D%0A%0A
     /**%0A

update javadoc