home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / Notes.jar / lotus / domino / local / DebugDocumentCollection.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-15  |  7.9 KB  |  388 lines

  1. package lotus.domino.local;
  2.  
  3. import java.util.Vector;
  4. import lotus.domino.Database;
  5. import lotus.domino.Document;
  6. import lotus.domino.Item;
  7. import lotus.domino.NotesException;
  8. import lotus.domino.Session;
  9. import lotus.domino.View;
  10.  
  11. public class DebugDocumentCollection extends DocumentCollection {
  12.    private Document docAgentContext;
  13.    private String srchItem;
  14.    private String srchValue;
  15.    private String srchFormula;
  16.    private Vector selectedDocs = new Vector(20, 10);
  17.    private Vector processedDocs = new Vector(20, 10);
  18.    private Vector processedDateTimes = new Vector(20, 10);
  19.    private boolean processedDocsInContext = false;
  20.    private Vector unprocessedDocs = new Vector(20, 10);
  21.    private boolean IsSorted;
  22.    private Database Parent;
  23.    private String Query;
  24.  
  25.    protected DebugDocumentCollection(Database var1, Document var2, String var3, String var4, String var5) throws NotesException {
  26.       super((lotus.domino.local.Database)var1, 1);
  27.       this.docAgentContext = var2;
  28.       this.srchItem = var3;
  29.       this.srchValue = var4;
  30.       this.srchFormula = var5;
  31.       this.selectedDocs = var2.getItemValue("SelectedDocs");
  32.       this.processedDocs = var2.getItemValue("ProcessedDocs");
  33.       this.processedDateTimes = var2.getItemValue("ProcessedDateTimes");
  34.       this.Parent = var1;
  35.       this.Query = null;
  36.       Vector var7 = new Vector(20, 10);
  37.       String var8 = var2.getItemValueString("AgentRunsOn");
  38.       switch (var8.charAt(0)) {
  39.          case '0':
  40.             lotus.domino.DocumentCollection var16 = var1.getAllDocuments();
  41.             String var21 = var2.getItemValueString("AgentSearchCriteria");
  42.             if (var21 != null) {
  43.                var16.FTSearch(var2.getItemValueString("AgentSearchCriteria"), 0);
  44.             }
  45.  
  46.             for(int var26 = 1; var26 <= var16.getCount(); ++var26) {
  47.                Document var31 = var16.getNthDocument(var26);
  48.                var7.addElement(var31.getNoteID());
  49.             }
  50.  
  51.             this.unprocessedDocs = var7;
  52.             this.IsSorted = var16.isSorted();
  53.             return;
  54.          case '1':
  55.             this.processedDocsInContext = true;
  56.             int var20 = 0;
  57.  
  58.             for(int var25 = this.processedDocs.size(); var20 < var25; var25 = this.processedDocs.size()) {
  59.                DateTime var29;
  60.                if (this.processedDateTimes.isEmpty()) {
  61.                   var29 = null;
  62.                } else {
  63.                   var29 = (DateTime)this.processedDateTimes.elementAt(var20);
  64.                }
  65.  
  66.                Document var33 = var1.getDocumentByID((String)this.processedDocs.elementAt(var20));
  67.                if (var33 != null && var29.timeDifference(var33.getLastModified()) >= 0) {
  68.                   ++var20;
  69.                } else {
  70.                   this.processedDocs.removeElementAt(var20);
  71.                   this.processedDateTimes.removeElementAt(var20);
  72.                }
  73.             }
  74.  
  75.             lotus.domino.DocumentCollection var15 = var1.getAllDocuments();
  76.             String var30 = var2.getItemValueString("AgentSearchCriteria");
  77.             if (var30 != null) {
  78.                var15.FTSearch(var2.getItemValueString("AgentSearchCriteria"), 0);
  79.             }
  80.  
  81.             for(int var34 = 1; var34 <= var15.getCount(); ++var34) {
  82.                Document var35 = var15.getNthDocument(var34);
  83.                String var14 = var35.getNoteID();
  84.                if (!this.processedDocs.contains(var14)) {
  85.                   var7.addElement(var14);
  86.                }
  87.             }
  88.  
  89.             this.unprocessedDocs = var7;
  90.             this.IsSorted = var15.isSorted();
  91.             this.docAgentContext.replaceItemValue("ProcessedDocs", this.processedDocs);
  92.  
  93.             while(this.docAgentContext.hasItem("ProcessedDateTimes")) {
  94.                this.docAgentContext.removeItem("ProcessedDateTimes");
  95.             }
  96.  
  97.             this.docAgentContext.appendItemValue("ProcessedDateTimes", this.processedDateTimes);
  98.             this.docAgentContext.save();
  99.             return;
  100.          case '2':
  101.             String var19 = var2.getItemValueString("AgentRunsOnView");
  102.             View var24 = var1.getView(var19);
  103.             String var28 = var2.getItemValueString("AgentSearchCriteria");
  104.             if (var28 != null) {
  105.                var24.FTSearch(var28, 0);
  106.             }
  107.  
  108.             for(Document var32 = var24.getFirstDocument(); var32 != null; var32 = var24.getNextDocument(var32)) {
  109.                String var13 = var32.getNoteID();
  110.                if (this.selectedDocs.contains(var13)) {
  111.                   var7.addElement(var13);
  112.                }
  113.             }
  114.  
  115.             this.unprocessedDocs = var7;
  116.             this.IsSorted = false;
  117.             return;
  118.          case '3':
  119.             String var18 = var2.getItemValueString("AgentRunsOnView");
  120.             View var23 = var1.getView(var18);
  121.             String var27 = var2.getItemValueString("AgentSearchCriteria");
  122.             if (var27 != null) {
  123.                var23.FTSearch(var27, 0);
  124.             }
  125.  
  126.             for(Document var12 = var23.getFirstDocument(); var12 != null; var12 = var23.getNextDocument(var12)) {
  127.                var7.addElement(var12.getNoteID());
  128.             }
  129.  
  130.             this.unprocessedDocs = var7;
  131.             this.IsSorted = false;
  132.             return;
  133.          case '4':
  134.             this.IsSorted = false;
  135.             this.unprocessedDocs = var2.getItemValue("SelectedDocs");
  136.             String var17 = var2.getItemValueString("AgentSearchCriteria");
  137.             if (var17 == null) {
  138.                return;
  139.             }
  140.  
  141.             this.stampAll(this.srchItem, this.srchValue);
  142.             lotus.domino.DocumentCollection var6 = var1.search(this.srchFormula);
  143.             this.unstampAll(this.srchItem);
  144.             var6.FTSearch(var17, 0);
  145.             this.unprocessedDocs.removeAllElements();
  146.  
  147.             for(int var22 = 1; var22 <= var6.getCount(); ++var22) {
  148.                Document var11 = var6.getNthDocument(var22);
  149.                this.unprocessedDocs.addElement(var11.getNoteID());
  150.             }
  151.  
  152.             this.IsSorted = var6.isSorted();
  153.             return;
  154.          case '5':
  155.             String var9 = var2.getItemValueString("DocumentContext");
  156.             Document var10 = var1.getDocumentByUNID(var9);
  157.             if (var10 != null) {
  158.                var7.addElement(var10.getNoteID());
  159.             }
  160.  
  161.             this.unprocessedDocs = var7;
  162.             this.IsSorted = false;
  163.             return;
  164.          default:
  165.             throw new NotesException(0, "Exception: undefined AgentContext state");
  166.       }
  167.    }
  168.  
  169.    public int getCount() throws NotesException {
  170.       return this.unprocessedDocs.size();
  171.    }
  172.  
  173.    public boolean isSorted() throws NotesException {
  174.       return this.IsSorted;
  175.    }
  176.  
  177.    public Database getParent() throws NotesException {
  178.       return this.Parent;
  179.    }
  180.  
  181.    public String getQuery() throws NotesException {
  182.       return this.Query;
  183.    }
  184.  
  185.    public void FTSearch(String var1, int var2) throws NotesException {
  186.       if (var1 != null && this.unprocessedDocs.size() >= 1) {
  187.          this.stampAll(this.srchItem, this.srchValue);
  188.          lotus.domino.DocumentCollection var3 = this.Parent.search(this.srchFormula);
  189.          this.unstampAll(this.srchItem);
  190.          var3.FTSearch(var1, var2);
  191.          this.unprocessedDocs.removeAllElements();
  192.  
  193.          for(int var4 = 1; var4 <= var3.getCount(); ++var4) {
  194.             Document var5 = var3.getNthDocument(var4);
  195.             this.unprocessedDocs.addElement(var5.getNoteID());
  196.          }
  197.  
  198.          this.IsSorted = var3.isSorted();
  199.          this.Query = var3.getQuery();
  200.       }
  201.    }
  202.  
  203.    public Document getFirstDocument() throws NotesException {
  204.       return this.unprocessedDocs.size() >= 1 ? this.Parent.getDocumentByID((String)this.unprocessedDocs.firstElement()) : null;
  205.    }
  206.  
  207.    public Document getLastDocument() throws NotesException {
  208.       return this.unprocessedDocs.size() >= 1 ? this.Parent.getDocumentByID((String)this.unprocessedDocs.lastElement()) : null;
  209.    }
  210.  
  211.    public Document getNextDocument(Document var1) throws NotesException {
  212.       if (var1 == null) {
  213.          return null;
  214.       } else {
  215.          String var2 = var1.getNoteID();
  216.  
  217.          for(int var3 = 0; var3 < this.unprocessedDocs.size() - 1; ++var3) {
  218.             if (var2.equals(this.unprocessedDocs.elementAt(var3))) {
  219.                return this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var3 + 1));
  220.             }
  221.          }
  222.  
  223.          return null;
  224.       }
  225.    }
  226.  
  227.    public Document getNthDocument(int var1) throws NotesException {
  228.       int var2 = var1 - 1;
  229.       return var2 >= 0 && var2 < this.unprocessedDocs.size() ? this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var2)) : null;
  230.    }
  231.  
  232.    public Document getPrevDocument(Document var1) throws NotesException {
  233.       if (var1 == null) {
  234.          return null;
  235.       } else {
  236.          String var2 = var1.getNoteID();
  237.  
  238.          for(int var3 = this.unprocessedDocs.size() - 1; var3 > 0; --var3) {
  239.             if (var2.equals(this.unprocessedDocs.elementAt(var3))) {
  240.                return this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var3 - 1));
  241.             }
  242.          }
  243.  
  244.          return null;
  245.       }
  246.    }
  247.  
  248.    public void putAllInFolder(String var1) throws NotesException {
  249.       if (var1 != null) {
  250.          for(int var2 = 0; var2 < this.unprocessedDocs.size(); ++var2) {
  251.             Document var3 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var2));
  252.             var3.putInFolder(var1);
  253.          }
  254.  
  255.       }
  256.    }
  257.  
  258.    public void removeAll(boolean var1) throws NotesException {
  259.       String var2 = this.docAgentContext.getItemValueString("DocumentContext");
  260.       boolean var3 = false;
  261.       int var4 = 0;
  262.  
  263.       for(int var5 = this.unprocessedDocs.size(); var4 < var5; var5 = this.unprocessedDocs.size()) {
  264.          Document var6 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var4));
  265.          if (var6.getUniversalID() == var2) {
  266.             var3 = true;
  267.          }
  268.  
  269.          if (var6.remove(var1)) {
  270.             this.selectedDocs.removeElement((String)this.unprocessedDocs.elementAt(var4));
  271.             int var7 = this.processedDocs.indexOf((String)this.unprocessedDocs.elementAt(var4));
  272.             this.processedDocs.removeElementAt(var7);
  273.             this.processedDateTimes.removeElementAt(var7);
  274.             this.unprocessedDocs.removeElementAt(var4);
  275.             if (var3) {
  276.                var3 = false;
  277.                this.docAgentContext.replaceItemValue("DocumentContext", "");
  278.                this.docAgentContext.save();
  279.             }
  280.          } else {
  281.             ++var4;
  282.          }
  283.       }
  284.  
  285.       this.docAgentContext.replaceItemValue("SelectedDocs", this.selectedDocs);
  286.       this.docAgentContext.replaceItemValue("ProcessedDocs", this.processedDocs);
  287.  
  288.       while(this.docAgentContext.hasItem("ProcessedDateTimes")) {
  289.          this.docAgentContext.removeItem("ProcessedDateTimes");
  290.       }
  291.  
  292.       this.docAgentContext.appendItemValue("ProcessedDateTimes", this.processedDateTimes);
  293.       this.docAgentContext.save();
  294.    }
  295.  
  296.    public void removeAllFromFolder(String var1) throws NotesException {
  297.       if (var1 != null) {
  298.          View var2 = this.Parent.getView(var1);
  299.          if (var2 != null) {
  300.             for(int var3 = 0; var3 < this.unprocessedDocs.size(); ++var3) {
  301.                Document var4 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var3));
  302.                var4.removeFromFolder(var1);
  303.             }
  304.  
  305.          }
  306.       }
  307.    }
  308.  
  309.    public void stampAll(String var1, Object var2) throws NotesException {
  310.       if (var1 != null && var2 != null) {
  311.          for(int var3 = 0; var3 < this.unprocessedDocs.size(); ++var3) {
  312.             Class var4 = var2.getClass();
  313.             boolean var5 = var4.getName() != "lotus.notes.RichTextItem";
  314.             Document var6 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var3));
  315.             Item var7 = var6.getFirstItem(var1);
  316.             var5 = var5 && (var7 == null || var7.isSummary());
  317.             var7 = var6.replaceItemValue(var1, var2);
  318.             var7.setSummary(var5);
  319.             var6.save();
  320.          }
  321.  
  322.       }
  323.    }
  324.  
  325.    public void updateAll() throws NotesException {
  326.       if (this.processedDocsInContext) {
  327.          for(int var1 = 0; var1 < this.unprocessedDocs.size(); ++var1) {
  328.             if (!this.processedDocs.contains(this.unprocessedDocs.elementAt(var1))) {
  329.                this.processedDocs.addElement(this.unprocessedDocs.elementAt(var1));
  330.                Session var2 = this.Parent.getParent();
  331.                lotus.domino.DateTime var3 = var2.createDateTime("");
  332.                var3.setNow();
  333.                this.processedDateTimes.addElement(var3);
  334.             }
  335.          }
  336.  
  337.          this.docAgentContext.replaceItemValue("ProcessedDocs", this.processedDocs);
  338.  
  339.          while(this.docAgentContext.hasItem("ProcessedDateTimes")) {
  340.             this.docAgentContext.removeItem("ProcessedDateTimes");
  341.          }
  342.  
  343.          this.docAgentContext.appendItemValue("ProcessedDateTimes", this.processedDateTimes);
  344.          this.docAgentContext.save();
  345.       }
  346.  
  347.    }
  348.  
  349.    public void recycle() throws NotesException {
  350.    }
  351.  
  352.    void updateProcessedDoc(Document var1) throws NotesException {
  353.       if (var1 != null) {
  354.          if (this.processedDocsInContext) {
  355.             String var2 = var1.getNoteID();
  356.             if (!this.processedDocs.contains(var2)) {
  357.                this.processedDocs.addElement(var2);
  358.                Session var3 = this.Parent.getParent();
  359.                lotus.domino.DateTime var4 = var3.createDateTime("");
  360.                var4.setNow();
  361.                this.processedDateTimes.addElement(var4);
  362.             }
  363.  
  364.             this.docAgentContext.replaceItemValue("ProcessedDocs", this.processedDocs);
  365.  
  366.             while(this.docAgentContext.hasItem("ProcessedDateTimes")) {
  367.                this.docAgentContext.removeItem("ProcessedDateTimes");
  368.             }
  369.  
  370.             this.docAgentContext.appendItemValue("ProcessedDateTimes", this.processedDateTimes);
  371.             this.docAgentContext.save();
  372.          }
  373.  
  374.       }
  375.    }
  376.  
  377.    void unstampAll(String var1) throws NotesException {
  378.       if (var1 != null) {
  379.          for(int var2 = 0; var2 < this.unprocessedDocs.size(); ++var2) {
  380.             Document var3 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var2));
  381.             var3.removeItem(var1);
  382.             var3.save();
  383.          }
  384.  
  385.       }
  386.    }
  387. }
  388.