1 /*** 2 * Created on Aug 5, 2005, Copyright UC Regents 3 */ 4 package wise2.converter; 5 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.net.URL; 9 import java.util.List; 10 import java.util.jar.JarOutputStream; 11 12 import net.sf.sail.core.beans.Pod; 13 import net.sf.sail.core.util.BinaryUtils; 14 15 import org.dom4j.Node; 16 import org.telscenter.pas.beans.PasStep; 17 import org.telscenter.pas.hint.Hint; 18 import org.telscenter.pas.properties.HintSet; 19 20 /*** 21 * @author turadg 22 */ 23 abstract public class AbstractStepConverter { 24 25 protected Pod pod; 26 27 protected JarOutputStream podArchiveOutputStream; 28 29 protected IProjectUploadProvider uploadProvider; 30 31 public Pod getPod() { 32 return pod; 33 } 34 35 public void setPod(Pod pod) { 36 this.pod = pod; 37 } 38 39 protected Node stepNode; 40 41 /*** 42 * @param stepNode 43 */ 44 public void setStepNode(Node stepNode) { 45 this.stepNode = stepNode; 46 } 47 48 /*** 49 * @return 50 */ 51 protected abstract PasStep getTypedPasStep(); 52 53 public PasStep getPasStep() { 54 PasStep step = getTypedPasStep(); 55 step.setTitle(getStepTitle()); 56 step.setHintSet(getStepHints()); 57 return step; 58 } 59 60 protected String getStepTitle() { 61 Node titleNode = stepNode.selectSingleNode("title"); 62 String title = (titleNode == null) ? "UNDEFINED_TITLE" : titleNode 63 .getText(); 64 return title; 65 } 66 67 public void setPodArchiveOutputStream(JarOutputStream podArchiveOutputStream) { 68 this.podArchiveOutputStream = podArchiveOutputStream; 69 } 70 71 /*** 72 * @param filename 73 * @param source 74 * @return 75 * @throws IOException 76 */ 77 protected URL addToArchive(String filename, InputStream source) 78 throws IOException { 79 return BinaryUtils.addToArchive(pod, podArchiveOutputStream, filename, 80 source); 81 } 82 83 /*** 84 * @param uploadProvider 85 */ 86 public void setUploadProvider(IProjectUploadProvider uploadProvider) { 87 this.uploadProvider = uploadProvider; 88 } 89 90 /*** 91 * @return 92 */ 93 @SuppressWarnings("unchecked") 94 protected HintSet getStepHints() { 95 List<Node> list = stepNode.selectNodes("hint"); 96 HintSet hintSet = new HintSet(); 97 for (Node node : list) { 98 Hint hint = new Hint(); 99 hint.setText(node.getText()); 100 hintSet.add(hint); 101 } 102 return hintSet; 103 } 104 105 }