CloneSet56


Previous CloneSetNext CloneSetBack to Main Report
Clone
Mass
Clones in
CloneSet
Parameter
Count
Clone
Similarity
Syntax Category
[Sequence Length]
120240.998class_body_declarations[2]
Clone AbstractionParameter Bindings
Clone Instance
(Click to see clone)
Line CountSource Line
Source File
1140286
plugins/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteFormatter.java
2120241
plugins/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/util/CodeFormatterUtil.java
Clone Instance
1
Line Count
140
Source Line
286
Source File
plugins/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteFormatter.java

        /**
         * Creates edits that describe how to format the given string. Returns <code>null</code> if the code could not be formatted for the given kind.
         * @param node Node describing the type of the string
         * @param str The unformatted string
         * @param indentationLevel 
         * @param lineSeparator
         * @param options
         * @return Returns the edit representing the result of the formatter
         * @throws IllegalArgumentException If the offset and length are not inside the string, a
         *  IllegalArgumentException is thrown.
         */
        private static TextEdit formatNode(ASTNode node, String str, int indentationLevel, String lineSeparator, Map options) {
                int code;
                String prefix = ""; //$NON-NLS-1$
                String suffix = ""; //$NON-NLS-1$
                if (node instanceof Statement) {
                        code = CodeFormatter.K_STATEMENTS;
                        if (node.getNodeType() == ASTNode.SWITCH_CASE) {
                                prefix = "switch(1) {"; //$NON-NLS-1$
                                suffix = "}"; //$NON-NLS-1$
                                code = CodeFormatter.K_STATEMENTS;
                        }
                }
                else   if (node instanceof Expression && node.getNodeType() != ASTNode.VARIABLE_DECLARATION_EXPRESSION) {
                        code = CodeFormatter.K_EXPRESSION;
                       }
                       else
                       if (node instanceof BodyDeclaration) {
                        code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
                       }
                       else {
                        switch (node.getNodeType()) {
                                case ASTNode.ARRAY_TYPE:
                                case ASTNode.PARAMETERIZED_TYPE:
                                case ASTNode.PRIMITIVE_TYPE:
                                case ASTNode.QUALIFIED_TYPE:
                                case ASTNode.SIMPLE_TYPE:
                                        suffix = " x;"; //$NON-NLS-1$
                                        code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
                                        break;
                                case ASTNode.WILDCARD_TYPE:
                                        prefix = "A<"; //$NON-NLS-1$
                                        suffix = "> x;"; //$NON-NLS-1$
                                        code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
                                        break;
                                case ASTNode.COMPILATION_UNIT:
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.VARIABLE_DECLARATION_EXPRESSION:
                                case ASTNode.SINGLE_VARIABLE_DECLARATION:
                                        suffix = ";"; //$NON-NLS-1$
                                        code = CodeFormatter.K_STATEMENTS;
                                        break;
                                case ASTNode.VARIABLE_DECLARATION_FRAGMENT:
                                        prefix = "A "; //$NON-NLS-1$
                                        suffix = ";"; //$NON-NLS-1$
                                        code = CodeFormatter.K_STATEMENTS;
                                        break;
                                case ASTNode.PACKAGE_DECLARATION:
                                case ASTNode.IMPORT_DECLARATION:
                                        suffix = "\nclass A {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.JAVADOC:
                                        suffix = "\nclass A {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.CATCH_CLAUSE:
                                        prefix = "try {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_STATEMENTS;
                                        break;
                                case ASTNode.ANONYMOUS_CLASS_DECLARATION:
                                        prefix = "new A()"; //$NON-NLS-1$
                                        suffix = ";"; //$NON-NLS-1$
                                        code = CodeFormatter.K_STATEMENTS;
                                        break;
                                case ASTNode.MEMBER_VALUE_PAIR:
                                        prefix = "@Author("; //$NON-NLS-1$
                                        suffix = ") class x {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.MODIFIER:
                                        suffix = " class x {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.TYPE_PARAMETER:
                                        prefix = "class X<"; //$NON-NLS-1$
                                        suffix = "> {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.MEMBER_REF:
                                case ASTNode.METHOD_REF:
                                case ASTNode.METHOD_REF_PARAMETER:
                                case ASTNode.TAG_ELEMENT:
                                case ASTNode.TEXT_ELEMENT:
                                        // javadoc formatting disabled due to bug 93644
                                        return null;

//                              wiat for bug 93644 
//                              case ASTNode.MEMBER_REF:
//                              case ASTNode.METHOD_REF:
//                                      prefix= "/**\n * @see ";
//                                      suffix= "\n*/";
//                                      code= CodeFormatter.K_JAVA_DOC;
//                                      break;
//                              case ASTNode.METHOD_REF_PARAMETER:
//                                      prefix= "/**\n * @see A#foo(";
//                                      suffix= ")\n*/";
//                                      code= CodeFormatter.K_JAVA_DOC;
//                                      break;
//                              case ASTNode.TAG_ELEMENT:
//                              case ASTNode.TEXT_ELEMENT:
//                                      prefix= "/**\n * ";
//                                      suffix= "\n*/";
//                                      code= CodeFormatter.K_JAVA_DOC;
//                                      break;
                                default:
                                        //Assert.isTrue(false, "Node type not covered: " + node.getClass().getName());
                                        return null;
                              }
                       }
                String concatStr = prefix + str + suffix;
                TextEdit edit = ToolFactory.createCodeFormatter(options).format(code, concatStr, prefix.length(), str.length(), indentationLevel, lineSeparator);
                if (prefix.length() > 0) {
                        edit = shifEdit(edit, prefix.length());
                }
                return edit;
        }

        private static TextEdit shifEdit(TextEdit oldEdit, int diff) {
                TextEdit newEdit;
                if (oldEdit instanceof ReplaceEdit) {
                        ReplaceEdit edit = (ReplaceEdit) oldEdit;
                        newEdit = new ReplaceEdit(edit.getOffset() - diff, edit.getLength(), edit.getText());
                }
                else   if (oldEdit instanceof InsertEdit) {
                        InsertEdit edit = (InsertEdit) oldEdit;
                        newEdit = new InsertEdit(edit.getOffset() - diff,  edit.getText());
                       }
                       else
                       if (oldEdit instanceof DeleteEdit) {
                        DeleteEdit edit = (DeleteEdit) oldEdit;
                        newEdit = new DeleteEdit(edit.getOffset() - diff,  edit.getLength());
                       }
                       else
                       if (oldEdit instanceof MultiTextEdit) {
                        newEdit = new MultiTextEdit();
                       }
                       else {
                        return null; // not supported
                       }
                TextEdit[] children = oldEdit.getChildren();
                for (int i = 0; i < children.length; i++) {
                        TextEdit shifted = shifEdit(children[i], diff);
                        if (shifted != null) {
                                newEdit.addChild(shifted);
                        }
                }
                return newEdit;
        }


Clone Instance
2
Line Count
120
Source Line
241
Source File
plugins/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/util/CodeFormatterUtil.java

        /**
         * Creates edits that describe how to format the given string. Returns <code>null</code> if the code could not be formatted for the given kind.
         * @throws IllegalArgumentException If the offset and length are not inside the string, a
         *  IllegalArgumentException is thrown.
         */
        public static TextEdit format2(ASTNode node, String str, int indentationLevel, String lineSeparator, Map options) {
                int code;
                String prefix = ""; //$NON-NLS-1$
                String suffix = ""; //$NON-NLS-1$
                if (node instanceof Statement) {
                        code = CodeFormatter.K_STATEMENTS;
                        if (node.getNodeType() == ASTNode.SWITCH_CASE) {
                                prefix = "switch(1) {"; //$NON-NLS-1$
                                suffix = "}"; //$NON-NLS-1$
                                code = CodeFormatter.K_STATEMENTS;
                        }
                }
                else   if (node instanceof Expression && node.getNodeType() != ASTNode.VARIABLE_DECLARATION_EXPRESSION) {
                        code = CodeFormatter.K_EXPRESSION;
                       }
                       else
                       if (node instanceof BodyDeclaration) {
                        code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
                       }
                       else {
                        switch (node.getNodeType()) {
                                case ASTNode.ARRAY_TYPE:
                                case ASTNode.PARAMETERIZED_TYPE:
                                case ASTNode.PRIMITIVE_TYPE:
                                case ASTNode.QUALIFIED_TYPE:
                                case ASTNode.SIMPLE_TYPE:
                                        suffix = " x;"; //$NON-NLS-1$
                                        code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
                                        break;
                                case ASTNode.WILDCARD_TYPE:
                                        prefix = "A<"; //$NON-NLS-1$
                                        suffix = "> x;"; //$NON-NLS-1$
                                        code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
                                        break;
                                case ASTNode.COMPILATION_UNIT:
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.VARIABLE_DECLARATION_EXPRESSION:
                                case ASTNode.SINGLE_VARIABLE_DECLARATION:
                                        suffix = ";"; //$NON-NLS-1$
                                        code = CodeFormatter.K_STATEMENTS;
                                        break;
                                case ASTNode.VARIABLE_DECLARATION_FRAGMENT:
                                        prefix = "A "; //$NON-NLS-1$
                                        suffix = ";"; //$NON-NLS-1$
                                        code = CodeFormatter.K_STATEMENTS;
                                        break;
                                case ASTNode.PACKAGE_DECLARATION:
                                case ASTNode.IMPORT_DECLARATION:
                                        suffix = "\nclass A {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.JAVADOC:
                                        suffix = "void foo();"; //$NON-NLS-1$
                                        code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
                                        break;
                                case ASTNode.CATCH_CLAUSE:
                                        prefix = "try {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_STATEMENTS;
                                        break;
                                case ASTNode.ANONYMOUS_CLASS_DECLARATION:
                                        prefix = "new A()"; //$NON-NLS-1$
                                        suffix = ";"; //$NON-NLS-1$
                                        code = CodeFormatter.K_STATEMENTS;
                                        break;
                                case ASTNode.MEMBER_VALUE_PAIR:
                                        prefix = "@Author("; //$NON-NLS-1$
                                        suffix = ") class x {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.MODIFIER:
                                        suffix = " class x {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.TYPE_PARAMETER:
                                        prefix = "class X<"; //$NON-NLS-1$
                                        suffix = "> {}"; //$NON-NLS-1$
                                        code = CodeFormatter.K_COMPILATION_UNIT;
                                        break;
                                case ASTNode.MEMBER_REF:
                                case ASTNode.METHOD_REF:
                                case ASTNode.METHOD_REF_PARAMETER:
                                case ASTNode.TAG_ELEMENT:
                                case ASTNode.TEXT_ELEMENT:
                                        // Javadoc formatting not yet supported:
                                    return null;
                                default:
                                        //Assert.isTrue(false, "Node type not covered: " + node.getClass().getName()); //$NON-NLS-1$
                                        return null;
                              }
                       }
                String concatStr = prefix + str + suffix;
                TextEdit edit = ToolFactory.createCodeFormatter(options).format(code, concatStr, prefix.length(), str.length(), indentationLevel, lineSeparator);
                if (prefix.length() > 0) {
                        edit = shifEdit(edit, prefix.length());
                }
                return edit;
        }

        private static TextEdit shifEdit(TextEdit oldEdit, int diff) {
                TextEdit newEdit;
                if (oldEdit instanceof ReplaceEdit) {
                        ReplaceEdit edit = (ReplaceEdit) oldEdit;
                        newEdit = new ReplaceEdit(edit.getOffset() - diff, edit.getLength(), edit.getText());
                }
                else   if (oldEdit instanceof InsertEdit) {
                        InsertEdit edit = (InsertEdit) oldEdit;
                        newEdit = new InsertEdit(edit.getOffset() - diff,  edit.getText());
                       }
                       else
                       if (oldEdit instanceof DeleteEdit) {
                        DeleteEdit edit = (DeleteEdit) oldEdit;
                        newEdit = new DeleteEdit(edit.getOffset() - diff,  edit.getLength());
                       }
                       else
                       if (oldEdit instanceof MultiTextEdit) {
                        newEdit = new MultiTextEdit();
                       }
                       else {
                        return null; // not supported
                       }
                TextEdit[] children = oldEdit.getChildren();
                for (int i = 0; i < children.length; i++) {
                        TextEdit shifted = shifEdit(children[i], diff);
                        if (shifted != null) {
                                newEdit.addChild(shifted);
                        }
                }
                return newEdit;
        }


Clone AbstractionParameter Count: 4Parameter Bindings

 [[#variable5447e220]]static TextEdit  [[#variable5447e1c0]](ASTNode node, String str, int indentationLevel, String lineSeparator, Map options) {
  int code;
  String prefix = ""; //$NON-NLS-1$
  String suffix = ""; //$NON-NLS-1$
  if (node instanceof Statement) {
    code = CodeFormatter.K_STATEMENTS;
    if (node.getNodeType() == ASTNode.SWITCH_CASE) {
      prefix = "switch(1) {"; //$NON-NLS-1$
      suffix = "}"; //$NON-NLS-1$
      code = CodeFormatter.K_STATEMENTS;
    }
  }
  else
    if (node instanceof Expression && node.getNodeType() != ASTNode.VARIABLE_DECLARATION_EXPRESSION) {
      code = CodeFormatter.K_EXPRESSION;
    }
    else
      if (node instanceof BodyDeclaration) {
        code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
      }
      else {
        switch (node.getNodeType()) {
          case ASTNode.ARRAY_TYPE:
          case ASTNode.PARAMETERIZED_TYPE:
          case ASTNode.PRIMITIVE_TYPE:
          case ASTNode.QUALIFIED_TYPE:
          case ASTNode.SIMPLE_TYPE:
            suffix = " x;"; //$NON-NLS-1$
            code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
            break;
          case ASTNode.WILDCARD_TYPE:
            prefix = "A<"; //$NON-NLS-1$
            suffix = "> x;"; //$NON-NLS-1$
            code = CodeFormatter.K_CLASS_BODY_DECLARATIONS;
            break;
          case ASTNode.COMPILATION_UNIT:
            code = CodeFormatter.K_COMPILATION_UNIT;
            break;
          case ASTNode.VARIABLE_DECLARATION_EXPRESSION:
          case ASTNode.SINGLE_VARIABLE_DECLARATION:
            suffix = ";"; //$NON-NLS-1$
            code = CodeFormatter.K_STATEMENTS;
            break;
          case ASTNode.VARIABLE_DECLARATION_FRAGMENT:
            prefix = "A "; //$NON-NLS-1$
            suffix = ";"; //$NON-NLS-1$
            code = CodeFormatter.K_STATEMENTS;
            break;
          case ASTNode.PACKAGE_DECLARATION:
          case ASTNode.IMPORT_DECLARATION:
            suffix = "\nclass A {}"; //$NON-NLS-1$
            code = CodeFormatter.K_COMPILATION_UNIT;
            break;
          case ASTNode.JAVADOC:
            suffix = [[#variable5447ed20]]; //$NON-NLS-1$
            code = CodeFormatter. [[#variable5447e180]];
            break;
          case ASTNode.CATCH_CLAUSE:
            prefix = "try {}"; //$NON-NLS-1$
            code = CodeFormatter.K_STATEMENTS;
            break;
          case ASTNode.ANONYMOUS_CLASS_DECLARATION:
            prefix = "new A()"; //$NON-NLS-1$
            suffix = ";"; //$NON-NLS-1$
            code = CodeFormatter.K_STATEMENTS;
            break;
          case ASTNode.MEMBER_VALUE_PAIR:
            prefix = "@Author("; //$NON-NLS-1$
            suffix = ") class x {}"; //$NON-NLS-1$
            code = CodeFormatter.K_COMPILATION_UNIT;
            break;
          case ASTNode.MODIFIER:
            suffix = " class x {}"; //$NON-NLS-1$
            code = CodeFormatter.K_COMPILATION_UNIT;
            break;
          case ASTNode.TYPE_PARAMETER:
            prefix = "class X<"; //$NON-NLS-1$
            suffix = "> {}"; //$NON-NLS-1$
            code = CodeFormatter.K_COMPILATION_UNIT;
            break;
          case ASTNode.MEMBER_REF:
          case ASTNode.METHOD_REF:
          case ASTNode.METHOD_REF_PARAMETER:
          case ASTNode.TAG_ELEMENT:
          case ASTNode.TEXT_ELEMENT:
            // Javadoc formatting not yet supported:
            // javadoc formatting disabled due to bug 93644
            return null;
          //                              wiat for bug 93644 
          //                              case ASTNode.MEMBER_REF:
          //                              case ASTNode.METHOD_REF:
          //                                      prefix= "/**\n * @see ";
          //                                      suffix= "\n*/";
          //                                      code= CodeFormatter.K_JAVA_DOC;
          //                                      break;
          //                              case ASTNode.METHOD_REF_PARAMETER:
          //                                      prefix= "/**\n * @see A#foo(";
          //                                      suffix= ")\n*/";
          //                                      code= CodeFormatter.K_JAVA_DOC;
          //                                      break;
          //                              case ASTNode.TAG_ELEMENT:
          //                              case ASTNode.TEXT_ELEMENT:
          //                                      prefix= "/**\n * ";
          //                                      suffix= "\n*/";
          //                                      code= CodeFormatter.K_JAVA_DOC;
          //                                      break;
          default:
            //Assert.isTrue(false, "Node type not covered: " + node.getClass().getName()); //$NON-NLS-1$
            //Assert.isTrue(false, "Node type not covered: " + node.getClass().getName());
            return null;
        }
      }
  String concatStr = prefix + str + suffix;
  TextEdit edit = ToolFactory.createCodeFormatter(options).format(code, concatStr, prefix.length(), str.length(), indentationLevel, lineSeparator);
  if (prefix.length() > 0) {
    edit = shifEdit(edit, prefix.length());
  }
  return edit;
}

private static TextEdit shifEdit(TextEdit oldEdit, int diff) {
  TextEdit newEdit;
  if (oldEdit instanceof ReplaceEdit) {
    ReplaceEdit edit = (ReplaceEdit) oldEdit;
    newEdit = new ReplaceEdit(edit.getOffset() - diff, edit.getLength(), edit.getText());
  }
  else
    if (oldEdit instanceof InsertEdit) {
      InsertEdit edit = (InsertEdit) oldEdit;
      newEdit = new InsertEdit(edit.getOffset() - diff, edit.getText());
    }
    else
      if (oldEdit instanceof DeleteEdit) {
        DeleteEdit edit = (DeleteEdit) oldEdit;
        newEdit = new DeleteEdit(edit.getOffset() - diff, edit.getLength());
      }
      else
        if (oldEdit instanceof MultiTextEdit) {
          newEdit = new MultiTextEdit();
        }
        else {
          return null; // not supported
        }
  TextEdit[] children = oldEdit.getChildren();
  for (int i = 0; i < children.length; i++) {
    TextEdit shifted = shifEdit(children[i], diff);
    if (shifted != null) {
      newEdit.addChild(shifted);
    }
  }
  return newEdit;
}
 

CloneAbstraction
Parameter Bindings
Parameter
Index
Clone
Instance
Parameter
Name
Value
11[[#5447e220]]
/**
 * Creates edits that describe how to format the given string. Returns <code>null</code> if the code could not be formatted for the given kind.
 * @throws IllegalArgumentException If the offset and length are not inside the string, a
 *  IllegalArgumentException is thrown.
 */
public 
12[[#5447e220]]
/**
 * Creates edits that describe how to format the given string. Returns <code>null</code> if the code could not be formatted for the given kind.
 * @param node Node describing the type of the string
 * @param str The unformatted string
 * @param indentationLevel 
 * @param lineSeparator
 * @param options
 * @return Returns the edit representing the result of the formatter
 * @throws IllegalArgumentException If the offset and length are not inside the string, a
 *  IllegalArgumentException is thrown.
 */
private 
21[[#5447e1c0]]
format2 
22[[#5447e1c0]]
formatNode 
31[[#5447ed20]]
"void foo();" 
32[[#5447ed20]]
"\nclass A {}" 
41[[#5447e180]]
K_CLASS_BODY_DECLARATIONS 
42[[#5447e180]]
K_COMPILATION_UNIT