| Previous CloneSet | Next CloneSet | Back to Main Report |
| Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
|---|---|---|---|---|
| 42 | 2 | 3 | 0.988 | class_body_declaration |
| Clone Abstraction | Parameter Bindings |
| Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
|---|---|---|---|
| 1 | 42 | 125 | plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredMethod.java |
| 2 | 26 | 171 | plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/RecoveredMethod.java |
| ||||
/*
* Record a local declaration - regular method should have been created a block body
*/
public RecoveredElement add(LocalDeclaration localDeclaration, int bracketBalanceValue) {
/* local variables inside method can only be final and non void */
/*
char[][] localTypeName;
if ((localDeclaration.modifiers & ~AccFinal) != 0 // local var can only be final
|| (localDeclaration.type == null) // initializer
|| ((localTypeName = localDeclaration.type.getTypeName()).length == 1 // non void
&& CharOperation.equals(localTypeName[0], VoidBinding.sourceName()))){
if (this.parent == null){
return this; // ignore
} else {
this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(localDeclaration.declarationSourceStart - 1));
return this.parent.add(localDeclaration, bracketBalance);
}
}
*/
/* do not consider a type starting passed the type end (if set)
it must be belonging to an enclosing type */
if (methodDeclaration.declarationSourceEnd != 0 &&
localDeclaration.declarationSourceStart > methodDeclaration.declarationSourceEnd) {
if (this.parent == null) {
return this ; // ignore
}
else {
return this.parent.add(localDeclaration, bracketBalanceValue);
}
}
if (methodBody == null) {
Block block = new Block(0);
block.sourceStart = methodDeclaration.bodyStart;
RecoveredElement currentBlock = this.add(block, 1);
if (this.bracketBalance > 0) {
for (int i = 0; i < this.bracketBalance - 1; i++) {
currentBlock = currentBlock.add(new Block(0), 1);
}
this.bracketBalance = 1;
}
return currentBlock.add(localDeclaration, bracketBalanceValue);
}
return methodBody.add(localDeclaration, bracketBalanceValue, true);
}
|
| ||||
/*
* Record a statement - regular method should have been created a block body
*/
public RecoveredElement add(Statement statement, int bracketBalanceValue) {
/* do not consider a type starting passed the type end (if set)
it must be belonging to an enclosing type */
if (methodDeclaration.declarationSourceEnd != 0 &&
statement.sourceStart > methodDeclaration.declarationSourceEnd) {
if (this.parent == null) {
return this ; // ignore
}
else {
return this.parent.add(statement, bracketBalanceValue);
}
}
if (methodBody == null) {
Block block = new Block(0);
block.sourceStart = methodDeclaration.bodyStart;
RecoveredElement currentBlock = this.add(block, 1);
if (this.bracketBalance > 0) {
for (int i = 0; i < this.bracketBalance - 1; i++) {
currentBlock = currentBlock.add(new Block(0), 1);
}
this.bracketBalance = 1;
}
return currentBlock.add(statement, bracketBalanceValue);
}
return methodBody.add(statement, bracketBalanceValue, true);
}
|
| |||
/*
* Record a local declaration - regular method should have been created a block body
*/
/*
* Record a statement - regular method should have been created a block body
*/
public RecoveredElement add( [[#variableb82a81c0]] [[#variableb728a160]], int bracketBalanceValue) {
/* local variables inside method can only be final and non void */
/*
char[][] localTypeName;
if ((localDeclaration.modifiers & ~AccFinal) != 0 // local var can only be final
|| (localDeclaration.type == null) // initializer
|| ((localTypeName = localDeclaration.type.getTypeName()).length == 1 // non void
&& CharOperation.equals(localTypeName[0], VoidBinding.sourceName()))){
if (this.parent == null){
return this; // ignore
} else {
this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(localDeclaration.declarationSourceStart - 1));
return this.parent.add(localDeclaration, bracketBalance);
}
}
*/
/* do not consider a type starting passed the type end (if set)
it must be belonging to an enclosing type */
if (methodDeclaration.declarationSourceEnd != 0 && [[#variableb728a160]]. [[#variableb82a8280]] > methodDeclaration.declarationSourceEnd) {
if (this.parent == null) {
return this ; // ignore
}
else {
return this.parent.add( [[#variableb728a160]], bracketBalanceValue);
}
}
if (methodBody == null) {
Block block = new Block(0);
block.sourceStart = methodDeclaration.bodyStart;
RecoveredElement currentBlock = this.add(block, 1);
if (this.bracketBalance > 0) {
for (int i = 0; i < this.bracketBalance - 1; i++) {
currentBlock = currentBlock.add(new Block(0), 1);
}
this.bracketBalance = 1;
}
return currentBlock.add( [[#variableb728a160]], bracketBalanceValue);
}
return methodBody.add( [[#variableb728a160]], bracketBalanceValue, true);
}
|
| CloneAbstraction |
| Parameter Index | Clone Instance | Parameter Name | Value |
|---|---|---|---|
| 1 | 1 | [[#b82a81c0]] | LocalDeclaration |
| 1 | 2 | [[#b82a81c0]] | Statement |
| 2 | 1 | [[#b728a160]] | localDeclaration |
| 2 | 2 | [[#b728a160]] | statement |
| 3 | 1 | [[#b82a8280]] | declarationSourceStart |
| 3 | 2 | [[#b82a8280]] | sourceStart |