1 package polyglot.frontend; 2 3 import polyglot.ast.*; 4 5 import java.util.*; 6 7 12 public class SourceJob extends Job 13 { 14 17 protected Source source; 18 19 24 protected Set dependencies; 25 26 29 protected Set dependents; 30 31 34 public SourceJob(ExtensionInfo lang, 35 JobExt ext, 36 Source source, 37 Node ast) { 38 super(lang, ext, ast); 39 40 this.source = source; 41 this.dependencies = new HashSet(); 42 this.dependents = new HashSet(); 43 44 } 45 46 public Set dependencies() { 47 return dependencies; 48 } 49 50 public Set dependents() { 51 return dependents; 52 } 53 54 public void addDependent(Source s) { 55 if (s != this.source()) { 56 dependents.add(s); 57 } 58 } 59 60 public void addDependency(Source s) { 61 if (s != this.source()) { 62 dependencies.add(s); 63 } 64 } 65 66 70 public List getPasses() { 71 return lang.passes(this); 72 } 73 74 public Source source() { 75 return source; 76 } 77 78 public SourceJob sourceJob() { 79 return this; 80 } 81 82 public String toString() { 83 return source.toString() + " (" + 84 (completed() ? "done" 85 : ((isRunning() ? "running " 86 : "before ") + nextPass())) + ")"; 87 } 88 } 89 | Popular Tags |