001 package javafe; 002 003 import java.util.ArrayList; 004 import java.util.Iterator; 005 006 import javafe.filespace.StringUtil; 007 008 public class InputEntry { 009 public InputEntry(String n) { name = n; } 010 public String name; 011 public ArrayList contents; 012 public boolean auto = false; 013 public String toString() { return name; } 014 public String type() { return ""; } 015 public String typeOption() { return ""; } 016 public String verify() { return null; } 017 public String savedString() { 018 String q = ""; 019 if (name.indexOf(' ') != -1) q = "\""; 020 String t = typeOption(); 021 if (auto) t = ""; 022 else if (t.length() != 0) t = "-"+t+" "; 023 return t + q + name + q; 024 } 025 static public void clear(ArrayList a) { 026 Iterator i = a.iterator(); 027 while (i.hasNext()) { 028 InputEntry ie = (InputEntry)i.next(); 029 ie.clear(); 030 } 031 } 032 public void clear() { contents = null; } 033 034 static public InputEntry make(String type, String name) { 035 if (type == null) return make(name); 036 if (type.equals("file")) return new FileInputEntry(name); 037 if (type.equals("dir")) return new DirInputEntry(name); 038 if (type.equals("package")) return new PackageInputEntry(name); 039 if (type.equals("class")) return new ClassInputEntry(name); 040 if (type.equals("list")) return new ListInputEntry(name); 041 return null; 042 } 043 044 static public InputEntry make(String name) { 045 java.io.File f = new java.io.File(name); 046 InputEntry ie = null; 047 048 if (FileInputEntry.verify(name) == null) 049 ie = new FileInputEntry(name); 050 else if (DirInputEntry.verify(name) == null) 051 ie = new DirInputEntry(name); 052 else if (PackageInputEntry.verify(name) == null) 053 ie = new PackageInputEntry(name); 054 else if (ClassInputEntry.verify(name) == null) 055 ie = new ClassInputEntry(name); 056 else if (ListInputEntry.verify(name) == null) 057 ie = new ListInputEntry(name); 058 059 if (ie == null) ie = new UnknownInputEntry(name); 060 ie.auto = true; 061 return ie; 062 } 063 064 public InputEntry resolve() { return this; } 065 066 public boolean match(InputEntry ie) { 067 return getClass() == ie.getClass() && name.equals(ie.name); 068 } 069 }