001 package com.croftsoft.core.util.filemap;
002
003 import java.io.*;
004 import java.util.*;
005
006 /*********************************************************************
007 * This Map.Entry is required for the AbstractMap implementation of
008 * FileMap.
009 *
010 * @see
011 * FileMapEntryIterator
012 * @see
013 * FileMapEntrySet
014 * @see
015 * java.util.Map.Entry
016 *
017 * @version
018 * 1999-04-03
019 * @author
020 * <a href="http://www.CroftSoft.com/">David Wallace Croft</a>
021 *********************************************************************/
022
023 public class FileMapEntry implements Map.Entry
024 //////////////////////////////////////////////////////////////////////
025 //////////////////////////////////////////////////////////////////////
026 {
027
028 private File rootDirectory;
029 private String filename;
030
031 //////////////////////////////////////////////////////////////////////
032 //////////////////////////////////////////////////////////////////////
033
034 public FileMapEntry ( File rootDirectory, String filename )
035 //////////////////////////////////////////////////////////////////////
036 {
037 this.rootDirectory = rootDirectory;
038 this.filename = filename;
039 }
040
041 //////////////////////////////////////////////////////////////////////
042 //////////////////////////////////////////////////////////////////////
043
044 public boolean equals ( Object o )
045 //////////////////////////////////////////////////////////////////////
046 {
047 if ( o == null ) return false;
048
049 if ( !o.getClass ( ).equals ( this.getClass ( ) ) ) return false;
050
051 FileMapEntry other = ( FileMapEntry ) o;
052
053 if ( !filename.equals ( other.filename ) ) return false;
054
055 if ( !rootDirectory.equals ( other.rootDirectory ) ) return false;
056
057 if ( hashCode ( ) != other.hashCode ( ) ) return false;
058
059 return true;
060 }
061
062 public Object getKey ( )
063 //////////////////////////////////////////////////////////////////////
064 {
065 return filename;
066 }
067
068 public Object getValue ( )
069 //////////////////////////////////////////////////////////////////////
070 {
071 try
072 {
073 return new FileInputStream (
074 new File ( rootDirectory, filename ) );
075 }
076 catch ( FileNotFoundException ex )
077 {
078 return null;
079 }
080 }
081
082 public int hashCode ( )
083 //////////////////////////////////////////////////////////////////////
084 {
085 return filename.hashCode ( );
086 }
087
088 public Object setValue ( Object value )
089 //////////////////////////////////////////////////////////////////////
090 {
091 throw new UnsupportedOperationException ( );
092 }
093
094 //////////////////////////////////////////////////////////////////////
095 //////////////////////////////////////////////////////////////////////
096 }