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 /*@non_null*/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 }