File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/hql/ast/SqlGenerator.java | File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/impl/SessionFactoryImpl.java | |||
Method name: void beginFunctionTemplate(AST, AST)
|
Method name: void registerEntityNameResolver(EntityNameResolver, EntityMode)
|
|||
Number of AST nodes: 6 | Number of AST nodes: 5 | |||
1 | MethodNode methodNode = ( MethodNode ) m;↵ | |||
2 | SQLFunction template = methodNode.getSQLFunction();↵ | |||
3 | if ( template == null ) {↵ | |||
4 | // if template is null we just write the function out as it appears in the hql statement↵ | |||
5 | super.beginFunctionTemplate( m, i );↵ | |||
6 | }↵ | |||
7 | else {↵ | |||
8 | // this function has a template -> redirect output and catch the arguments↵ | |||
9 | outputStack.addFirst( writer );↵ | |||
10 | writer = new FunctionArguments();↵ | |||
11 | } | 1 | LinkedHashSet resolversForMode = ( LinkedHashSet ) entityNameResolvers.get( entityMode );↵ | |
2 | if ( resolversForMode == null ) {↵ | |||
3 | resolversForMode = new LinkedHashSet();↵ | |||
4 | entityNameResolvers.put( entityMode, resolversForMode );↵ | |||
5 | }↵ | |||
6 |
| |||
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.1 |
Clones location | Clones are in different classes |
Number of node comparisons | 16 |
Number of mapped statements | 1 |
Number of unmapped statements in the first code fragment | 5 |
Number of unmapped statements in the second code fragment | 4 |
Time elapsed for statement mapping (ms) | 1.0 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | LinkedHashSet resolversForMode = (LinkedHashSet)entityNameResolvers.get(entityMode); | ||||||||||||||||
1 | MethodNode methodNode = (MethodNode)m; | | ||||||||||||||||
2 | SQLFunction template = methodNode.getSQLFunction(); | | ||||||||||||||||
3 | if (template == null) |
| 2 | if (resolversForMode == null) | ||||||||||||||
|
| 3 | resolversForMode = new LinkedHashSet(); | |||||||||||||||
| 4 | entityNameResolvers.put(entityMode, resolversForMode); | ||||||||||||||||
4 | super.beginFunctionTemplate(m, i); | | ||||||||||||||||
else | | |||||||||||||||||
5 | outputStack.addFirst(writer); | | ||||||||||||||||
6 | writer = new FunctionArguments(); | | ||||||||||||||||
| 5 | resolversForMode.add(resolver); |
Row | Violation |
---|---|
1 | Type org.hibernate.dialect.function.SQLFunction of variable template does not match with type java.util.LinkedHashSet of variable resolversForMode |
2 | Unmatched statement resolversForMode=new LinkedHashSet(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |