Search in sources :

Example 6 with NoteCollection

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);
    }
}
Also used : IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) NoteCollection(lotus.domino.NoteCollection) Database(lotus.domino.Database) Document(lotus.domino.Document) NotesException(lotus.domino.NotesException) Session(lotus.domino.Session)

Aggregations

NoteCollection (lotus.domino.NoteCollection)6 Database (lotus.domino.Database)5 Document (lotus.domino.Document)3 DocumentCollection (lotus.domino.DocumentCollection)2 NotesException (lotus.domino.NotesException)2 Session (lotus.domino.Session)2 PrintWriter (java.io.PrintWriter)1 Date (java.util.Date)1 DateTime (lotus.domino.DateTime)1 DxlExporter (lotus.domino.DxlExporter)1 IStatus (org.eclipse.core.runtime.IStatus)1 Status (org.eclipse.core.runtime.Status)1 HealthCheckResponseBuilder (org.eclipse.microprofile.health.HealthCheckResponseBuilder)1