File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/hql/ast/tree/SelectClause.java | File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/hql/ast/tree/SelectClause.java | |||
Method name: void renderNonScalarSelects(SelectExpression[], FromClause)
|
Method name: void renderNonScalarSelects(SelectExpression[], FromClause)
|
|||
Number of AST nodes: 7 | Number of AST nodes: 8 | |||
1 | if ( !currentFromClause.isSubQuery() ) {↵ | |||
2 | // Generate the property select tokens.↵ | |||
3 | int k = 0;↵ | |||
1 | for ( int i = 0; i < size; i++ ) {↵ | 4 | for ( int i = 0; i < size; i++ ) {↵ | |
2 | if ( !selectExpressions[i].isScalar() ) {↵ | 5 | if ( !selectExpressions[i].isScalar() ) {↵ | |
3 | SelectExpression expr = selectExpressions[i];↵ | 6 | ↵ | |
4 | FromElement fromElement = expr.getFromElement();↵ | 7 | FromElement fromElement = selectExpressions[i].getFromElement();↵ | |
5 | if ( fromElement != null ) {↵ | 8 | if ( fromElement != null ) {↵ | |
6 | renderNonScalarIdentifiers( fromElement, nonscalarSize, j, expr, appender );↵ | 9 | renderNonScalarProperties( appender, fromElement, nonscalarSize, k );↵ | |
7 | j++;↵ | 10 | k++;↵ | |
8 | ↵ | 11 | }↵ | |
9 | }↵ | 12 | }↵ | |
10 | }↵ | 13 | }↵ | |
11 | } | 14 |
| |
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.3 |
Clones location | Clones are in the same method |
Number of node comparisons | 18 |
Number of mapped statements | 6 |
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) | 3.6 |
Clone type | Type 3 |
ID | Statement | ID | Statement | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 16 | int k = 0; | |||||||||||||||||||||||
8 | for (int i = 0; i < size; i++) | 17 | for (int i = 0; i < size; i++) | ||||||||||||||||||||||
9 | if (!selectExpressions[i].isScalar()) | 18 | if (!selectExpressions[i].isScalar()) | ||||||||||||||||||||||
10 | SelectExpression expr = selectExpressions[i]; |
| | ||||||||||||||||||||||
11 | FromElement fromElement = expr.getFromElement(); |
| 19 | FromElement fromElement = selectExpressions[i].getFromElement(); | |||||||||||||||||||||
12 | if (fromElement != null) | 20 | if (fromElement != null) | ||||||||||||||||||||||
13 | renderNonScalarIdentifiers(fromElement, nonscalarSize, j, expr, appender); |
| 21 | renderNonScalarProperties(appender, fromElement, nonscalarSize, k); | |||||||||||||||||||||
14 | j++; |
| 22 | k++; |
Row | Violation |
---|---|
1 | Unmatched statement SelectExpression expr=selectExpressions[i]; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Expression expr cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Expression selectExpressions[i] cannot be parameterized, because it has dependencies to/from statements that will be extracted |
4 | Expression renderNonScalarIdentifiers(fromElement,nonscalarSize,j,expr,appender) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
5 | Expression renderNonScalarProperties(appender,fromElement,nonscalarSize,k) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
6 | Expression renderNonScalarIdentifiers(fromElement,nonscalarSize,j,expr,appender) is a void method call, and thus it cannot be parameterized |
7 | Expression renderNonScalarProperties(appender,fromElement,nonscalarSize,k) is a void method call, and thus it cannot be parameterized |
8 | Expression renderNonScalarIdentifiers(fromElement,nonscalarSize,j,expr,appender) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
9 | Expression renderNonScalarProperties(appender,fromElement,nonscalarSize,k) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
10 | Expression renderNonScalarIdentifiers(fromElement,nonscalarSize,j,expr,appender) is a void method call, and thus it cannot be parameterized |
11 | Expression renderNonScalarProperties(appender,fromElement,nonscalarSize,k) is a void method call, and thus it cannot be parameterized |
12 | Clone fragment #1 returns variables i , while Clone fragment #2 returns variables |