/*
* � Copyright IBM Corp. 2010
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.ibm.xsp.extlib.debug;
import java.util.Date;
import java.util.Vector;
import lotus.domino.DateRange;
import lotus.domino.DateTime;
import lotus.domino.Document;
import lotus.domino.Item;
import lotus.domino.NotesException;
import com.ibm.commons.Platform;
import com.ibm.xsp.extlib.util.debug.BasicDumpFactory;
import com.ibm.xsp.extlib.util.debug.DumpAccessor;
import com.ibm.xsp.extlib.util.debug.DumpAccessorFactory;
import com.ibm.xsp.extlib.util.debug.DumpContext;
import com.ibm.xsp.extlib.util.debug.JavaDumpFactory;
import com.ibm.xsp.model.domino.wrapped.DominoDocument;
/**
* Default Java Factory.
*/
public class DominoDumpFactory implements DumpAccessorFactory {
public DominoDumpFactory() {
}
public DumpAccessor find(DumpContext dumpContext, Object o) {
if(o instanceof DominoDocument) {
try {
return new DocumentMap(dumpContext,((DominoDocument)o).getDocument(true));
} catch(NotesException ex) {Platform.getInstance().log(ex);}
}
if(o instanceof Document) {
return new DocumentMap(dumpContext,(Document)o);
}
if(o instanceof DateTime) {
try {
Date dt = ((DateTime)o).toJavaDate();
return new JavaDumpFactory.PrimitiveValue(dumpContext,dt);
} catch(NotesException ex) {Platform.getInstance().log(ex);}
}
if(o instanceof DateRange) {
try {
DateRange dt = (DateRange)o;
return new JavaDumpFactory.PrimitiveValue(dumpContext,"{"+dt.getText()+"}");
} catch(NotesException ex) {Platform.getInstance().log(ex);}
}
return null;
}
public static class DocumentMap extends BasicDumpFactory.PropertyMap {
public DocumentMap(DumpContext dumpContext, Document doc) {
super(dumpContext,"Domino Document"); // $NON-NLS-1$
try {
addCategory("Meta Data"); // $NON-NLS-1$
addValue("Note ID", doc.getNoteID()); // $NON-NLS-1$
addValue("UNID", doc.getUniversalID()); // $NON-NLS-1$
addValue("Parent UNID", doc.getParentDocumentUNID()); // $NON-NLS-1$
addCategory("Items"); // $NON-NLS-1$
Vector items = doc.getItems();
for(int i=0; i<items.size(); i++) {
Item it = (Item)items.get(i);
addValue("["+it.getName()+"]", it.getText());
}
addCategory("Timestamps"); // $NON-NLS-1$
addValue("Created", doc.getCreated()); // $NON-NLS-1$
addValue("Last Modified", doc.getLastModified()); // $NON-NLS-1$
addValue("Last Accessed", doc.getLastAccessed()); // $NON-NLS-1$
addValue("Authors", doc.getAuthors()); // $NON-NLS-1$
addCategory("URLs"); // $NON-NLS-1$
addValue("URL", doc.getURL()); // $NON-NLS-1$
addValue("HTTP URL", doc.getHttpURL()); // $NON-NLS-1$
} catch(NotesException ex) {
Platform.getInstance().log(ex);
addValue("NotesException", ex.toString()); // $NON-NLS-1$
}
}
}
}