File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/type/TypeFactory.java | File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/type/TypeFactory.java | |||
Method name: Object[] assemble(Serializable[], Type[], SessionImplementor, Object)
|
Method name: Object[] replace(Object[], Object[], Type[], SessionImplementor, Object, Map)
|
|||
Number of AST nodes: 6 | Number of AST nodes: 6 | |||
1 | Object[] assembled = new Object[row.length];↵ | 1 | Object[] copied = new Object[original.length];↵ | |
2 | for ( int i = 0; i < types.length; i++ ) {↵ | 2 | for ( int i = 0; i < types.length; i++ ) {↵ | |
3 | if ( row[i] == LazyPropertyInitializer.UNFETCHED_PROPERTY || row↵ | 3 | if ( original[i] == LazyPropertyInitializer.UNFETCHED_PROPERTY↵ | |
4 | [i] == BackrefPropertyAccessor.UNKNOWN ) {↵ | 4 | || original[i] == BackrefPropertyAccessor.UNKNOWN ) {↵ | |
5 | assembled[i] = row[i];↵ | 5 | copied[i] = target[i];↵ | |
6 | }↵ | 6 | }↵ | |
7 | else {↵ | 7 | else {↵ | |
8 | assembled[i] = types[i].assemble( row[i], session, owner );↵ | 8 | copied[i] = types[i].replace( original[i], target[i], session, owner, copyCache );↵ | |
9 | }↵ | 9 | }↵ | |
10 | }↵ | 10 | }↵ | |
11 | return assembled; | 11 | return copied; | |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.6 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 14 |
Number of mapped statements | 5 |
Number of unmapped statements in the first code fragment | 1 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 1.8 |
Clone type | Type 2 |
ID | Statement | ID | Statement | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Object[] assembled = new Object[row.length]; |
| 1 | Object[] copied = new Object[original.length]; | |||||||||||||||||||||
2 | for (int i = 0; i < types.length; i++) | 2 | for (int i = 0; i < types.length; i++) | ||||||||||||||||||||||
3 | if (row[i] == LazyPropertyInitializer.UNFETCHED_PROPERTY || row[i] == BackrefPropertyAccessor.UNKNOWN) |
| 3 | if (original[i] == LazyPropertyInitializer.UNFETCHED_PROPERTY || original[i] == BackrefPropertyAccessor.UNKNOWN) | |||||||||||||||||||||
|
| 4 | copied[i] = target[i]; | ||||||||||||||||||||||
4 | assembled[i] = row[i]; |
| | ||||||||||||||||||||||
else | else | ||||||||||||||||||||||||
5 | assembled[i] = types[i].assemble(row[i], session, owner); |
| 5 | copied[i] = types[i].replace(original[i], target[i], session, owner, copyCache); | |||||||||||||||||||||
6 | return assembled; |
| 6 | return copied; |
Row | Violation |
---|---|
1 | Type java.io.Serializable[] of variable row does not match with type java.lang.Object[] of variable original |
2 | Type java.io.Serializable[] of variable row does not match with type java.lang.Object[] of variable original |
3 | Type java.io.Serializable[] of variable row does not match with type java.lang.Object[] of variable original |
4 | Unmatched statement copied[i]=target[i]; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
5 | Unmatched statement assembled[i]=row[i]; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
6 | Expression types[i].assemble(row[i],session,owner) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
7 | Expression types[i].replace(original[i],target[i],session,owner,copyCache) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
8 | Expression types[i].assemble(row[i],session,owner) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
9 | Expression types[i].replace(original[i],target[i],session,owner,copyCache) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
10 | Clone fragment #1 returns variables assembled, i , while Clone fragment #2 returns variables copied, i |