[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("&"); break;
case '<': sb.append("<"); break;
case '>': sb.append(">"); break;
case '"': sb.append("""); 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);
}