if (aComponent.equals(accountController.getView())) return priorityController.getView(); else if (aComponent.equals(priorityController.getView())) return headerController.getView().getToComboBox(); else if (aComponent.equals(headerController.getView() .getToComboBox())) return headerController.getView().getCcComboBox(); else if (aComponent.equals(headerController.getView() .getCcComboBox())) return headerController.getView().getBccComboBox(); else if (aComponent.equals(headerController.getView() .getBccComboBox())) return subjectController.getView(); else if (aComponent.equals(subjectController.getView())) return currentEditorController.getComponent();
if (aComponent.equals(currentEditorController.getComponent())) return subjectController.getView(); else if (aComponent.equals(subjectController.getView())) return headerController.getView().getBccComboBox(); else if (aComponent.equals(headerController.getView() .getBccComboBox())) return headerController.getView().getCcComboBox(); else if (aComponent.equals(headerController.getView() .getCcComboBox())) return headerController.getView().getToComboBox(); else if (aComponent.equals(headerController.getView() .getToComboBox())) return priorityController.getView(); else if (aComponent.equals(priorityController.getView())) return accountController.getView();
Clone fragments detected by clone detection tool
File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/gui/composer/ComposerController.java File path: /columba-1.4-src/mail/src/main/java/org/columba/mail/gui/composer/ComposerController.java
Method name: Component getComponentAfter(Container, Component) Method name: Component getComponentBefore(Container, Component)
Number of AST nodes: 12 Number of AST nodes: 12
1
if (aComponent.equals(accountController.getView()))
1
if (aComponent.equals(currentEditorController.getComponent()))
2
				return priorityController.getView();
2
				return subjectController.getView();
3
			else if (aComponent.equals(priorityController.getView()))
3
			else if (aComponent.equals(subjectController.getView()))
4
				return headerController.getView().getToComboBox();
4
				return headerController.getView().getBccComboBox();
5
			else if (aComponent.equals(headerController.getView()
5
			else if (aComponent.equals(headerController.getView()
6
					.getToComboBox()))
6
					.getBccComboBox()))
7
				return headerController.getView().getCcComboBox();
7
				return headerController.getView().getCcComboBox();
8
			else if (aComponent.equals(headerController.getView()
8
			else if (aComponent.equals(headerController.getView()
9
					.getCcComboBox()))
9
					.getCcComboBox()))
10
				return headerController.getView().getBccComboBox();
10
				return headerController.getView().getToComboBox();
11
			else if (aComponent.equals(headerController.getView()
11
			else if (aComponent.equals(headerController.getView()
12
					.getBccComboBox()))
12
					.getToComboBox()))
13
				return subjectController.getView();
13
				return priorityController.getView();
14
			else if (aComponent.equals(subjectController.getView()))
14
			else if (aComponent.equals(priorityController.getView()))
15
				return currentEditorController.getComponent();
15
				return accountController.getView();
Summary
Number of common nesting structure subtrees1
Number of refactorable cases0
Number of non-refactorable cases1
Time elapsed for finding largest common nesting structure subtrees (ms)22.6
Clones locationClones are declared in the same class
Number of node comparisons99
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements12
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)30.3
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    if (aComponent.equals(accountController.getView()))
    1
    if (aComponent.equals(accountController.getView()))
    11
    if (aComponent.equals(priorityController.getView()))
    Differences
    Expression1Expression2Difference
    accountControllerpriorityControllerVARIABLE_NAME_MISMATCH
    org.columba.mail.gui.composer.AccountControllerorg.columba.mail.gui.composer.PriorityControllerSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression accountController cannot be unified with expression priorityController , because common superclass java.awt.event.ItemListener does not declare member(s) public org.columba.mail.gui.composer.AccountView getView() , public org.columba.mail.gui.composer.PriorityView getView() , public boolean equals(java.lang.Object)
    11
    if (aComponent.equals(priorityController.getView()))
    2
    return priorityController.getView();
    2
    return priorityController.getView();
    12
    return accountController.getView();
    Differences
    Expression1Expression2Difference
    priorityControlleraccountControllerVARIABLE_NAME_MISMATCH
    org.columba.mail.gui.composer.PriorityControllerorg.columba.mail.gui.composer.AccountControllerSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression priorityController cannot be unified with expression accountController , because common superclass java.awt.event.ItemListener does not declare member(s) public org.columba.mail.gui.composer.PriorityView getView() , public org.columba.mail.gui.composer.AccountView getView()
    12
    return accountController.getView();
    3
    else if (aComponent.equals(priorityController.getView()))
    3
    else if (aComponent.equals(priorityController.getView()))
    3
    else if (aComponent.equals(subjectController.getView()))
    Differences
    Expression1Expression2Difference
    priorityControllersubjectControllerVARIABLE_NAME_MISMATCH
    org.columba.mail.gui.composer.PriorityControllerorg.columba.mail.gui.composer.SubjectControllerVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.columba.mail.gui.composer.PriorityController of variable priorityController does not match with type org.columba.mail.gui.composer.SubjectController of variable subjectController
    • Make classes org.columba.mail.gui.composer.PriorityController and org.columba.mail.gui.composer.SubjectController extend a common superclass
    3
    else if (aComponent.equals(subjectController.getView()))
    4
    return headerController.getView().getToComboBox();
    4
    return headerController.getView().getToComboBox();
    4
    return headerController.getView().getBccComboBox();
    Differences
    Expression1Expression2Difference
    getToComboBoxgetBccComboBoxMETHOD_INVOCATION_NAME_MISMATCH
    4
    return headerController.getView().getBccComboBox();
    5
    else if (aComponent.equals(headerController.getView().getToComboBox()))
    5
    else if (aComponent.equals(headerController.getView().getToComboBox()))
    5
    else if (aComponent.equals(headerController.getView().getBccComboBox()))
    Differences
    Expression1Expression2Difference
    getToComboBoxgetBccComboBoxMETHOD_INVOCATION_NAME_MISMATCH
    5
    else if (aComponent.equals(headerController.getView().getBccComboBox()))
    6
    return headerController.getView().getCcComboBox();
    6
    return headerController.getView().getCcComboBox();
    7
    else if (aComponent.equals(headerController.getView().getCcComboBox()))
    7
    else if (aComponent.equals(headerController.getView().getCcComboBox()))
    8
    return headerController.getView().getBccComboBox();
    8
    return headerController.getView().getBccComboBox();
    8
    return headerController.getView().getToComboBox();
    Differences
    Expression1Expression2Difference
    getBccComboBoxgetToComboBoxMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression headerController.getView().getBccComboBox() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression headerController.getView().getToComboBox() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    8
    return headerController.getView().getToComboBox();
    9
    else if (aComponent.equals(headerController.getView().getBccComboBox()))
    9
    else if (aComponent.equals(headerController.getView().getBccComboBox()))
    9
    else if (aComponent.equals(headerController.getView().getToComboBox()))
    Differences
    Expression1Expression2Difference
    getBccComboBoxgetToComboBoxMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression headerController.getView().getBccComboBox() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression headerController.getView().getToComboBox() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    9
    else if (aComponent.equals(headerController.getView().getToComboBox()))
    10
    return subjectController.getView();
    10
    return subjectController.getView();
    10
    return priorityController.getView();
    Differences
    Expression1Expression2Difference
    subjectControllerpriorityControllerVARIABLE_NAME_MISMATCH
    org.columba.mail.gui.composer.SubjectControllerorg.columba.mail.gui.composer.PriorityControllerVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.columba.mail.gui.composer.SubjectController of variable subjectController does not match with type org.columba.mail.gui.composer.PriorityController of variable priorityController
    • Make classes org.columba.mail.gui.composer.SubjectController and org.columba.mail.gui.composer.PriorityController extend a common superclass
    10
    return priorityController.getView();
    11
    if (aComponent.equals(subjectController.getView()))
    11
    if (aComponent.equals(subjectController.getView()))
    1
    if (aComponent.equals(currentEditorController.getComponent()))
    Differences
    Expression1Expression2Difference
    getViewgetComponentMETHOD_INVOCATION_NAME_MISMATCH
    subjectControllercurrentEditorControllerVARIABLE_NAME_MISMATCH
    org.columba.mail.gui.composer.SubjectControllerorg.columba.mail.gui.composer.AbstractEditorControllerSUBCLASS_TYPE_MISMATCH
    1
    if (aComponent.equals(currentEditorController.getComponent()))
    12
    return currentEditorController.getComponent();
    12
    return currentEditorController.getComponent();
    2
    return subjectController.getView();
    Differences
    Expression1Expression2Difference
    getComponentgetViewMETHOD_INVOCATION_NAME_MISMATCH
    currentEditorControllersubjectControllerVARIABLE_NAME_MISMATCH
    org.columba.mail.gui.composer.AbstractEditorControllerorg.columba.mail.gui.composer.SubjectControllerSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression currentEditorController cannot be unified with expression subjectController , because common superclass java.util.Observer does not declare member(s) public javax.swing.JComponent getComponent() , public org.columba.mail.gui.composer.SubjectView getView()
    2
    return subjectController.getView();
    Precondition Violations (10)
    Row Violation
    1Expression accountController cannot be unified with expression priorityController , because common superclass java.awt.event.ItemListener does not declare member(s) public org.columba.mail.gui.composer.AccountView getView() , public org.columba.mail.gui.composer.PriorityView getView() , public boolean equals(java.lang.Object)
    2Expression priorityController cannot be unified with expression accountController , because common superclass java.awt.event.ItemListener does not declare member(s) public org.columba.mail.gui.composer.PriorityView getView() , public org.columba.mail.gui.composer.AccountView getView()
    3Type org.columba.mail.gui.composer.PriorityController of variable priorityController does not match with type org.columba.mail.gui.composer.SubjectController of variable subjectController
    4Expression headerController.getView().getBccComboBox() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Expression headerController.getView().getToComboBox() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression headerController.getView().getBccComboBox() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Expression headerController.getView().getToComboBox() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    8Type org.columba.mail.gui.composer.SubjectController of variable subjectController does not match with type org.columba.mail.gui.composer.PriorityController of variable priorityController
    9Expression currentEditorController cannot be unified with expression subjectController , because common superclass java.util.Observer does not declare member(s) public javax.swing.JComponent getComponent() , public org.columba.mail.gui.composer.SubjectView getView()
    10Not all possible execution flows end in a return statement