try { IExtension extension = pluginHandler.getExtension("Subject"); String uiId = extension.getMetadata().getAttribute("ui"); IExtension uiExtension = pluginUIHandler.getExtension(uiId); column = (DefaultCriteriaRow) uiExtension .instanciateExtension(args); } catch (Exception ex) { ex.printStackTrace(); } criteria.setTypeString("Subject");
if (b) { // model -> view // read configuration and set gui elements appropriately // navigate to treenode "text" XmlElement text = parent.getElement("/config/text"); // read attribute "value" String attribute = text.getAttribute("value"); textField.setText(attribute); } else { // view -> model // write configuration given the data the user entered in the gui XmlElement text = parent.getElement("/config/text"); text.addAttribute("value", textField.getText()); try { xmlFile.save(); } catch ( Exception ex) { ex.printStackTrace(); } }
Clone fragments detected by clone detection tool
File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/gui/config/filter/CriteriaList.java File path: /columba-1.4-src/plugins/org.columba.example.ConfigExample/src/ConfigExample.java
Method name: void update() Method name: void updateComponents(boolean)
Number of AST nodes: 6 Number of AST nodes: 8
1
try {
2
					IExtension extension = pluginHandler.getExtension("Subjec
1
if (b) {
2
			// model -> view
3
			// read configuration and set gui elements appropriately
4
			// navigate to treenode "text"
3
t");
5
			XmlElement text = parent.getElement("/config/text");
4
					String uiId
6
			// read attribute "value"
5
 = extension.getMetadata().getA
7
			String attribute = text.getAttribute("value");
6
ttribute("ui");
8
			textField.setText(attribute);
7
					IExtension uiExtension = pluginUIHandler.getExtension(uiId);
9
		
8
					column = (DefaultCriteriaRow) uiExtension
10
} else {
11
			// view -> model
12
			// write configuration given the data the user entered in the gui
13
			XmlElement text = parent.getElement("/config/text");
14
			text.addAttribute("value", textField.getText());
9
			
15
			
10
				.instanciateExtension(args
16
			try
17
			{
11
);
18
				xmlFile.save();
12
				
19
				
13
} catch (Exception ex) 
20
			} catch ( Exception ex)
14
{
21
			{
15
					ex.printStackTrace();
22
				ex.printStackTrace();
16
				}
23
			
17
				criteria.setTypeString("Subject");
24
}
25
		}
Summary
Number of common nesting structure subtrees0
Number of refactorable cases0
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.2
Clones locationClones are in different classes
Number of node comparisons16