File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/cfg/HbmBinder.java | File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/cfg/HbmBinder.java | |||
Method name: void handleCustomSQL(Element, PersistentClass)
|
Method name: void handleCustomSQL(Element, Join)
|
|||
Number of AST nodes: 15 | Number of AST nodes: 12 | |||
1 | Element element = node.element( "sql-insert" );↵ | 1 | Element element = node.element( "sql-insert" );↵ | |
2 | if ( element != null ) {↵ | 2 | if ( element != null ) {↵ | |
3 | boolean callable = isCallable( element );↵ | 3 | boolean callable = isCallable( element );↵ | |
4 | model.setCustomSQLInsert( element.getTextTrim(), callable, getResultCheckStyle( element, callable ) );↵ | 4 | model.setCustomSQLInsert( element.getTextTrim(), callable, getResultCheckStyle( element, callable ) );↵ | |
5 | }↵ | 5 | }↵ | |
6 | element = node.element( "sql-delete" );↵ | 6 | element = node.element( "sql-delete" );↵ | |
7 | if ( element != null ) {↵ | 7 | if ( element != null ) {↵ | |
8 | boolean callable = isCallable( element );↵ | 8 | boolean callable = isCallable( element );↵ | |
9 | model.setCustomSQLDelete( element.getTextTrim(), callable, getResultCheckStyle( element, callable ) );↵ | 9 | model.setCustomSQLDelete( element.getTextTrim(), callable, getResultCheckStyle( element, callable ) );↵ | |
10 | }↵ | 10 | }↵ | |
11 | element = node.element( "sql-update" );↵ | 11 | element = node.element( "sql-update" );↵ | |
12 | if ( element != null ) {↵ | 12 | if ( element != null ) {↵ | |
13 | boolean callable = isCallable( element );↵ | 13 | boolean callable = isCallable( element );↵ | |
14 | model.setCustomSQLUpdate( element.getTextTrim(), callable, getResultCheckStyle( element, callable ) );↵ | 14 | model.setCustomSQLUpdate( element.getTextTrim(), callable, getResultCheckStyle( element, callable ) );↵ | |
15 | }↵ | 15 |
| |
16 | element = node.element( "loader" );↵ | |||
17 | if ( element != null ) {↵ | |||
18 | model.setLoaderName( element.attributeValue( "query-ref" ) );↵ | |||
19 | } | |||
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.8 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 72 |
Number of mapped statements | 12 |
Number of unmapped statements in the first code fragment | 1 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 3.8 |
Clone type | Type 3 |
ID | Statement | ID | Statement | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Element element = node.element("sql-insert"); | 1 | Element element = node.element("sql-insert"); | ||||||||||||
2 | if (element != null) | 2 | if (element != null) | ||||||||||||
3 | boolean callable = isCallable(element); | 3 | boolean callable = isCallable(element); | ||||||||||||
4 | model.setCustomSQLInsert(element.getTextTrim(), callable, getResultCheckStyle(element, callable)); |
| 4 | model.setCustomSQLInsert(element.getTextTrim(), callable, getResultCheckStyle(element, callable)); | |||||||||||
5 | element = node.element("sql-delete"); | 5 | element = node.element("sql-delete"); | ||||||||||||
6 | if (element != null) | 6 | if (element != null) | ||||||||||||
7 | boolean callable = isCallable(element); | 7 | boolean callable = isCallable(element); | ||||||||||||
8 | model.setCustomSQLDelete(element.getTextTrim(), callable, getResultCheckStyle(element, callable)); |
| 8 | model.setCustomSQLDelete(element.getTextTrim(), callable, getResultCheckStyle(element, callable)); | |||||||||||
9 | element = node.element("sql-update"); | 9 | element = node.element("sql-update"); | ||||||||||||
10 | if (element != null) | 10 | if (element != null) | ||||||||||||
11 | boolean callable = isCallable(element); | 11 | boolean callable = isCallable(element); | ||||||||||||
12 | model.setCustomSQLUpdate(element.getTextTrim(), callable, getResultCheckStyle(element, callable)); |
| 12 | model.setCustomSQLUpdate(element.getTextTrim(), callable, getResultCheckStyle(element, callable)); | |||||||||||
13 | element = node.element("loader"); |
| |
Row | Violation |
---|---|
1 | Type org.hibernate.mapping.PersistentClass of variable model does not match with type org.hibernate.mapping.Join of variable model |
2 | Type org.hibernate.mapping.PersistentClass of variable model does not match with type org.hibernate.mapping.Join of variable model |
3 | Type org.hibernate.mapping.PersistentClass of variable model does not match with type org.hibernate.mapping.Join of variable model |
4 | Unmatched statement element=node.element("loader"); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |