Development Class Java

/*
 * Copyright Javelin Software, All rights reserved.
 */
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.util.*;
/**
 * PropertiesUtil is used to load and save properties to files.
 * 


 * @author Robin Sharp
 */
public class PropertiesUtil
{
    public PropertiesUtil()
    {
    }
    public static Map getByValue( Properties properties, String value )
    {
        Map map = new HashMap();
        Iterator iter = properties.entrySet().iterator();
        do
        {
            if(!iter.hasNext() )
                break;
            java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
            if(entry.getValue().equals(value ) )
                map.put(entry.getKey(), entry.getValue() );
        } while(true );
        return map;
    }
    public static Properties load( Properties properties, String fileName ) throws IOException
    {
        if(fileName == null )
        {
            throw new IllegalArgumentException( "FileName is not set." );
        }
        else
        {
            return load( properties, new File(fileName ) );
        }
    }
    public static Properties load( Properties properties, File file ) throws IOException
    {
        if(file == null )
        {
            throw new IllegalArgumentException( "File is not set." );
        }
        else
        {
            return load( properties, ((InputStream ) ( new FileInputStream(file ) )) );
        }
    }
    public static Properties load( Properties properties, URL url ) throws IOException
    {
        if( url == null )
        {
            throw new IllegalArgumentException( "Url is not set." );
        } 
        else
        {
            URLConnection connection = url.openConnection();
            return load( properties, connection.getInputStream() );
        }
    }
    public static Properties load( Properties properties, Class relativeClass, String relativeFileName ) throws IOException
    {
        if(relativeClass == null )
        {
            throw new IllegalArgumentException( "Relative Class is not set." );
        }
        if(relativeFileName == null )
        {
            throw new IllegalArgumentException( "Relative File Name is not set." );
        }
        else
        {
            return load( properties, relativeClass.getResourceAsStream(relativeFileName ) );
        }
    }
    public static Properties load( Properties properties, InputStream inputStream ) throws IOException
    {
        try
        {
            if( properties == null )
            {
                throw new IllegalArgumentException( "Properties is not set." );
            }
            
            if( inputStream == null )
            {
                throw new IllegalArgumentException( "InputStream is not set." );
            }
            
            properties.load( new BufferedInputStream(inputStream ) );
        }
        finally
        {
            if(inputStream != null )
                inputStream.close();
        }
        return properties;
    }
    public static void store( Properties properties, String fileName ) throws IOException
    {
        if(fileName == null )
        {
            throw new IllegalArgumentException( "FileName is not set." );
        } 
        else
        {
            store( properties, new File(fileName ) );
            return;
        }
    }
    public static void store( Properties properties, File file )
        throws IOException
    {
        if(file == null )
        {
            throw new IllegalArgumentException( "File is not set." );
        } else
        {
            store( properties, ((OutputStream ) ( new FileOutputStream(file ) )) );
            return;
        }
    }
    public static void store( Properties properties, URL url ) throws IOException
    {
        if( url == null )
        {
            throw new IllegalArgumentException( "Url is not set." );
        } else
        {
            URLConnection connection = url.openConnection();
            connection.setDoOutput(true );
            store( properties, connection.getOutputStream() );
            return;
        }
    }
    public static void store( Properties properties, Class relativeClass, String relativeFileName )
        throws IOException
    {
        if(relativeClass == null )
            throw new IllegalArgumentException( "Relative Class is not set." );
        if(relativeFileName == null )
        {
            throw new IllegalArgumentException( "Relative File Name is not set." );
        } 
        else
        {
            String className = relativeClass.getName().substring(relativeClass.getName().lastIndexOf( "." ) + 1);
            URL url = relativeClass.getResource(String.valueOf(String.valueOf( className ) ).concat( ".class" ) );
            String fileName = url.getFile();
            fileName = String.valueOf(fileName.substring(1, fileName.length() - className.length() - 6) ) + String.valueOf(relativeFileName );
            store( properties, fileName );
            return;
        }
    }
    public static void store( Properties properties, OutputStream outputStream ) throws IOException
    {
        try
        {
            if( properties == null )
            {
                throw new IllegalArgumentException( "Properties is not set." );
            }
            if( outputStream == null )
            {
                throw new IllegalArgumentException( "OutputStream is not set." );
            }
            properties.store( new BufferedOutputStream( outputStream ), null );
        }
        finally
        {
            if( outputStream != null )
            {
                outputStream.close();
            }
        }
    }
    public static void main(String args[])
    {
        try
        {
            System.out.println(load( new Properties(), "C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test.properties" ) );
            System.out.println(load( new Properties(), new File( "C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test.properties" ) ));
            System.out.println(load( new Properties(), new URL( "file:///C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test.properties" ) ));
            System.out.println(load( new Properties(), PropertiesUtil.class, "test.properties" ) );
            Properties properties = new Properties();
            properties.put( "1", "2" );
            properties.put( "2", "2" );
            properties.put( "3", "3" );
            store( properties, "C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test1.properties" );
            store( properties, new File( "C:/data/ccm_wa/dordev/Countrywide~csdrzs/Countrywide/src/com/javelin/util/test2.properties" ) );
            store( properties, PropertiesUtil.class, "test4.properties" );
            System.out.println(getByValue( properties, "2" ) );
        }
        catch(Exception e )
        {
            e.printStackTrace();
        }
    }
}