use of lotus.domino.NoteCollection in project org.openntf.nsfodp by OpenNTF.
the class ReplaceDesignTaskTest method run.
@Override
public IStatus run(IProgressMonitor monitor) {
try {
Session session = NotesFactory.createSession();
try {
Database sourceDb = getDatabase(session, sourcePath);
Database targetDb = getDatabase(session, targetPath);
// Delete elements from the target database
// Ignore elements having "prohibit design..." property or Master Template defined
NoteCollection targetNoteColl = targetDb.createNoteCollection(true);
targetNoteColl.selectAllAdminNotes(false);
targetNoteColl.selectAllDataNotes(false);
targetNoteColl.setSelectIcon(false);
targetNoteColl.setSelectHelpAbout(false);
targetNoteColl.setSelectHelpIndex(false);
targetNoteColl.setSelectHelpUsing(false);
// Select notes without "prohibit design" or master templates
// $NON-NLS-1$
targetNoteColl.setSelectionFormula(" !(@IsAvailable($Class) | @Contains($Flags; 'P')) ");
// Remove selected notes
targetNoteColl.buildCollection();
String noteId = targetNoteColl.getFirstNoteID();
while (StringUtil.isNotEmpty(noteId)) {
Document note = targetDb.getDocumentByID(noteId);
// System.out.println(Messages.getString("ReplaceDesignTaskTest.consoleRemoving", noteId, note.getItemValueString("$TITLE"))); //$NON-NLS-1$ //$NON-NLS-2$
note.remove(true);
noteId = targetNoteColl.getNextNoteID(noteId);
}
// Check for Help About and Help Using
boolean isHelpAbout = false, isHelpUsing = false;
targetNoteColl.selectAllNotes(false);
targetNoteColl.clearCollection();
targetNoteColl.setSelectHelpAbout(true);
targetNoteColl.buildCollection();
if (targetNoteColl.getCount() > 0) {
noteId = targetNoteColl.getFirstNoteID();
Document helpAbout = targetDb.getDocumentByID(noteId);
if (helpAbout.getItemValueString("$Flags").contains("R")) {
// $NON-NLS-1$ //$NON-NLS-2$
// System.out.println(Messages.getString("ReplaceDesignTaskTest.consoleRemovingHelpAbout")); //$NON-NLS-1$
helpAbout.remove(true);
isHelpAbout = true;
}
}
targetNoteColl.selectAllNotes(false);
targetNoteColl.clearCollection();
targetNoteColl.setSelectHelpUsing(true);
targetNoteColl.buildCollection();
if (targetNoteColl.getCount() > 0) {
noteId = targetNoteColl.getFirstNoteID();
Document helpUsing = targetDb.getDocumentByID(noteId);
if (helpUsing.getItemValueString("$Flags").contains("R")) {
// $NON-NLS-1$ //$NON-NLS-2$
// System.out.println(Messages.getString("ReplaceDesignTaskTest.consoleRemovingHelpUsing")); //$NON-NLS-1$
helpUsing.remove(true);
isHelpUsing = true;
}
}
// Set "More Fields" option
targetDb.setOption(Database.DBOPT_MOREFIELDS, true);
// Copy all design elements from source DB to target DB except Help About and Help Using
NoteCollection sourceNoteColl = sourceDb.createNoteCollection(true);
sourceNoteColl.selectAllAdminNotes(false);
sourceNoteColl.selectAllDataNotes(false);
sourceNoteColl.setSelectIcon(false);
sourceNoteColl.setSelectHelpAbout(isHelpAbout);
sourceNoteColl.setSelectHelpUsing(isHelpUsing);
return Status.OK_STATUS;
} finally {
session.recycle();
}
} catch (Exception e) {
return new Status(IStatus.ERROR, Messages.ReplaceDesignTaskTest_errorReplacingDesign, e.toString(), e);
}
}
Aggregations