if ( READ_WRITE.name.equals( name ) ) { return READ_WRITE; } else if ( NONSTRICT_READ_WRITE.name.equals( name ) ) { return NONSTRICT_READ_WRITE; } else if ( TRANSACTIONAL.name.equals( name ) ) { return TRANSACTIONAL; } else { return null; }
if ( name.equals( NONE.name ) ) { return NONE; } else if ( name.equals( COUNT.name ) ) { return COUNT; } else if ( name.equals( PARAM.name ) ) { return PARAM; } else { return null; }
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/cache/access/AccessType.java File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/engine/ExecuteUpdateResultCheckStyle.java
Method name: AccessType resolve(String) Method name: ExecuteUpdateResultCheckStyle parse(String)
Number of AST nodes: 7 Number of AST nodes: 7
1
if ( READ_WRITE.name.equals( name ) ) {
1
if ( name.equals( NONE.name ) ) {
2
			return READ_WRITE;
2
			return NONE;
3
		}
3
		}
4
		else if ( NONSTRICT_READ_WRITE.name.equals( name ) ) {
4
		else if ( name.equals( COUNT.name ) ) {
5
			return NONSTRICT_READ_WRITE;
5
			return COUNT;
6
		}
6
		}
7
		else if ( TRANSACTIONAL.name.equals( name ) ) {
7
		else if ( name.equals( PARAM.name ) ) {
8
			return TRANSACTIONAL;
8
			return PARAM;
9
		}
9
		}
10
		else {
10
		else {
11
			return null;
11
			return null;
12
		}
12
		}
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)0.9
Clones locationClones are in different classes
Number of node comparisons36
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements4
    Number of unmapped statements in the first code fragment3
    Number of unmapped statements in the second code fragment3
    Time elapsed for statement mapping (ms)1.9
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    3
    if (READ_WRITE.name.equals(name))
    3
    if (READ_WRITE.name.equals(name))
    1
    if (name.equals(NONE.name))
    Differences
    Expression1Expression2Difference
    nameNONE.nameTYPE_COMPATIBLE_REPLACEMENT
    READ_WRITE.namenameTYPE_COMPATIBLE_REPLACEMENT
    1
    if (name.equals(NONE.name))
                                  
    2
    return NONE;
    Preondition Violations
    Unmatched statement return NONE; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    Unmatched return NONE;
    2
    return NONE;
    4
    return READ_WRITE;
    4
    return READ_WRITE;
    Preondition Violations
    Unmatched statement return READ_WRITE; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    Unmatched return READ_WRITE;
                                              
    5
    else if (NONSTRICT_READ_WRITE.name.equals(name))
    5
    else if (NONSTRICT_READ_WRITE.name.equals(name))
    3
    else if (name.equals(COUNT.name))
    Differences
    Expression1Expression2Difference
    nameCOUNT.nameTYPE_COMPATIBLE_REPLACEMENT
    NONSTRICT_READ_WRITE.namenameTYPE_COMPATIBLE_REPLACEMENT
    3
    else if (name.equals(COUNT.name))
                                    
    4
    return COUNT;
    Preondition Violations
    Unmatched statement return COUNT; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    Unmatched return COUNT;
    4
    return COUNT;
    6
    return NONSTRICT_READ_WRITE;
    6
    return NONSTRICT_READ_WRITE;
    Preondition Violations
    Unmatched statement return NONSTRICT_READ_WRITE; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    Unmatched return NONSTRICT_READ_WRITE;
                                                                  
    7
    else if (TRANSACTIONAL.name.equals(name))
    7
    else if (TRANSACTIONAL.name.equals(name))
    5
    else if (name.equals(PARAM.name))
    Differences
    Expression1Expression2Difference
    namePARAM.nameTYPE_COMPATIBLE_REPLACEMENT
    TRANSACTIONAL.namenameTYPE_COMPATIBLE_REPLACEMENT
    5
    else if (name.equals(PARAM.name))
                                    
    6
    return PARAM;
    Preondition Violations
    Unmatched statement return PARAM; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    Unmatched return PARAM;
    6
    return PARAM;
    8
    return TRANSACTIONAL;
    8
    return TRANSACTIONAL;
    Preondition Violations
    Unmatched statement return TRANSACTIONAL; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    Unmatched return TRANSACTIONAL;
                                                    
    else
    else
    9
    return null;
    7
    return null;
    Precondition Violations (13)
    Row Violation
    1Unmatched statement return NONE; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    2Unmatched return NONE;
    3Unmatched statement return READ_WRITE; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    4Unmatched return READ_WRITE;
    5Unmatched statement return COUNT; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    6Unmatched return COUNT;
    7Unmatched statement return NONSTRICT_READ_WRITE; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    8Unmatched return NONSTRICT_READ_WRITE;
    9Unmatched statement return PARAM; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    10Unmatched return PARAM;
    11Unmatched statement return TRANSACTIONAL; cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted
    12Unmatched return TRANSACTIONAL;
    13Not all possible execution flows end in a return statement