[tasklist] pmd-cpd

vbrabant <[email protected]>
Newsgroups gmane.comp.java.netbeans.modules.tasklist.devel
Organization CollabNet Hosting
Message-ID <[email protected]>
Do you know the other program delivered with PMD 
(http://www.onjava.com/pub/a/onjava/2003/03/12/pmd_cpd.html) ?

I think it can be also very interresting if it could be integrated into 
netbeans.
No idea if it has to be introduced in tasklist or not, but if you want a 
idea,
here in attach the result of pmd-cpd on my local version of tasklist 
module (don't remember when last up has been done).

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
pmd-cpd.txt (text/plain, 16.5 KB)
=============================================================
A 14 line (76 tokens) duplication:
Starting at line 92 in C:\mydata\netbeans\lasttrunk\tasklist\test\unit\src\org\netbeans\modules\tasklist\docscan\SourceScannerTest.java
Starting at line 213 in C:\mydata\netbeans\lasttrunk\tasklist\test\unit\src\org\netbeans\modules\tasklist\docscan\SourceScannerTest.java
            fail("BadLocationException");
        }
        DataObject dobj = null; // XXX Do I need to put something else here?
        scanner.scan(doc, dobj, false, true);

        // Make sure that the scanned list is correct

        // Check that the list we read in is indeed correct
        Task root = list.getRoot();
        List subtasks = root.getSubtasks();
        assertTrue("Not all tasks in the list found: found " + subtasks.size() +
                   " elements",
                   subtasks.size() == 3);
        ListIterator it = subtasks.listIterator();
        int count = 0;
=============================================================
A 8 line (78 tokens) duplication:
Starting at line 65 in C:\mydata\netbeans\lasttrunk\tasklist\test\unit\src\org\netbeans\modules\tasklist\usertasks\UserTaskListTest.java
Starting at line 100 in C:\mydata\netbeans\lasttrunk\tasklist\test\unit\src\org\netbeans\modules\tasklist\usertasks\UserTaskListTest.java
        assertTrue("Not all tasks in the list found: found " + subtasks.size() +
                   " elements",
                   subtasks.size() == 1);
        ListIterator it = subtasks.listIterator();
        while (it.hasNext()) {
            UserTask task = (UserTask)it.next();
            assertTrue("Wrong description: " + task.getSummary(),
                       task.getSummary().equals("This is a test task"));
            assertTrue("Wrong isDone",
=============================================================
A 14 line (80 tokens) duplication:
Starting at line 455 in C:\mydata\netbeans\lasttrunk\tasklist\usertasks\src\org\netbeans\modules\tasklist\usertasks\xCalSupport.java
Starting at line 495 in C:\mydata\netbeans\lasttrunk\tasklist\usertasks\src\org\netbeans\modules\tasklist\usertasks\xCalSupport.java
        if (interactive) {
            TopManager.getDefault ().notify(new Message(
              NbBundle.getMessage(xCalSupport.class, "ImportXCALWarn"), // NOI18N
              NotifyDescriptor.INFORMATION_MESSAGE));
        }

        try {
            XMLReader reader = XMLUtil.createXMLReader(false);
            
            xCalHandler handler = 
                new xCalHandler((UserTaskList)list, interactive);
            reader.setContentHandler(handler);
            reader.setErrorHandler(handler);
            reader.setEntityResolver(handler);
            
=============================================================
A 13 line (80 tokens) duplication:
Starting at line 139 in C:\mydata\netbeans\lasttrunk\tasklist\docscan\src\org\netbeans\modules\tasklist\docscan\SourceTaskProvider.java
Starting at line 133 in C:\mydata\netbeans\lasttrunk\tasklist\docscan\src\org\netbeans\modules\tasklist\docscan\CopyrightChecker.java
        List newTasks = scan(doc, dobj);
        SuggestionManager manager = SuggestionManager.getDefault();

        if ((newTasks == null) && (showingTasks == null)) {
            return;
        }
        manager.register(TYPE, newTasks, showingTasks);
        showingTasks = newTasks;
    }
    
    public List scan(Document doc, DataObject dobj) {
        SuggestionManager manager = SuggestionManager.getDefault();
        if (!manager.isEnabled(TYPE)) {
            return null;
=============================================================
A 18 line (85 tokens) duplication:
Starting at line 668 in C:\mydata\netbeans\lasttrunk\tasklist\javaparser\patches\JavaEditor.java
Starting at line 791 in C:\mydata\netbeans\lasttrunk\tasklist\javaparser\patches\JavaEditor.java
                createBounds(bounds.getBegin().getOffset(), bounds.getEnd().getOffset(), false)
                );
                sections.put(sect[0].getName(), sect[0]);
                sect[0].markGuarded(doc);
            }
        };
        try {
            Util.runAtomic(doc, run);
	    notifyModified();
        }
        catch (Exception e) {
            if (e instanceof BadLocationException)
                throw (BadLocationException) e;
            else
                throw new IllegalArgumentException();
        }
        return sect[0];
    }
    
=============================================================
A 21 line (87 tokens) duplication:
Starting at line 29 in C:\mydata\netbeans\lasttrunk\tasklist\usertasks\src\org\netbeans\modules\tasklist\usertasks\SettingsBeanInfo.java
Starting at line 29 in C:\mydata\netbeans\lasttrunk\tasklist\docscan\src\org\netbeans\modules\tasklist\docscan\SettingsBeanInfo.java
public class SettingsBeanInfo extends SimpleBeanInfo {

    public BeanDescriptor getBeanDescriptor() {
        BeanDescriptor bdesc = new BeanDescriptor(Settings.class);
        bdesc.setDisplayName(NbBundle.getMessage(SettingsBeanInfo.class,
				   "OPTION_TASK_SETTINGS_NAME"));   //NOI18N
        bdesc.setShortDescription(NbBundle.getMessage(SettingsBeanInfo.class,
				   "HINT_TASK_SETTINGS_NAME"));   //NOI18N
        return bdesc;
    }

    /**
     *  Descriptor of valid properties.
     *
     *  @return array of properties
     */
    public PropertyDescriptor[] getPropertyDescriptors() {

	int i = 0;
	PropertyDescriptor[] desc = null;
	try {
	    desc = new PropertyDescriptor[] {
=============================================================
A 13 line (90 tokens) duplication:
Starting at line 106 in C:\mydata\netbeans\lasttrunk\tasklist\test\unit\src\org\netbeans\modules\tasklist\docscan\SourceScannerTest.java
Starting at line 153 in C:\mydata\netbeans\lasttrunk\tasklist\test\unit\src\org\netbeans\modules\tasklist\docscan\SourceScannerTest.java
        int count = 0;
        while (it.hasNext()) {
            DocTask task = (DocTask)it.next();
            switch (count) {
            case 0: {
                assertEquals("Wrong copyright description",
                             "Update Copyright to 1999-2002; currently is 1999",
                             task.getSummary());
                assertEquals("Wrong line number", 1, task.getLineNumber());
                assertEquals("Wrong filename", "foo.c", task.getFileBaseName());
                assertTrue("Missing fixer", task.getAction() != null);
                break;
            }
            case 1: {
=============================================================
A 32 line (90 tokens) duplication:
Starting at line 111 in C:\mydata\netbeans\lasttrunk\tasklist\core\src\org\netbeans\modules\tasklist\core\ExportAction.java
Starting at line 112 in C:\mydata\netbeans\lasttrunk\tasklist\core\src\org\netbeans\modules\tasklist\core\ImportAction.java
            menu.removeAll();
        }

        public void menuSelected (MenuEvent e) {
            this.menu = (JMenu)e.getSource();

            // Add the import filters to the menu
            
            // TODO Use lookup to find the filters such that
            // other modules can register their own.
            // Call translator.supportsImport() to determine
            // if the translator is eligible for import.


            // CRAP. I have to add lookup for these suckers already
            // since I can't include stuff in the submodules (usertasks)

            // Also note: the specific tasks which can be imported depends
            // on the window, right? (Well, the list really.)
            //   So perhaps I can just ask the list to provide it for me?
            // 

            TaskListView view = TaskListView.getCurrent();
            if (view == null) {
                return;
            }
            TaskList tasklist = view.getList();
            FormatTranslator translators[] = tasklist.getTranslators();
            if (translators == null) {
                // TODO - disable the menu itself?
                return;
            }
            for (int i = 0; i < translators.length; i++) {
=============================================================
A 18 line (99 tokens) duplication:
Starting at line 242 in C:\mydata\netbeans\lasttrunk\tasklist\javaparser\src\org\netbeans\modules\tasklist\javaparser\ErrorSuggester.java
Starting at line 376 in C:\mydata\netbeans\lasttrunk\tasklist\javaparser\src\org\netbeans\modules\tasklist\javaparser\ErrorSuggester.java
                                    return NbBundle.getMessage(ErrorSuggester.class,
                                    "ImportClassConfirmation", filename, classname.toString());
                                }
                            };
                            String fname = dobj.getPrimaryFile().getNameExt();
                            String sum = NbBundle.getMessage(ErrorSuggester.class,
                            "ImportClassSg", classname, fname); // NOI18N
                            Suggestion s =
                                manager.createSuggestion(TYPE, // IMPORTTYPE,
                                                         sum,
                                                         action);
                            s.setLine(ann.getDocLine());
                            Image taskIcon = 
                                Utilities.loadImage("org/netbeans/modules/tasklist/javaparser/import-sg.gif"); // NOI18N

                            s.setIcon(taskIcon);
                            s.setPriority(SuggestionPriority.NORMAL);
                            tasks.add(s);
                        }
=============================================================
A 17 line (107 tokens) duplication:
Starting at line 116 in C:\mydata\netbeans\lasttrunk\tasklist\docscan\src\org\netbeans\modules\tasklist\docscan\DocTaskNode.java
Starting at line 143 in C:\mydata\netbeans\lasttrunk\tasklist\suggestions\src\org\netbeans\modules\tasklist\suggestions\SuggestionNode.java
    protected Sheet createSheet() {
        Sheet s = Sheet.createDefault();
        Set ss = s.get(Sheet.PROPERTIES);
        
        Set sse = Sheet.createExpertSet();
        s.put(sse);
        
        try {
            Property p;
            p = new Reflection(item, String.class, "getSummary",
                               /* Don't allow editing of the summary
                               "setSummary" */
                               null); // NOI18N
            p.setName(TaskListView.PROP_TASK_SUMMARY);
            p.setDisplayName(NbBundle.getMessage(TaskNode.class, "Description")); // NOI18N
            p.setShortDescription(NbBundle.getMessage(TaskNode.class, "DescriptionHint")); // NOI18N
            ss.put(p);
            
=============================================================
A 24 line (117 tokens) duplication:
Starting at line 566 in C:\mydata\netbeans\lasttrunk\tasklist\javaparser\src\org\netbeans\modules\tasklist\javaparser\ErrorSuggester.java
Starting at line 615 in C:\mydata\netbeans\lasttrunk\tasklist\javaparser\src\org\netbeans\modules\tasklist\javaparser\ErrorSuggester.java
        if (!(d instanceof StyledDocument)) {
            return false;
        }
        
        // HACK
        lineNumber--;
        
        StyledDocument doc = (StyledDocument)d;
        
        Element e = doc.getParagraphElement(0).getParentElement();
        if (e == null) {
            // try default root (should work for text/plain)
            e = doc.getDefaultRootElement();
        }
        Element elm = e.getElement(lineNumber);
        if (elm == null) {
            return false;
        }
        int offset = elm.getStartOffset();
        int endOffset = elm.getEndOffset();
        
        try {
            String text = doc.getText(offset, endOffset-offset);
            col--; // The position should be zero based!
            if (text.substring(col).startsWith(symbol)) {
=============================================================
A 14 line (124 tokens) duplication:
Starting at line 221 in C:\mydata\netbeans\lasttrunk\tasklist\usertasks\src\org\netbeans\modules\tasklist\usertasks\KonHTMLSupport.java
Starting at line 461 in C:\mydata\netbeans\lasttrunk\tasklist\core\src\org\netbeans\modules\tasklist\core\HTMLSupport.java
    String toHTML(String text) {
        StringBuffer sb = new StringBuffer(2*text.length());

        int n = text.length();
        for (int i = 0; i < n; i++) {
            switch (text.charAt(i)) {
            case '&': sb.append("&amp;"); break;
            case '<': sb.append("&lt;"); break;
            case '>': sb.append("&gt;"); break;
            case '"': sb.append("&quot;"); break;
            case '\n': sb.append("<br>"); break;
            default: sb.append(text.charAt(i)); break;
            }
        }
        return sb.toString();
=============================================================
A 22 line (132 tokens) duplication:
Starting at line 804 in C:\mydata\netbeans\lasttrunk\tasklist\suggestions\src\org\netbeans\modules\tasklist\suggestions\SuggestionManagerImpl.java
Starting at line 151 in C:\mydata\netbeans\lasttrunk\tasklist\docscan\src\org\netbeans\modules\tasklist\docscan\ScanTasksAction.java
            TaskList.err.log("Scanning folder " + folder.getPrimaryFile().
                             getNameExt());
        }
        
        DataObject[] children = folder.getChildren();
        for (int i = 0; i < children.length; i++) {
            DataObject f = children[i];
            if (TaskList.err.isLoggable(ErrorManager.INFORMATIONAL)) {
                TaskList.err.log(" Checking " + f.getPrimaryFile().getNameExt());
            }
        
            if (f instanceof DataFolder) {
		if (!recursive) {
		    continue;
		}
		
                // Skip CVS and SCCS folders
                String name = f.getPrimaryFile().getNameExt();
                if ("CVS".equals(name) || "SCCS".equals(name)) { // NOI18N
                    continue;
                }

                StatusDisplayer.getDefault ().setStatusText(
=============================================================
A 35 line (209 tokens) duplication:
Starting at line 225 in C:\mydata\netbeans\lasttrunk\tasklist\javaparser\src\org\netbeans\modules\tasklist\javaparser\ErrorSuggester.java
Starting at line 358 in C:\mydata\netbeans\lasttrunk\tasklist\javaparser\src\org\netbeans\modules\tasklist\javaparser\ErrorSuggester.java
                    List list = finder.findClasses(null, symbol, true);
                    if ((list != null) && (list.size() > 0)) {
                        // Score! Let's propose suggestions for importing these
                        // classes
                        Iterator itr = list.iterator();
                        while (itr.hasNext()) {
                            final Object classname = itr.next();
                            SuggestionPerformer action =
                            new SuggestionPerformer() {
                                public void perform(Suggestion s) {
                                    importClass(doc, classname);
                                }
                                public boolean hasConfirmation() {
                                    return true;
                                }
                                public Object getConfirmation(Suggestion s) {
                                    String filename = dobj.getPrimaryFile().getNameExt();
                                    return NbBundle.getMessage(ErrorSuggester.class,
                                    "ImportClassConfirmation", filename, classname.toString());
                                }
                            };
                            String fname = dobj.getPrimaryFile().getNameExt();
                            String sum = NbBundle.getMessage(ErrorSuggester.class,
                            "ImportClassSg", classname, fname); // NOI18N
                            Suggestion s =
                                manager.createSuggestion(TYPE, // IMPORTTYPE,
                                                         sum,
                                                         action);
                            s.setLine(ann.getDocLine());
                            Image taskIcon = 
                                Utilities.loadImage("org/netbeans/modules/tasklist/javaparser/import-sg.gif"); // NOI18N

                            s.setIcon(taskIcon);
                            s.setPriority(SuggestionPriority.NORMAL);
                            tasks.add(s);
                        }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.