1 7 package com.inversoft.savant; 8 9 10 import java.io.File ; 11 import java.util.ArrayList ; 12 import java.util.Iterator ; 13 import java.util.List ; 14 15 16 24 public class Workflow { 25 26 private List processes = new ArrayList (); 27 28 29 32 public Workflow() { 33 } 34 35 36 41 public void addProcess(Process process) { 42 processes.add(process); 43 } 44 45 50 public void resolveArtifactDependencies(Artifact artifact, 51 LocalCacheStore localCache) 52 throws SavantException { 53 boolean done = localCache.resolveArtifactDependencies(artifact); 54 if (!done) { 55 Iterator iter = processes.iterator(); 56 Process process; 57 while (iter.hasNext()) { 58 process = (Process ) iter.next(); 59 done = process.resolveArtifactDependencies(artifact, localCache); 60 if (done) { 61 break; 62 } 63 } 64 } 65 } 66 67 78 public File findArtifact(Artifact artifact, LocalCacheStore localCache) 79 throws SavantException { 80 File file = localCache.find(artifact); 81 if (file != null) { 82 return file; 83 } 84 85 Iterator iter = processes.iterator(); 86 Process process; 87 while (iter.hasNext()) { 88 process = (Process ) iter.next(); 89 file = process.fetch(artifact, localCache); 90 if (file != null) { 91 break; 92 } 93 } 94 95 return file; 96 } 97 98 101 public void validate() throws SavantException { 102 Iterator iter = processes.iterator(); 103 Process process; 104 while (iter.hasNext()) { 105 process = (Process ) iter.next(); 106 process.validate(); 107 } 108 } 109 } | Popular Tags |