You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2011/03/09 05:02:12 UTC

svn commit: r1079660 [16/17] - in /oodt/site/components/maven: apidocs/org/apache/oodt/cas/crawl/action/ apidocs/org/apache/oodt/cas/crawl/action/class-use/ apidocs/org/apache/oodt/cas/filemgr/metadata/ apidocs/org/apache/oodt/cas/filemgr/metadata/clas...

Added: oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/PCSLongLister.html
URL: http://svn.apache.org/viewvc/oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/PCSLongLister.html?rev=1079660&view=auto
==============================================================================
--- oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/PCSLongLister.html (added)
+++ oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/PCSLongLister.html Wed Mar  9 04:02:09 2011
@@ -0,0 +1,215 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xml:lang="en"><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>PCSLongLister xref</title><link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" /></head><body>
+<div id="overview"><a href="../../../../../../apidocs/org/apache/oodt/pcs/tools/PCSLongLister.html">View Javadoc</a></div><pre>
+
+<a name="1" href="#1" id="1">1</a>   <em class="jxr_javadoccomment">/**</em>
+<a name="2" href="#2" id="2">2</a>   <em class="jxr_javadoccomment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
+<a name="3" href="#3" id="3">3</a>   <em class="jxr_javadoccomment"> * contributor license agreements.  See the NOTICE file distributed with</em>
+<a name="4" href="#4" id="4">4</a>   <em class="jxr_javadoccomment"> * this work for additional information regarding copyright ownership.</em>
+<a name="5" href="#5" id="5">5</a>   <em class="jxr_javadoccomment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
+<a name="6" href="#6" id="6">6</a>   <em class="jxr_javadoccomment"> * (the "License"); you may not use this file except in compliance with</em>
+<a name="7" href="#7" id="7">7</a>   <em class="jxr_javadoccomment"> * the License.  You may obtain a copy of the License at</em>
+<a name="8" href="#8" id="8">8</a>   <em class="jxr_javadoccomment"> *</em>
+<a name="9" href="#9" id="9">9</a>   <em class="jxr_javadoccomment"> *     <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="10" href="#10" id="10">10</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="11" href="#11" id="11">11</a>  <em class="jxr_javadoccomment"> * Unless required by applicable law or agreed to in writing, software</em>
+<a name="12" href="#12" id="12">12</a>  <em class="jxr_javadoccomment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
+<a name="13" href="#13" id="13">13</a>  <em class="jxr_javadoccomment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
+<a name="14" href="#14" id="14">14</a>  <em class="jxr_javadoccomment"> * See the License for the specific language governing permissions and</em>
+<a name="15" href="#15" id="15">15</a>  <em class="jxr_javadoccomment"> * limitations under the License.</em>
+<a name="16" href="#16" id="16">16</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="17" href="#17" id="17">17</a>  
+<a name="18" href="#18" id="18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.oodt.pcs.tools;
+<a name="19" href="#19" id="19">19</a>  
+<a name="20" href="#20" id="20">20</a>  <em class="jxr_comment">//OODT imports</em>
+<a name="21" href="#21" id="21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.listing.ListingConf;
+<a name="22" href="#22" id="22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.metadata.PCSMetadata;
+<a name="23" href="#23" id="23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.query.InputFilesQuery;
+<a name="24" href="#24" id="24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.util.FileManagerUtils;
+<a name="25" href="#25" id="25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.cas.filemgr.metadata.CoreMetKeys;
+<a name="26" href="#26" id="26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.cas.filemgr.structs.Product;
+<a name="27" href="#27" id="27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.cas.metadata.Metadata;
+<a name="28" href="#28" id="28">28</a>  
+<a name="29" href="#29" id="29">29</a>  <em class="jxr_comment">//JDK imports</em>
+<a name="30" href="#30" id="30">30</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="31" href="#31" id="31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="32" href="#32" id="32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="33" href="#33" id="33">33</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="34" href="#34" id="34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Stack;
+<a name="35" href="#35" id="35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Vector;
+<a name="36" href="#36" id="36">36</a>  
+<a name="37" href="#37" id="37">37</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="38" href="#38" id="38">38</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="39" href="#39" id="39">39</a>  <em class="jxr_javadoccomment"> * The PCS Long Lister tool: mimics UNIX-ls and looks up descendant metadata for</em>
+<a name="40" href="#40" id="40">40</a>  <em class="jxr_javadoccomment"> * fields like TestTag, SubTestTag, TestCounter. Also displays Filename,</em>
+<a name="41" href="#41" id="41">41</a>  <em class="jxr_javadoccomment"> * StartDateTime, and EndDateTime for each listed file, and any of its met keys</em>
+<a name="42" href="#42" id="42">42</a>  <em class="jxr_javadoccomment"> * configured in the &lt;code&gt;pcs-ll-conf.xml&lt;/code&gt; file.</em>
+<a name="43" href="#43" id="43">43</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="44" href="#44" id="44">44</a>  <em class="jxr_javadoccomment"> * @author mattmann</em>
+<a name="45" href="#45" id="45">45</a>  <em class="jxr_javadoccomment"> * @version $Revision$</em>
+<a name="46" href="#46" id="46">46</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="47" href="#47" id="47">47</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="48" href="#48" id="48">48</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/oodt/pcs/tools/PCSLongLister.html">PCSLongLister</a> implements PCSMetadata, <a href="../../../../../org/apache/oodt/cas/filemgr/metadata/CoreMetKeys.html">CoreMetKeys</a> {
+<a name="49" href="#49" id="49">49</a>  
+<a name="50" href="#50" id="50">50</a>    <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/oodt/pcs/util/FileManagerUtils.html">FileManagerUtils</a> fm;
+<a name="51" href="#51" id="51">51</a>  
+<a name="52" href="#52" id="52">52</a>    <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/oodt/pcs/listing/ListingConf.html">ListingConf</a> conf;
+<a name="53" href="#53" id="53">53</a>  
+<a name="54" href="#54" id="54">54</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/oodt/pcs/tools/PCSLongLister.html">PCSLongLister</a>(String fmUrlStr, String confFile)
+<a name="55" href="#55" id="55">55</a>        <strong class="jxr_keyword">throws</strong> InstantiationException {
+<a name="56" href="#56" id="56">56</a>      fm = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/oodt/pcs/util/FileManagerUtils.html">FileManagerUtils</a>(fmUrlStr);
+<a name="57" href="#57" id="57">57</a>      <strong class="jxr_keyword">try</strong> {
+<a name="58" href="#58" id="58">58</a>        <strong class="jxr_keyword">this</strong>.conf = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/oodt/pcs/listing/ListingConf.html">ListingConf</a>(<strong class="jxr_keyword">new</strong> File(confFile));
+<a name="59" href="#59" id="59">59</a>      } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a name="60" href="#60" id="60">60</a>        <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> InstantiationException(e.getMessage());
+<a name="61" href="#61" id="61">61</a>      }
+<a name="62" href="#62" id="62">62</a>    }
+<a name="63" href="#63" id="63">63</a>  
+<a name="64" href="#64" id="64">64</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> doList(List prodNames) {
+<a name="65" href="#65" id="65">65</a>      <strong class="jxr_keyword">if</strong> (prodNames != <strong class="jxr_keyword">null</strong> &amp;&amp; prodNames.size() &gt; 0) {
+<a name="66" href="#66" id="66">66</a>        System.out.println(getToolHeader());
+<a name="67" href="#67" id="67">67</a>        <strong class="jxr_keyword">for</strong> (Iterator i = prodNames.iterator(); i.hasNext();) {
+<a name="68" href="#68" id="68">68</a>          String prodName = (String) i.next();
+<a name="69" href="#69" id="69">69</a>          <em class="jxr_comment">// check to see if the product name has a "/" in it</em>
+<a name="70" href="#70" id="70">70</a>          <em class="jxr_comment">// (this is true in the case of someone using *</em><em class="jxr_comment">/*<em class="jxr_comment"> from</em></em>
+<a name="71" href="#71" id="71">71</a>  <em class="jxr_comment">        // a shell): if it does, we'll consider the prodName a</em>
+<a name="72" href="#72" id="72">72</a>  <em class="jxr_comment">        // path, and we'll clean it using new File(prodName).getName()</em>
+<a name="73" href="#73" id="73">73</a>  <em class="jxr_comment">        if (prodName.indexOf("/") != -1) {</em>
+<a name="74" href="#74" id="74">74</a>  <em class="jxr_comment">          // clean the prodName</em>
+<a name="75" href="#75" id="75">75</a>  <em class="jxr_comment">          prodName = new File(prodName).getName();</em>
+<a name="76" href="#76" id="76">76</a>  <em class="jxr_comment">        }</em>
+<a name="77" href="#77" id="77">77</a>  
+<a name="78" href="#78" id="78">78</a>  <em class="jxr_comment">        Product prod = fm.safeGetProductByName(prodName);</em>
+<a name="79" href="#79" id="79">79</a>  <em class="jxr_comment">        if (prod == null) {</em>
+<a name="80" href="#80" id="80">80</a>  <em class="jxr_comment">          // product not cataloged</em>
+<a name="81" href="#81" id="81">81</a>  <em class="jxr_comment">          System.out.println(prodName + "\tNot Cataloged!");</em>
+<a name="82" href="#82" id="82">82</a>  <em class="jxr_comment">          continue;</em>
+<a name="83" href="#83" id="83">83</a>  <em class="jxr_comment">        }</em>
+<a name="84" href="#84" id="84">84</a>  <em class="jxr_comment">        Metadata met = fm.safeGetMetadata(prod);</em>
+<a name="85" href="#85" id="85">85</a>  <em class="jxr_comment">        outputListingLine(met, prodName);</em>
+<a name="86" href="#86" id="86">86</a>  <em class="jxr_comment">      }</em>
+<a name="87" href="#87" id="87">87</a>  <em class="jxr_comment">    }</em>
+<a name="88" href="#88" id="88">88</a>  
+<a name="89" href="#89" id="89">89</a>  <em class="jxr_comment">  }</em>
+<a name="90" href="#90" id="90">90</a>  
+<a name="91" href="#91" id="91">91</a>  <em class="jxr_comment">  public static void main(String[] args) throws Exception {</em>
+<a name="92" href="#92" id="92">92</a>  <em class="jxr_comment">    String usage = "PCSLongLister &lt;conf file&gt; &lt;fmurl&gt; [files]";</em>
+<a name="93" href="#93" id="93">93</a>  <em class="jxr_comment">    List fileList;</em>
+<a name="94" href="#94" id="94">94</a>  
+<a name="95" href="#95" id="95">95</a>  <em class="jxr_comment">    if (args.length &lt; 2) {</em>
+<a name="96" href="#96" id="96">96</a>  <em class="jxr_comment">      System.err.println(usage);</em>
+<a name="97" href="#97" id="97">97</a>  <em class="jxr_comment">      System.exit(1);</em>
+<a name="98" href="#98" id="98">98</a>  <em class="jxr_comment">    }</em>
+<a name="99" href="#99" id="99">99</a>  
+<a name="100" href="#100" id="100">100</a> <em class="jxr_comment">    if (args.length == 2) {</em>
+<a name="101" href="#101" id="101">101</a> <em class="jxr_comment">      // assume they gave us the current dir "."</em>
+<a name="102" href="#102" id="102">102</a> <em class="jxr_comment">      // get a list of files from there</em>
+<a name="103" href="#103" id="103">103</a> <em class="jxr_comment">      fileList = Arrays.asList(new File(".").list());</em>
+<a name="104" href="#104" id="104">104</a> <em class="jxr_comment">    } else if (args.length == 3 &amp;&amp; new File(args[2]).isDirectory()) {</em>
+<a name="105" href="#105" id="105">105</a> <em class="jxr_comment">      fileList = Arrays.asList(new File(args[2]).list());</em>
+<a name="106" href="#106" id="106">106</a> <em class="jxr_comment">    } else {</em>
+<a name="107" href="#107" id="107">107</a> <em class="jxr_comment">      // it's going to be a list of files anyways</em>
+<a name="108" href="#108" id="108">108</a> <em class="jxr_comment">      // so just treat the whole argList as a list of file names</em>
+<a name="109" href="#109" id="109">109</a> <em class="jxr_comment">      List argList = Arrays.asList(args);</em>
+<a name="110" href="#110" id="110">110</a> <em class="jxr_comment">      fileList = argList.subList(2, argList.size());</em>
+<a name="111" href="#111" id="111">111</a> <em class="jxr_comment">    }</em>
+<a name="112" href="#112" id="112">112</a> 
+<a name="113" href="#113" id="113">113</a> <em class="jxr_comment">    PCSLongLister lister = new PCSLongLister(args[0], args[1]);</em>
+<a name="114" href="#114" id="114">114</a> <em class="jxr_comment">    lister.doList(fileList);</em>
+<a name="115" href="#115" id="115">115</a> 
+<a name="116" href="#116" id="116">116</a> <em class="jxr_comment">  }</em>
+<a name="117" href="#117" id="117">117</a> 
+<a name="118" href="#118" id="118">118</a> <em class="jxr_comment">  private String getToolHeader() {</em>
+<a name="119" href="#119" id="119">119</a> <em class="jxr_comment">    StringBuffer header = new StringBuffer();</em>
+<a name="120" href="#120" id="120">120</a> <em class="jxr_comment">    for (String colName : this.conf.getHeaderColKeys()) {</em>
+<a name="121" href="#121" id="121">121</a> <em class="jxr_comment">      header.append(this.conf.getHeaderColDisplayName(colName));</em>
+<a name="122" href="#122" id="122">122</a> <em class="jxr_comment">      header.append("\t");</em>
+<a name="123" href="#123" id="123">123</a> <em class="jxr_comment">    }</em>
+<a name="124" href="#124" id="124">124</a> <em class="jxr_comment">    return header.toString();</em>
+<a name="125" href="#125" id="125">125</a> <em class="jxr_comment">  }</em>
+<a name="126" href="#126" id="126">126</a> 
+<a name="127" href="#127" id="127">127</a> <em class="jxr_comment">  private void outputListingLine(Metadata met, String prodName) {</em>
+<a name="128" href="#128" id="128">128</a> <em class="jxr_comment">    StringBuffer output = new StringBuffer();</em>
+<a name="129" href="#129" id="129">129</a> <em class="jxr_comment">    for (String colNameKey : this.conf.getHeaderColKeys()) {</em>
+<a name="130" href="#130" id="130">130</a> <em class="jxr_comment">      if (!this.conf.isCollectionField(colNameKey)) {</em>
+<a name="131" href="#131" id="131">131</a> <em class="jxr_comment">        output.append(met.getMetadata(colNameKey));</em>
+<a name="132" href="#132" id="132">132</a> <em class="jxr_comment">        output.append("\t");</em>
+<a name="133" href="#133" id="133">133</a> <em class="jxr_comment">      } else {</em>
+<a name="134" href="#134" id="134">134</a> <em class="jxr_comment">        output.append(outputOrBlank(getAllProductsByTag(met, prodName,</em>
+<a name="135" href="#135" id="135">135</a> <em class="jxr_comment">            colNameKey)));</em>
+<a name="136" href="#136" id="136">136</a> <em class="jxr_comment">        output.append("\t");</em>
+<a name="137" href="#137" id="137">137</a> <em class="jxr_comment">      }</em>
+<a name="138" href="#138" id="138">138</a> <em class="jxr_comment">    }</em>
+<a name="139" href="#139" id="139">139</a> <em class="jxr_comment">    System.out.println(output.toString());</em>
+<a name="140" href="#140" id="140">140</a> <em class="jxr_comment">  }</em>
+<a name="141" href="#141" id="141">141</a> 
+<a name="142" href="#142" id="142">142</a> <em class="jxr_comment">  private static String outputOrBlank(List items) {</em>
+<a name="143" href="#143" id="143">143</a> <em class="jxr_comment">    if (items == null || (items != null &amp;&amp; items.size() == 0)) {</em>
+<a name="144" href="#144" id="144">144</a> <em class="jxr_comment">      return "N/A";</em>
+<a name="145" href="#145" id="145">145</a> <em class="jxr_comment">    }</em>
+<a name="146" href="#146" id="146">146</a> 
+<a name="147" href="#147" id="147">147</a> <em class="jxr_comment">    StringBuffer buf = new StringBuffer();</em>
+<a name="148" href="#148" id="148">148</a> <em class="jxr_comment">    for (Iterator i = items.iterator(); i.hasNext();) {</em>
+<a name="149" href="#149" id="149">149</a> <em class="jxr_comment">      String item = (String) i.next();</em>
+<a name="150" href="#150" id="150">150</a> <em class="jxr_comment">      buf.append(item);</em>
+<a name="151" href="#151" id="151">151</a> <em class="jxr_comment">      buf.append(",");</em>
+<a name="152" href="#152" id="152">152</a> <em class="jxr_comment">    }</em>
+<a name="153" href="#153" id="153">153</a> 
+<a name="154" href="#154" id="154">154</a> <em class="jxr_comment">    buf.deleteCharAt(buf.length() - 1);</em>
+<a name="155" href="#155" id="155">155</a> <em class="jxr_comment">    return buf.toString();</em>
+<a name="156" href="#156" id="156">156</a> <em class="jxr_comment">  }</em>
+<a name="157" href="#157" id="157">157</a> 
+<a name="158" href="#158" id="158">158</a> <em class="jxr_comment">  private List getAllProductsByTag(Metadata met, String productName,</em>
+<a name="159" href="#159" id="159">159</a> <em class="jxr_comment">      String tagType) {</em>
+<a name="160" href="#160" id="160">160</a> <em class="jxr_comment">    if (met.containsKey(tagType)) {</em>
+<a name="161" href="#161" id="161">161</a> <em class="jxr_comment">      return met.getAllMetadata(tagType);</em>
+<a name="162" href="#162" id="162">162</a> <em class="jxr_comment">    }</em>
+<a name="163" href="#163" id="163">163</a> 
+<a name="164" href="#164" id="164">164</a> <em class="jxr_comment">    // assume now that there are no test tags</em>
+<a name="165" href="#165" id="165">165</a> <em class="jxr_comment">    // so what we want to do is to query the file catalog</em>
+<a name="166" href="#166" id="166">166</a> <em class="jxr_comment">    // for InputFiles:productName and then keep doing this until</em>
+<a name="167" href="#167" id="167">167</a> <em class="jxr_comment">    // we get an answer that has test tags: for each test tag (once</em>
+<a name="168" href="#168" id="168">168</a> <em class="jxr_comment">    // they are found), we'll collect them in a list</em>
+<a name="169" href="#169" id="169">169</a> <em class="jxr_comment">    List tags = new Vector();</em>
+<a name="170" href="#170" id="170">170</a> <em class="jxr_comment">    boolean foundTag = false;</em>
+<a name="171" href="#171" id="171">171</a> <em class="jxr_comment">    Stack descendants = new Stack();</em>
+<a name="172" href="#172" id="172">172</a> <em class="jxr_comment">    descendants.push(productName);</em>
+<a name="173" href="#173" id="173">173</a> 
+<a name="174" href="#174" id="174">174</a> <em class="jxr_comment">    while (!descendants.empty() &amp;&amp; !foundTag) {</em>
+<a name="175" href="#175" id="175">175</a> <em class="jxr_comment">      String prodName = (String) descendants.pop();</em>
+<a name="176" href="#176" id="176">176</a> <em class="jxr_comment">      List products = fm.queryAllTypes(new InputFilesQuery(prodName, fm)</em>
+<a name="177" href="#177" id="177">177</a> <em class="jxr_comment">          .buildQuery(), this.conf.getExcludedTypes());</em>
+<a name="178" href="#178" id="178">178</a> 
+<a name="179" href="#179" id="179">179</a> <em class="jxr_comment">      // iterate over all the products</em>
+<a name="180" href="#180" id="180">180</a> <em class="jxr_comment">      // get each set of metadata</em>
+<a name="181" href="#181" id="181">181</a> <em class="jxr_comment">      // if you find one tag, then set foundTag = true, and we</em>
+<a name="182" href="#182" id="182">182</a> <em class="jxr_comment">      // break</em>
+<a name="183" href="#183" id="183">183</a> <em class="jxr_comment">      if (products != null &amp;&amp; products.size() &gt; 0) {</em>
+<a name="184" href="#184" id="184">184</a> <em class="jxr_comment">        for (Iterator i = products.iterator(); i.hasNext();) {</em>
+<a name="185" href="#185" id="185">185</a> <em class="jxr_comment">          Product prod = (Product) i.next();</em>
+<a name="186" href="#186" id="186">186</a> <em class="jxr_comment">          Metadata prodMet = fm.safeGetMetadata(prod);</em>
+<a name="187" href="#187" id="187">187</a> 
+<a name="188" href="#188" id="188">188</a> <em class="jxr_comment">          if (prodMet.containsKey(tagType)) {</em>
+<a name="189" href="#189" id="189">189</a> <em class="jxr_comment">            // got one, done</em>
+<a name="190" href="#190" id="190">190</a> <em class="jxr_comment">            if (!foundTag)</em>
+<a name="191" href="#191" id="191">191</a> <em class="jxr_comment">              foundTag = true;</em>
+<a name="192" href="#192" id="192">192</a> <em class="jxr_comment">            if (!tags.contains(prodMet.getMetadata(tagType))) {</em>
+<a name="193" href="#193" id="193">193</a> <em class="jxr_comment">              tags.add(prodMet.getMetadata(tagType));</em>
+<a name="194" href="#194" id="194">194</a> <em class="jxr_comment">            }</em>
+<a name="195" href="#195" id="195">195</a> <em class="jxr_comment">          }</em>
+<a name="196" href="#196" id="196">196</a> <em class="jxr_comment">        }</em>
+<a name="197" href="#197" id="197">197</a> 
+<a name="198" href="#198" id="198">198</a> <em class="jxr_comment">        if (!foundTag) {</em>
+<a name="199" href="#199" id="199">199</a> <em class="jxr_comment">          // continue the search</em>
+<a name="200" href="#200" id="200">200</a> <em class="jxr_comment">          descendants.addAll(FileManagerUtils.toProductNameList(products));</em>
+<a name="201" href="#201" id="201">201</a> <em class="jxr_comment">        }</em>
+<a name="202" href="#202" id="202">202</a> <em class="jxr_comment">      }</em>
+<a name="203" href="#203" id="203">203</a> <em class="jxr_comment">    }</em>
+<a name="204" href="#204" id="204">204</a> 
+<a name="205" href="#205" id="205">205</a> <em class="jxr_comment">    return tags;</em>
+<a name="206" href="#206" id="206">206</a> <em class="jxr_comment">  }</em>
+<a name="207" href="#207" id="207">207</a> 
+<a name="208" href="#208" id="208">208</a> <em class="jxr_comment">}</em>
+</pre>
+<hr /><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body></html>
\ No newline at end of file

Added: oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/PCSTrace.html
URL: http://svn.apache.org/viewvc/oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/PCSTrace.html?rev=1079660&view=auto
==============================================================================
--- oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/PCSTrace.html (added)
+++ oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/PCSTrace.html Wed Mar  9 04:02:09 2011
@@ -0,0 +1,258 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xml:lang="en"><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>PCSTrace xref</title><link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" /></head><body>
+<div id="overview"><a href="../../../../../../apidocs/org/apache/oodt/pcs/tools/PCSTrace.html">View Javadoc</a></div><pre>
+
+<a name="1" href="#1" id="1">1</a>   <em class="jxr_javadoccomment">/**</em>
+<a name="2" href="#2" id="2">2</a>   <em class="jxr_javadoccomment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
+<a name="3" href="#3" id="3">3</a>   <em class="jxr_javadoccomment"> * contributor license agreements.  See the NOTICE file distributed with</em>
+<a name="4" href="#4" id="4">4</a>   <em class="jxr_javadoccomment"> * this work for additional information regarding copyright ownership.</em>
+<a name="5" href="#5" id="5">5</a>   <em class="jxr_javadoccomment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
+<a name="6" href="#6" id="6">6</a>   <em class="jxr_javadoccomment"> * (the "License"); you may not use this file except in compliance with</em>
+<a name="7" href="#7" id="7">7</a>   <em class="jxr_javadoccomment"> * the License.  You may obtain a copy of the License at</em>
+<a name="8" href="#8" id="8">8</a>   <em class="jxr_javadoccomment"> *</em>
+<a name="9" href="#9" id="9">9</a>   <em class="jxr_javadoccomment"> *     <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="10" href="#10" id="10">10</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="11" href="#11" id="11">11</a>  <em class="jxr_javadoccomment"> * Unless required by applicable law or agreed to in writing, software</em>
+<a name="12" href="#12" id="12">12</a>  <em class="jxr_javadoccomment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
+<a name="13" href="#13" id="13">13</a>  <em class="jxr_javadoccomment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
+<a name="14" href="#14" id="14">14</a>  <em class="jxr_javadoccomment"> * See the License for the specific language governing permissions and</em>
+<a name="15" href="#15" id="15">15</a>  <em class="jxr_javadoccomment"> * limitations under the License.</em>
+<a name="16" href="#16" id="16">16</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="17" href="#17" id="17">17</a>  
+<a name="18" href="#18" id="18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.oodt.pcs.tools;
+<a name="19" href="#19" id="19">19</a>  
+<a name="20" href="#20" id="20">20</a>  <em class="jxr_comment">//JDK imports</em>
+<a name="21" href="#21" id="21">21</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
+<a name="22" href="#22" id="22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="23" href="#23" id="23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="24" href="#24" id="24">24</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="25" href="#25" id="25">25</a>  
+<a name="26" href="#26" id="26">26</a>  <em class="jxr_comment">//OODT imports</em>
+<a name="27" href="#27" id="27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.metadata.PCSConfigMetadata;
+<a name="28" href="#28" id="28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.metadata.PCSMetadata;
+<a name="29" href="#29" id="29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.pedigree.Pedigree;
+<a name="30" href="#30" id="30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.pedigree.PedigreeTree;
+<a name="31" href="#31" id="31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.util.FileManagerUtils;
+<a name="32" href="#32" id="32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.pcs.util.WorkflowManagerUtils;
+<a name="33" href="#33" id="33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.cas.filemgr.structs.Product;
+<a name="34" href="#34" id="34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.cas.metadata.Metadata;
+<a name="35" href="#35" id="35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.oodt.cas.workflow.structs.WorkflowInstance;
+<a name="36" href="#36" id="36">36</a>  
+<a name="37" href="#37" id="37">37</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="38" href="#38" id="38">38</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="39" href="#39" id="39">39</a>  <em class="jxr_javadoccomment"> * A program to trace the history of a particular PCS product.</em>
+<a name="40" href="#40" id="40">40</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="41" href="#41" id="41">41</a>  <em class="jxr_javadoccomment"> * @author mattmann</em>
+<a name="42" href="#42" id="42">42</a>  <em class="jxr_javadoccomment"> * @version $Revision$</em>
+<a name="43" href="#43" id="43">43</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="44" href="#44" id="44">44</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="45" href="#45" id="45">45</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/oodt/pcs/tools/PCSTrace.html">PCSTrace</a> implements PCSMetadata, <a href="../../../../../org/apache/oodt/pcs/metadata/PCSConfigMetadata.html">PCSConfigMetadata</a> {
+<a name="46" href="#46" id="46">46</a>  
+<a name="47" href="#47" id="47">47</a>    <em class="jxr_comment">/*<em class="jxr_comment"> our interface to the file manager */</em></em>
+<a name="48" href="#48" id="48">48</a>    <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/oodt/pcs/util/FileManagerUtils.html">FileManagerUtils</a> fm;
+<a name="49" href="#49" id="49">49</a>  
+<a name="50" href="#50" id="50">50</a>    <em class="jxr_comment">/*<em class="jxr_comment"> our interface to the workflow manager */</em></em>
+<a name="51" href="#51" id="51">51</a>    <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/oodt/pcs/util/WorkflowManagerUtils.html">WorkflowManagerUtils</a> wm;
+<a name="52" href="#52" id="52">52</a>  
+<a name="53" href="#53" id="53">53</a>    <em class="jxr_comment">/*<em class="jxr_comment"> whether or not we should list non-cataloged products in pedigree */</em></em>
+<a name="54" href="#54" id="54">54</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> listNotCataloged = false;
+<a name="55" href="#55" id="55">55</a>  
+<a name="56" href="#56" id="56">56</a>    <em class="jxr_comment">/*<em class="jxr_comment"> exclude list */</em></em>
+<a name="57" href="#57" id="57">57</a>    <strong class="jxr_keyword">private</strong> List excludeTypeList;
+<a name="58" href="#58" id="58">58</a>  
+<a name="59" href="#59" id="59">59</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String REPORT_LINE_SEPARATOR = <span class="jxr_string">"-------------------------------------------------- "</span>;
+<a name="60" href="#60" id="60">60</a>  
+<a name="61" href="#61" id="61">61</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/oodt/pcs/tools/PCSTrace.html">PCSTrace</a>(URL wmgrUrl, URL fmUrl) {
+<a name="62" href="#62" id="62">62</a>      fm = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/oodt/pcs/util/FileManagerUtils.html">FileManagerUtils</a>(fmUrl);
+<a name="63" href="#63" id="63">63</a>      wm = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/oodt/pcs/util/WorkflowManagerUtils.html">WorkflowManagerUtils</a>(wmgrUrl);
+<a name="64" href="#64" id="64">64</a>    }
+<a name="65" href="#65" id="65">65</a>  
+<a name="66" href="#66" id="66">66</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/oodt/pcs/tools/PCSTrace.html">PCSTrace</a>(String wmgrUrlStr, String fmUrlStr) {
+<a name="67" href="#67" id="67">67</a>      <strong class="jxr_keyword">this</strong>(FileManagerUtils.safeGetUrlFromString(wmgrUrlStr), <a href="../../../../../org/apache/oodt/pcs/util/FileManagerUtils.html">FileManagerUtils</a>
+<a name="68" href="#68" id="68">68</a>          .safeGetUrlFromString(fmUrlStr));
+<a name="69" href="#69" id="69">69</a>    }
+<a name="70" href="#70" id="70">70</a>  
+<a name="71" href="#71" id="71">71</a>    <em class="jxr_javadoccomment">/**</em>
+<a name="72" href="#72" id="72">72</a>  <em class="jxr_javadoccomment">   * @param excludeTypeList</em>
+<a name="73" href="#73" id="73">73</a>  <em class="jxr_javadoccomment">   *          the excludeTypeList to set</em>
+<a name="74" href="#74" id="74">74</a>  <em class="jxr_javadoccomment">   */</em>
+<a name="75" href="#75" id="75">75</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setExcludeTypeList(List excludeTypeList) {
+<a name="76" href="#76" id="76">76</a>      <strong class="jxr_keyword">this</strong>.excludeTypeList = excludeTypeList;
+<a name="77" href="#77" id="77">77</a>    }
+<a name="78" href="#78" id="78">78</a>  
+<a name="79" href="#79" id="79">79</a>    <em class="jxr_javadoccomment">/**</em>
+<a name="80" href="#80" id="80">80</a>  <em class="jxr_javadoccomment">   * @return the excludeTypeList</em>
+<a name="81" href="#81" id="81">81</a>  <em class="jxr_javadoccomment">   */</em>
+<a name="82" href="#82" id="82">82</a>    <strong class="jxr_keyword">public</strong> List getExcludeTypeList() {
+<a name="83" href="#83" id="83">83</a>      <strong class="jxr_keyword">return</strong> excludeTypeList;
+<a name="84" href="#84" id="84">84</a>    }
+<a name="85" href="#85" id="85">85</a>  
+<a name="86" href="#86" id="86">86</a>    <em class="jxr_javadoccomment">/**</em>
+<a name="87" href="#87" id="87">87</a>  <em class="jxr_javadoccomment">   * Outputs a trace report in the following format:</em>
+<a name="88" href="#88" id="88">88</a>  <em class="jxr_javadoccomment">   * </em>
+<a name="89" href="#89" id="89">89</a>  <em class="jxr_javadoccomment">   * Product Name: &lt;i&gt;oco_L1aRad09088_0939838838.hdf&lt;/i&gt;</em>
+<a name="90" href="#90" id="90">90</a>  <em class="jxr_javadoccomment">   * -------------------------------------------------- Location:</em>
+<a name="91" href="#91" id="91">91</a>  <em class="jxr_javadoccomment">   * /preflt/jpl/Rad/9088/l1a/oco_L1aRad09088_0939838838.hdf</em>
+<a name="92" href="#92" id="92">92</a>  <em class="jxr_javadoccomment">   * </em>
+<a name="93" href="#93" id="93">93</a>  <em class="jxr_javadoccomment">   * Metadata:</em>
+<a name="94" href="#94" id="94">94</a>  <em class="jxr_javadoccomment">   * </em>
+<a name="95" href="#95" id="95">95</a>  <em class="jxr_javadoccomment">   * &amp;lt;Met Field Name&amp;gt; =&amp;gt; &amp;lt;Met Field Value&amp;gt; &amp;lt;Met Field</em>
+<a name="96" href="#96" id="96">96</a>  <em class="jxr_javadoccomment">   * Name2&amp;gt; =&amp;gt; &amp;lt;Met Field Value2&amp;gt;</em>
+<a name="97" href="#97" id="97">97</a>  <em class="jxr_javadoccomment">   * </em>
+<a name="98" href="#98" id="98">98</a>  <em class="jxr_javadoccomment">   * --------------------------------------------------- Generated from</em>
+<a name="99" href="#99" id="99">99</a>  <em class="jxr_javadoccomment">   * workflows:</em>
+<a name="100" href="#100" id="100">100</a> <em class="jxr_javadoccomment">   * </em>
+<a name="101" href="#101" id="101">101</a> <em class="jxr_javadoccomment">   * CPT Pipeline: ID: [99299-add99-92983-9d9d9-0099d] State: FINISHED</em>
+<a name="102" href="#102" id="102">102</a> <em class="jxr_javadoccomment">   * Associated products:</em>
+<a name="103" href="#103" id="103">103</a> <em class="jxr_javadoccomment">   * </em>
+<a name="104" href="#104" id="104">104</a> <em class="jxr_javadoccomment">   * oco_RawL017_93983993938.pkt oco_RawL032_93939388383.pkt</em>
+<a name="105" href="#105" id="105">105</a> <em class="jxr_javadoccomment">   * oco_RawL033_93838383838.pkt oco_RawL034_93938378585.pkt</em>
+<a name="106" href="#106" id="106">106</a> <em class="jxr_javadoccomment">   * </em>
+<a name="107" href="#107" id="107">107</a> <em class="jxr_javadoccomment">   * --------------------------------------------------- Full lineage:</em>
+<a name="108" href="#108" id="108">108</a> <em class="jxr_javadoccomment">   * </em>
+<a name="109" href="#109" id="109">109</a> <em class="jxr_javadoccomment">   * Upstream: CPTOverview_98383388d.txt=&amp;gt;oco_RawL017_93983993938.pkt=&amp;gt;</em>
+<a name="110" href="#110" id="110">110</a> <em class="jxr_javadoccomment">   * oco_RawL032_93939388383</em>
+<a name="111" href="#111" id="111">111</a> <em class="jxr_javadoccomment">   * .pkt=&amp;gt;oco_RawL033_93838383838.pkt=&amp;gt;oco_RawL034_93938378585.pkt</em>
+<a name="112" href="#112" id="112">112</a> <em class="jxr_javadoccomment">   * </em>
+<a name="113" href="#113" id="113">113</a> <em class="jxr_javadoccomment">   * Downstream: oco_L1BRad_19889_983838383.hdf</em>
+<a name="114" href="#114" id="114">114</a> <em class="jxr_javadoccomment">   * ---------------------------------------------------</em>
+<a name="115" href="#115" id="115">115</a> <em class="jxr_javadoccomment">   * </em>
+<a name="116" href="#116" id="116">116</a> <em class="jxr_javadoccomment">   * </em>
+<a name="117" href="#117" id="117">117</a> <em class="jxr_javadoccomment">   * @param productName</em>
+<a name="118" href="#118" id="118">118</a> <em class="jxr_javadoccomment">   *          The name of the product to trace lineage for.</em>
+<a name="119" href="#119" id="119">119</a> <em class="jxr_javadoccomment">   */</em>
+<a name="120" href="#120" id="120">120</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> doTrace(String productName) {
+<a name="121" href="#121" id="121">121</a> 
+<a name="122" href="#122" id="122">122</a>     <a href="../../../../../org/apache/oodt/cas/filemgr/structs/Product.html">Product</a> prod = fm.safeGetProductByName(productName);
+<a name="123" href="#123" id="123">123</a> 
+<a name="124" href="#124" id="124">124</a>     <a href="../../../../../org/apache/oodt/pcs/pedigree/Pedigree.html">Pedigree</a> pedigree = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/oodt/pcs/pedigree/Pedigree.html">Pedigree</a>(fm, <strong class="jxr_keyword">this</strong>.listNotCataloged,
+<a name="125" href="#125" id="125">125</a>         <strong class="jxr_keyword">this</strong>.excludeTypeList);
+<a name="126" href="#126" id="126">126</a> 
+<a name="127" href="#127" id="127">127</a>     System.out.println(<span class="jxr_string">""</span>);
+<a name="128" href="#128" id="128">128</a>     System.out.println(REPORT_LINE_SEPARATOR);
+<a name="129" href="#129" id="129">129</a>     System.out.println(<span class="jxr_string">"Product: "</span> + prod.getProductName());
+<a name="130" href="#130" id="130">130</a>     System.out.println(REPORT_LINE_SEPARATOR);
+<a name="131" href="#131" id="131">131</a> 
+<a name="132" href="#132" id="132">132</a>     prod.setProductReferences(fm.safeGetProductReferences(prod));
+<a name="133" href="#133" id="133">133</a>     System.out.println(<span class="jxr_string">"Location: "</span> + fm.getFilePath(prod));
+<a name="134" href="#134" id="134">134</a>     System.out.println(REPORT_LINE_SEPARATOR);
+<a name="135" href="#135" id="135">135</a>     System.out.println(<span class="jxr_string">"Metadata: "</span>);
+<a name="136" href="#136" id="136">136</a>     <a href="../../../../../org/apache/oodt/cas/metadata/Metadata.html">Metadata</a> met = fm.safeGetMetadata(prod);
+<a name="137" href="#137" id="137">137</a>     <strong class="jxr_keyword">if</strong> (met != <strong class="jxr_keyword">null</strong> &amp;&amp; met.getHashtable() != <strong class="jxr_keyword">null</strong>
+<a name="138" href="#138" id="138">138</a>         &amp;&amp; met.getHashtable().keySet().size() &gt; 0) {
+<a name="139" href="#139" id="139">139</a>       <strong class="jxr_keyword">for</strong> (Iterator i = met.getHashtable().keySet().iterator(); i.hasNext();) {
+<a name="140" href="#140" id="140">140</a>         String key = (String) i.next();
+<a name="141" href="#141" id="141">141</a>         List vals = met.getAllMetadata(key);
+<a name="142" href="#142" id="142">142</a>         System.out.println(key + <span class="jxr_string">"=&gt;"</span> + vals);
+<a name="143" href="#143" id="143">143</a>       }
+<a name="144" href="#144" id="144">144</a>     }
+<a name="145" href="#145" id="145">145</a> 
+<a name="146" href="#146" id="146">146</a>     System.out.println(REPORT_LINE_SEPARATOR);
+<a name="147" href="#147" id="147">147</a>     System.out.println(<span class="jxr_string">"Generated from workflow:"</span>);
+<a name="148" href="#148" id="148">148</a>     System.out.println(<span class="jxr_string">""</span>);
+<a name="149" href="#149" id="149">149</a>     <a href="../../../../../org/apache/oodt/cas/workflow/structs/WorkflowInstance.html">WorkflowInstance</a> inst = <strong class="jxr_keyword">null</strong>;
+<a name="150" href="#150" id="150">150</a> 
+<a name="151" href="#151" id="151">151</a>     <strong class="jxr_keyword">try</strong> {
+<a name="152" href="#152" id="152">152</a>       inst = getWorkflowInstanceById(wm.safeGetWorkflowInstances(), met
+<a name="153" href="#153" id="153">153</a>           .getMetadata(JOB_ID));
+<a name="154" href="#154" id="154">154</a> 
+<a name="155" href="#155" id="155">155</a>       System.out.println(inst.getWorkflow().getName() + <span class="jxr_string">": ID: ["</span>
+<a name="156" href="#156" id="156">156</a>           + inst.getId() + <span class="jxr_string">"]"</span>);
+<a name="157" href="#157" id="157">157</a>       System.out.println(<span class="jxr_string">"Status: "</span> + inst.getStatus());
+<a name="158" href="#158" id="158">158</a>       List wInstProds = pedigree.getWorkflowInstProds(inst.getId());
+<a name="159" href="#159" id="159">159</a>       <strong class="jxr_keyword">if</strong> (wInstProds != <strong class="jxr_keyword">null</strong> &amp;&amp; wInstProds.size() &gt; 0) {
+<a name="160" href="#160" id="160">160</a>         System.out.println(<span class="jxr_string">"Associated products:"</span>);
+<a name="161" href="#161" id="161">161</a>         System.out.println(<span class="jxr_string">""</span>);
+<a name="162" href="#162" id="162">162</a>         <strong class="jxr_keyword">for</strong> (Iterator i = wInstProds.iterator(); i.hasNext();) {
+<a name="163" href="#163" id="163">163</a>           <a href="../../../../../org/apache/oodt/cas/filemgr/structs/Product.html">Product</a> wInstProd = (Product) i.next();
+<a name="164" href="#164" id="164">164</a>           System.out.println(wInstProd.getProductName());
+<a name="165" href="#165" id="165">165</a>         }
+<a name="166" href="#166" id="166">166</a>       }
+<a name="167" href="#167" id="167">167</a>     } <strong class="jxr_keyword">catch</strong> (Exception e) {
+<a name="168" href="#168" id="168">168</a>       System.out.println(<span class="jxr_string">"Unable to obtain workflow instance for product!"</span>);
+<a name="169" href="#169" id="169">169</a>     }
+<a name="170" href="#170" id="170">170</a> 
+<a name="171" href="#171" id="171">171</a>     System.out.println(REPORT_LINE_SEPARATOR);
+<a name="172" href="#172" id="172">172</a>     System.out.println(<span class="jxr_string">"Full lineage:"</span>);
+<a name="173" href="#173" id="173">173</a>     System.out.println(<span class="jxr_string">""</span>);
+<a name="174" href="#174" id="174">174</a>     System.out.println(<span class="jxr_string">"Downstream:"</span>);
+<a name="175" href="#175" id="175">175</a> 
+<a name="176" href="#176" id="176">176</a>     <a href="../../../../../org/apache/oodt/pcs/pedigree/PedigreeTree.html">PedigreeTree</a> downstreamLineageTree = pedigree.doPedigree(prod, false);
+<a name="177" href="#177" id="177">177</a>     downstreamLineageTree.printPedigreeTree();
+<a name="178" href="#178" id="178">178</a> 
+<a name="179" href="#179" id="179">179</a>     System.out.println(<span class="jxr_string">""</span>);
+<a name="180" href="#180" id="180">180</a>     System.out.println(<span class="jxr_string">"Upstream:"</span>);
+<a name="181" href="#181" id="181">181</a>     <a href="../../../../../org/apache/oodt/pcs/pedigree/PedigreeTree.html">PedigreeTree</a> upstreamLineageTree = pedigree.doPedigree(prod, <strong class="jxr_keyword">true</strong>);
+<a name="182" href="#182" id="182">182</a>     upstreamLineageTree.printPedigreeTree();
+<a name="183" href="#183" id="183">183</a> 
+<a name="184" href="#184" id="184">184</a>   }
+<a name="185" href="#185" id="185">185</a> 
+<a name="186" href="#186" id="186">186</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> enableNonCatalogProductsInPed() {
+<a name="187" href="#187" id="187">187</a>     <strong class="jxr_keyword">this</strong>.listNotCataloged = <strong class="jxr_keyword">true</strong>;
+<a name="188" href="#188" id="188">188</a>   }
+<a name="189" href="#189" id="189">189</a> 
+<a name="190" href="#190" id="190">190</a>   <em class="jxr_javadoccomment">/**</em>
+<a name="191" href="#191" id="191">191</a> <em class="jxr_javadoccomment">   * </em>
+<a name="192" href="#192" id="192">192</a> <em class="jxr_javadoccomment">   * @param args</em>
+<a name="193" href="#193" id="193">193</a> <em class="jxr_javadoccomment">   * @throws Exception</em>
+<a name="194" href="#194" id="194">194</a> <em class="jxr_javadoccomment">   */</em>
+<a name="195" href="#195" id="195">195</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> Exception {
+<a name="196" href="#196" id="196">196</a>     String productName = <strong class="jxr_keyword">null</strong>;
+<a name="197" href="#197" id="197">197</a>     String workflowUrlStr = <strong class="jxr_keyword">null</strong>, filemgrUrlStr = <strong class="jxr_keyword">null</strong>;
+<a name="198" href="#198" id="198">198</a>     <strong class="jxr_keyword">boolean</strong> enableNotCat = false;
+<a name="199" href="#199" id="199">199</a>     List exList = <strong class="jxr_keyword">null</strong>;
+<a name="200" href="#200" id="200">200</a> 
+<a name="201" href="#201" id="201">201</a>     String usage = <span class="jxr_string">"PCSTrace --fm &lt;url&gt; --wm &lt;url&gt; --product &lt;name&gt; "</span>
+<a name="202" href="#202" id="202">202</a>         + <span class="jxr_string">" [--enableNonCat] [--exclude &lt;type name 1&gt;,&lt;type name 2&gt;...,&lt;type name n&gt;]\n"</span>;
+<a name="203" href="#203" id="203">203</a> 
+<a name="204" href="#204" id="204">204</a>     <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; args.length; i++) {
+<a name="205" href="#205" id="205">205</a>       <strong class="jxr_keyword">if</strong> (args[i].equals(<span class="jxr_string">"--fm"</span>)) {
+<a name="206" href="#206" id="206">206</a>         filemgrUrlStr = args[++i];
+<a name="207" href="#207" id="207">207</a>       } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (args[i].equals(<span class="jxr_string">"--wm"</span>)) {
+<a name="208" href="#208" id="208">208</a>         workflowUrlStr = args[++i];
+<a name="209" href="#209" id="209">209</a>       } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (args[i].equals(<span class="jxr_string">"--product"</span>)) {
+<a name="210" href="#210" id="210">210</a>         productName = args[++i];
+<a name="211" href="#211" id="211">211</a>       } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (args[i].equals(<span class="jxr_string">"--enableNonCat"</span>)) {
+<a name="212" href="#212" id="212">212</a>         enableNotCat = <strong class="jxr_keyword">true</strong>;
+<a name="213" href="#213" id="213">213</a>       } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (args[i].equals(<span class="jxr_string">"--exclude"</span>)) {
+<a name="214" href="#214" id="214">214</a>         String[] excludeTypes = args[++i].split(<span class="jxr_string">","</span>);
+<a name="215" href="#215" id="215">215</a>         exList = Arrays.asList(excludeTypes);
+<a name="216" href="#216" id="216">216</a>       }
+<a name="217" href="#217" id="217">217</a> 
+<a name="218" href="#218" id="218">218</a>     }
+<a name="219" href="#219" id="219">219</a> 
+<a name="220" href="#220" id="220">220</a>     <strong class="jxr_keyword">if</strong> (productName == <strong class="jxr_keyword">null</strong> || workflowUrlStr == <strong class="jxr_keyword">null</strong> || filemgrUrlStr == <strong class="jxr_keyword">null</strong>) {
+<a name="221" href="#221" id="221">221</a>       System.err.println(usage);
+<a name="222" href="#222" id="222">222</a>       System.exit(1);
+<a name="223" href="#223" id="223">223</a>     }
+<a name="224" href="#224" id="224">224</a> 
+<a name="225" href="#225" id="225">225</a>     <a href="../../../../../org/apache/oodt/pcs/tools/PCSTrace.html">PCSTrace</a> tracer = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/oodt/pcs/tools/PCSTrace.html">PCSTrace</a>(workflowUrlStr, filemgrUrlStr);
+<a name="226" href="#226" id="226">226</a>     <strong class="jxr_keyword">if</strong> (enableNotCat) {
+<a name="227" href="#227" id="227">227</a>       tracer.enableNonCatalogProductsInPed();
+<a name="228" href="#228" id="228">228</a>     }
+<a name="229" href="#229" id="229">229</a>     <strong class="jxr_keyword">if</strong> (exList != <strong class="jxr_keyword">null</strong>) {
+<a name="230" href="#230" id="230">230</a>       tracer.setExcludeTypeList(exList);
+<a name="231" href="#231" id="231">231</a>     }
+<a name="232" href="#232" id="232">232</a>     tracer.doTrace(productName);
+<a name="233" href="#233" id="233">233</a> 
+<a name="234" href="#234" id="234">234</a>   }
+<a name="235" href="#235" id="235">235</a> 
+<a name="236" href="#236" id="236">236</a>   <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/oodt/cas/workflow/structs/WorkflowInstance.html">WorkflowInstance</a> getWorkflowInstanceById(List insts, String id) {
+<a name="237" href="#237" id="237">237</a>     <strong class="jxr_keyword">if</strong> (insts == <strong class="jxr_keyword">null</strong>) {
+<a name="238" href="#238" id="238">238</a>       <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="239" href="#239" id="239">239</a>     }
+<a name="240" href="#240" id="240">240</a> 
+<a name="241" href="#241" id="241">241</a>     <strong class="jxr_keyword">for</strong> (Iterator i = insts.iterator(); i.hasNext();) {
+<a name="242" href="#242" id="242">242</a>       <a href="../../../../../org/apache/oodt/cas/workflow/structs/WorkflowInstance.html">WorkflowInstance</a> inst = (WorkflowInstance) i.next();
+<a name="243" href="#243" id="243">243</a>       <strong class="jxr_keyword">if</strong> (inst.getId().equals(id)) {
+<a name="244" href="#244" id="244">244</a>         <strong class="jxr_keyword">return</strong> inst;
+<a name="245" href="#245" id="245">245</a>       }
+<a name="246" href="#246" id="246">246</a>     }
+<a name="247" href="#247" id="247">247</a> 
+<a name="248" href="#248" id="248">248</a>     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="249" href="#249" id="249">249</a>   }
+<a name="250" href="#250" id="250">250</a> 
+<a name="251" href="#251" id="251">251</a> }
+</pre>
+<hr /><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body></html>
\ No newline at end of file

Added: oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/package-frame.html
URL: http://svn.apache.org/viewvc/oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/package-frame.html?rev=1079660&view=auto
==============================================================================
--- oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/package-frame.html (added)
+++ oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/package-frame.html Wed Mar  9 04:02:09 2011
@@ -0,0 +1,20 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xml:lang="en"><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>Apache OODT 0.3-SNAPSHOT Reference Package org.apache.oodt.pcs.tools</title><link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" /></head><body>&#13;
+&#13;
+		<h3>&#13;
+        	<a href="package-summary.html" target="classFrame">org.apache.oodt.pcs.tools</a>&#13;
+      	</h3>&#13;
+&#13;
+      	<h3>Classes</h3>&#13;
+&#13;
+      	<ul><li>&#13;
+            	<a href="PCSHealthMonitor.html" target="classFrame">PCSHealthMonitor</a>&#13;
+          	</li>&#13;
+          	          	<li>&#13;
+            	<a href="PCSLongLister.html" target="classFrame">PCSLongLister</a>&#13;
+          	</li>&#13;
+          	          	<li>&#13;
+            	<a href="PCSTrace.html" target="classFrame">PCSTrace</a>&#13;
+          	</li>&#13;
+          	      	</ul></body></html>
\ No newline at end of file

Added: oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/package-summary.html
URL: http://svn.apache.org/viewvc/oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/package-summary.html?rev=1079660&view=auto
==============================================================================
--- oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/package-summary.html (added)
+++ oodt/site/components/maven/xref/org/apache/oodt/pcs/tools/package-summary.html Wed Mar  9 04:02:09 2011
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xml:lang="en"><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>Apache OODT 0.3-SNAPSHOT Reference Package org.apache.oodt.pcs.tools</title><link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" /></head><body>&#13;
+		      	<div class="overview">&#13;
+        	<ul><li>&#13;
+            		<a href="../../../../../overview-summary.html">Overview</a>&#13;
+          		</li>&#13;
+          		<li class="selected">Package</li>&#13;
+        	</ul></div>&#13;
+      	<div class="framenoframe">&#13;
+        	<ul><li>&#13;
+            		<a href="../../../../../index.html" target="_top">FRAMES</a>&#13;
+          		</li>&#13;
+          		<li>&#13;
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>&#13;
+          		</li>&#13;
+        	</ul></div>&#13;
+		&#13;
+		      	<h2>Package org.apache.oodt.pcs.tools</h2>&#13;
+&#13;
+		<table class="summary"><thead><tr><th>Class Summary</th>&#13;
+          		</tr></thead><tbody><tr><td>&#13;
+                		<a href="PCSHealthMonitor.html" target="classFrame">PCSHealthMonitor</a>&#13;
+              		</td>&#13;
+            	</tr><tr><td>&#13;
+                		<a href="PCSLongLister.html" target="classFrame">PCSLongLister</a>&#13;
+              		</td>&#13;
+            	</tr><tr><td>&#13;
+                		<a href="PCSTrace.html" target="classFrame">PCSTrace</a>&#13;
+              		</td>&#13;
+            	</tr></tbody></table><div class="overview">&#13;
+        	<ul><li>&#13;
+            		<a href="../../../../../overview-summary.html">Overview</a>&#13;
+          		</li>&#13;
+          		<li class="selected">Package</li>&#13;
+        	</ul></div>&#13;
+      	<div class="framenoframe">&#13;
+        	<ul><li>&#13;
+            		<a href="../../../../../index.html" target="_top">FRAMES</a>&#13;
+          		</li>&#13;
+          		<li>&#13;
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>&#13;
+          		</li>&#13;
+        	</ul></div>&#13;
+				<hr />&#13;
+		Copyright © 1999-2011 Apache OODT. All Rights Reserved.&#13;
+	</body></html>
\ No newline at end of file