home *** CD-ROM | disk | FTP | other *** search
- package lotus.domino.local;
-
- import java.util.Vector;
- import lotus.domino.Database;
- import lotus.domino.Document;
- import lotus.domino.Item;
- import lotus.domino.NotesException;
- import lotus.domino.Session;
- import lotus.domino.View;
-
- public class DebugDocumentCollection extends DocumentCollection {
- private Document docAgentContext;
- private String srchItem;
- private String srchValue;
- private String srchFormula;
- private Vector selectedDocs = new Vector(20, 10);
- private Vector processedDocs = new Vector(20, 10);
- private Vector processedDateTimes = new Vector(20, 10);
- private boolean processedDocsInContext = false;
- private Vector unprocessedDocs = new Vector(20, 10);
- private boolean IsSorted;
- private Database Parent;
- private String Query;
-
- protected DebugDocumentCollection(Database var1, Document var2, String var3, String var4, String var5) throws NotesException {
- super((lotus.domino.local.Database)var1, 1);
- this.docAgentContext = var2;
- this.srchItem = var3;
- this.srchValue = var4;
- this.srchFormula = var5;
- this.selectedDocs = var2.getItemValue("SelectedDocs");
- this.processedDocs = var2.getItemValue("ProcessedDocs");
- this.processedDateTimes = var2.getItemValue("ProcessedDateTimes");
- this.Parent = var1;
- this.Query = null;
- Vector var7 = new Vector(20, 10);
- String var8 = var2.getItemValueString("AgentRunsOn");
- switch (var8.charAt(0)) {
- case '0':
- lotus.domino.DocumentCollection var16 = var1.getAllDocuments();
- String var21 = var2.getItemValueString("AgentSearchCriteria");
- if (var21 != null) {
- var16.FTSearch(var2.getItemValueString("AgentSearchCriteria"), 0);
- }
-
- for(int var26 = 1; var26 <= var16.getCount(); ++var26) {
- Document var31 = var16.getNthDocument(var26);
- var7.addElement(var31.getNoteID());
- }
-
- this.unprocessedDocs = var7;
- this.IsSorted = var16.isSorted();
- return;
- case '1':
- this.processedDocsInContext = true;
- int var20 = 0;
-
- for(int var25 = this.processedDocs.size(); var20 < var25; var25 = this.processedDocs.size()) {
- DateTime var29;
- if (this.processedDateTimes.isEmpty()) {
- var29 = null;
- } else {
- var29 = (DateTime)this.processedDateTimes.elementAt(var20);
- }
-
- Document var33 = var1.getDocumentByID((String)this.processedDocs.elementAt(var20));
- if (var33 != null && var29.timeDifference(var33.getLastModified()) >= 0) {
- ++var20;
- } else {
- this.processedDocs.removeElementAt(var20);
- this.processedDateTimes.removeElementAt(var20);
- }
- }
-
- lotus.domino.DocumentCollection var15 = var1.getAllDocuments();
- String var30 = var2.getItemValueString("AgentSearchCriteria");
- if (var30 != null) {
- var15.FTSearch(var2.getItemValueString("AgentSearchCriteria"), 0);
- }
-
- for(int var34 = 1; var34 <= var15.getCount(); ++var34) {
- Document var35 = var15.getNthDocument(var34);
- String var14 = var35.getNoteID();
- if (!this.processedDocs.contains(var14)) {
- var7.addElement(var14);
- }
- }
-
- this.unprocessedDocs = var7;
- this.IsSorted = var15.isSorted();
- this.docAgentContext.replaceItemValue("ProcessedDocs", this.processedDocs);
-
- while(this.docAgentContext.hasItem("ProcessedDateTimes")) {
- this.docAgentContext.removeItem("ProcessedDateTimes");
- }
-
- this.docAgentContext.appendItemValue("ProcessedDateTimes", this.processedDateTimes);
- this.docAgentContext.save();
- return;
- case '2':
- String var19 = var2.getItemValueString("AgentRunsOnView");
- View var24 = var1.getView(var19);
- String var28 = var2.getItemValueString("AgentSearchCriteria");
- if (var28 != null) {
- var24.FTSearch(var28, 0);
- }
-
- for(Document var32 = var24.getFirstDocument(); var32 != null; var32 = var24.getNextDocument(var32)) {
- String var13 = var32.getNoteID();
- if (this.selectedDocs.contains(var13)) {
- var7.addElement(var13);
- }
- }
-
- this.unprocessedDocs = var7;
- this.IsSorted = false;
- return;
- case '3':
- String var18 = var2.getItemValueString("AgentRunsOnView");
- View var23 = var1.getView(var18);
- String var27 = var2.getItemValueString("AgentSearchCriteria");
- if (var27 != null) {
- var23.FTSearch(var27, 0);
- }
-
- for(Document var12 = var23.getFirstDocument(); var12 != null; var12 = var23.getNextDocument(var12)) {
- var7.addElement(var12.getNoteID());
- }
-
- this.unprocessedDocs = var7;
- this.IsSorted = false;
- return;
- case '4':
- this.IsSorted = false;
- this.unprocessedDocs = var2.getItemValue("SelectedDocs");
- String var17 = var2.getItemValueString("AgentSearchCriteria");
- if (var17 == null) {
- return;
- }
-
- this.stampAll(this.srchItem, this.srchValue);
- lotus.domino.DocumentCollection var6 = var1.search(this.srchFormula);
- this.unstampAll(this.srchItem);
- var6.FTSearch(var17, 0);
- this.unprocessedDocs.removeAllElements();
-
- for(int var22 = 1; var22 <= var6.getCount(); ++var22) {
- Document var11 = var6.getNthDocument(var22);
- this.unprocessedDocs.addElement(var11.getNoteID());
- }
-
- this.IsSorted = var6.isSorted();
- return;
- case '5':
- String var9 = var2.getItemValueString("DocumentContext");
- Document var10 = var1.getDocumentByUNID(var9);
- if (var10 != null) {
- var7.addElement(var10.getNoteID());
- }
-
- this.unprocessedDocs = var7;
- this.IsSorted = false;
- return;
- default:
- throw new NotesException(0, "Exception: undefined AgentContext state");
- }
- }
-
- public int getCount() throws NotesException {
- return this.unprocessedDocs.size();
- }
-
- public boolean isSorted() throws NotesException {
- return this.IsSorted;
- }
-
- public Database getParent() throws NotesException {
- return this.Parent;
- }
-
- public String getQuery() throws NotesException {
- return this.Query;
- }
-
- public void FTSearch(String var1, int var2) throws NotesException {
- if (var1 != null && this.unprocessedDocs.size() >= 1) {
- this.stampAll(this.srchItem, this.srchValue);
- lotus.domino.DocumentCollection var3 = this.Parent.search(this.srchFormula);
- this.unstampAll(this.srchItem);
- var3.FTSearch(var1, var2);
- this.unprocessedDocs.removeAllElements();
-
- for(int var4 = 1; var4 <= var3.getCount(); ++var4) {
- Document var5 = var3.getNthDocument(var4);
- this.unprocessedDocs.addElement(var5.getNoteID());
- }
-
- this.IsSorted = var3.isSorted();
- this.Query = var3.getQuery();
- }
- }
-
- public Document getFirstDocument() throws NotesException {
- return this.unprocessedDocs.size() >= 1 ? this.Parent.getDocumentByID((String)this.unprocessedDocs.firstElement()) : null;
- }
-
- public Document getLastDocument() throws NotesException {
- return this.unprocessedDocs.size() >= 1 ? this.Parent.getDocumentByID((String)this.unprocessedDocs.lastElement()) : null;
- }
-
- public Document getNextDocument(Document var1) throws NotesException {
- if (var1 == null) {
- return null;
- } else {
- String var2 = var1.getNoteID();
-
- for(int var3 = 0; var3 < this.unprocessedDocs.size() - 1; ++var3) {
- if (var2.equals(this.unprocessedDocs.elementAt(var3))) {
- return this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var3 + 1));
- }
- }
-
- return null;
- }
- }
-
- public Document getNthDocument(int var1) throws NotesException {
- int var2 = var1 - 1;
- return var2 >= 0 && var2 < this.unprocessedDocs.size() ? this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var2)) : null;
- }
-
- public Document getPrevDocument(Document var1) throws NotesException {
- if (var1 == null) {
- return null;
- } else {
- String var2 = var1.getNoteID();
-
- for(int var3 = this.unprocessedDocs.size() - 1; var3 > 0; --var3) {
- if (var2.equals(this.unprocessedDocs.elementAt(var3))) {
- return this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var3 - 1));
- }
- }
-
- return null;
- }
- }
-
- public void putAllInFolder(String var1) throws NotesException {
- if (var1 != null) {
- for(int var2 = 0; var2 < this.unprocessedDocs.size(); ++var2) {
- Document var3 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var2));
- var3.putInFolder(var1);
- }
-
- }
- }
-
- public void removeAll(boolean var1) throws NotesException {
- String var2 = this.docAgentContext.getItemValueString("DocumentContext");
- boolean var3 = false;
- int var4 = 0;
-
- for(int var5 = this.unprocessedDocs.size(); var4 < var5; var5 = this.unprocessedDocs.size()) {
- Document var6 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var4));
- if (var6.getUniversalID() == var2) {
- var3 = true;
- }
-
- if (var6.remove(var1)) {
- this.selectedDocs.removeElement((String)this.unprocessedDocs.elementAt(var4));
- int var7 = this.processedDocs.indexOf((String)this.unprocessedDocs.elementAt(var4));
- this.processedDocs.removeElementAt(var7);
- this.processedDateTimes.removeElementAt(var7);
- this.unprocessedDocs.removeElementAt(var4);
- if (var3) {
- var3 = false;
- this.docAgentContext.replaceItemValue("DocumentContext", "");
- this.docAgentContext.save();
- }
- } else {
- ++var4;
- }
- }
-
- this.docAgentContext.replaceItemValue("SelectedDocs", this.selectedDocs);
- this.docAgentContext.replaceItemValue("ProcessedDocs", this.processedDocs);
-
- while(this.docAgentContext.hasItem("ProcessedDateTimes")) {
- this.docAgentContext.removeItem("ProcessedDateTimes");
- }
-
- this.docAgentContext.appendItemValue("ProcessedDateTimes", this.processedDateTimes);
- this.docAgentContext.save();
- }
-
- public void removeAllFromFolder(String var1) throws NotesException {
- if (var1 != null) {
- View var2 = this.Parent.getView(var1);
- if (var2 != null) {
- for(int var3 = 0; var3 < this.unprocessedDocs.size(); ++var3) {
- Document var4 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var3));
- var4.removeFromFolder(var1);
- }
-
- }
- }
- }
-
- public void stampAll(String var1, Object var2) throws NotesException {
- if (var1 != null && var2 != null) {
- for(int var3 = 0; var3 < this.unprocessedDocs.size(); ++var3) {
- Class var4 = var2.getClass();
- boolean var5 = var4.getName() != "lotus.notes.RichTextItem";
- Document var6 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var3));
- Item var7 = var6.getFirstItem(var1);
- var5 = var5 && (var7 == null || var7.isSummary());
- var7 = var6.replaceItemValue(var1, var2);
- var7.setSummary(var5);
- var6.save();
- }
-
- }
- }
-
- public void updateAll() throws NotesException {
- if (this.processedDocsInContext) {
- for(int var1 = 0; var1 < this.unprocessedDocs.size(); ++var1) {
- if (!this.processedDocs.contains(this.unprocessedDocs.elementAt(var1))) {
- this.processedDocs.addElement(this.unprocessedDocs.elementAt(var1));
- Session var2 = this.Parent.getParent();
- lotus.domino.DateTime var3 = var2.createDateTime("");
- var3.setNow();
- this.processedDateTimes.addElement(var3);
- }
- }
-
- this.docAgentContext.replaceItemValue("ProcessedDocs", this.processedDocs);
-
- while(this.docAgentContext.hasItem("ProcessedDateTimes")) {
- this.docAgentContext.removeItem("ProcessedDateTimes");
- }
-
- this.docAgentContext.appendItemValue("ProcessedDateTimes", this.processedDateTimes);
- this.docAgentContext.save();
- }
-
- }
-
- public void recycle() throws NotesException {
- }
-
- void updateProcessedDoc(Document var1) throws NotesException {
- if (var1 != null) {
- if (this.processedDocsInContext) {
- String var2 = var1.getNoteID();
- if (!this.processedDocs.contains(var2)) {
- this.processedDocs.addElement(var2);
- Session var3 = this.Parent.getParent();
- lotus.domino.DateTime var4 = var3.createDateTime("");
- var4.setNow();
- this.processedDateTimes.addElement(var4);
- }
-
- this.docAgentContext.replaceItemValue("ProcessedDocs", this.processedDocs);
-
- while(this.docAgentContext.hasItem("ProcessedDateTimes")) {
- this.docAgentContext.removeItem("ProcessedDateTimes");
- }
-
- this.docAgentContext.appendItemValue("ProcessedDateTimes", this.processedDateTimes);
- this.docAgentContext.save();
- }
-
- }
- }
-
- void unstampAll(String var1) throws NotesException {
- if (var1 != null) {
- for(int var2 = 0; var2 < this.unprocessedDocs.size(); ++var2) {
- Document var3 = this.Parent.getDocumentByID((String)this.unprocessedDocs.elementAt(var2));
- var3.removeItem(var1);
- var3.save();
- }
-
- }
- }
- }
-