File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/hql/classic/QueryTranslatorImpl.java | File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/loader/hql/QueryLoader.java | |||
Method name: Object getResultColumnOrRow(Object[], ResultTransformer, ResultSet, SessionImplementor)
|
Method name: Object getResultColumnOrRow(Object[], ResultTransformer, ResultSet, SessionImplementor)
|
|||
Number of AST nodes: 13 | Number of AST nodes: 14 | |||
1 | row = toResultRow( row );↵ | 1 | row = toResultRow( row );↵ | |
2 | ↵ | 2 | boolean hasTransform = hasSelectNew() || transformer!=null;↵ | |
3 | if ( hasScalars ) {↵ | 3 | if ( hasScalars ) {↵ | |
4 | String[][] scalarColumns = getColumnNames();↵ | 4 | String[][] scalarColumns = scalarColumnNames;↵ | |
5 | int queryCols = returnTypes.length;↵ | 5 | int queryCols = queryReturnTypes.length;↵ | |
6 | if ( holderClass == null && queryCols == 1 ) {↵ | 6 | if ( !hasTransform && queryCols == 1 ) {↵ | |
7 | return returnTypes[0].nullSafeGet( rs, scalarColumns[0], session, null );↵ | 7 | return queryReturnTypes[0].nullSafeGet( rs, scalarColumns[0], session, null );↵ | |
8 | }↵ | 8 | }↵ | |
9 | else {↵ | 9 | else {↵ | |
10 | row = new Object[queryCols];↵ | 10 | row = new Object[queryCols];↵ | |
11 | for ( int i = 0; i < queryCols; i++ )↵ | 11 | for ( int i = 0; i < queryCols; i++ ) {↵ | |
12 | row[i] = returnTypes[i].nullSafeGet( rs, scalarColumns[i], session, null );↵ | 12 | row[i] = queryReturnTypes[i].nullSafeGet( rs, scalarColumns[i], session, null );↵ | |
13 | ↵ | 13 | }↵ | |
14 | return row;↵ | 14 | return row;↵ | |
15 | }↵ | 15 | }↵ | |
16 | }↵ | 16 | }↵ | |
17 | else if ( holderClass == null ) {↵ | 17 | else if ( !hasTransform ) {↵ | |
18 | return row.length == 1 ? row[0] : row;↵ | 18 | return row.length == 1 ? row[0] : row;↵ | |
19 | }↵ | 19 | }↵ | |
20 | else {↵ | 20 | else {↵ | |
21 | return row;↵ | 21 | return row;↵ | |
22 | } | 22 |
| |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 1 |
Number of non-refactorable cases | 0 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.4 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 26 |
Number of mapped statements | 8 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 3.0 |
Clone type | Type 2 |
ID | Statement | ID | Statement | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | String[][] scalarColumns = getColumnNames(); |
| 4 | String[][] scalarColumns = scalarColumnNames; | ||||||||||
4 | int queryCols = returnTypes.length; |
| 5 | int queryCols = queryReturnTypes.length; | ||||||||||
5 | if (holderClass == null && queryCols == 1) |
| 6 | if (!hasTransform && queryCols == 1) | ||||||||||
6 | return returnTypes[0].nullSafeGet(rs, scalarColumns[0], session, null); |
| 7 | return queryReturnTypes[0].nullSafeGet(rs, scalarColumns[0], session, null); | ||||||||||
else | else | |||||||||||||
7 | row = new Object[queryCols]; | 8 | row = new Object[queryCols]; | |||||||||||
8 | for (int i = 0; i < queryCols; i++) | 9 | for (int i = 0; i < queryCols; i++) | |||||||||||
9 | row[i] = returnTypes[i].nullSafeGet(rs, scalarColumns[i], session, null); |
| 10 | row[i] = queryReturnTypes[i].nullSafeGet(rs, scalarColumns[i], session, null); | ||||||||||
10 | return row; | 11 | return row; |
Row | Violation |
---|