Skip to main content
summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorsprigogin2011-07-13 22:18:06 -0400
committersprigogin2011-07-14 17:44:48 -0400
commit89e15ab2d8b19563a8c62cd02613c89edfcdf17c (patch)
tree500af9f84260082ff1d95ddcd2c3b6b44fb2f418 /core
parent78f658d473b90cbfbd906845fb93292bdfbe6bb5 (diff)
downloadorg.eclipse.cdt-89e15ab2d8b19563a8c62cd02613c89edfcdf17c.tar.gz
org.eclipse.cdt-89e15ab2d8b19563a8c62cd02613c89edfcdf17c.tar.xz
org.eclipse.cdt-89e15ab2d8b19563a8c62cd02613c89edfcdf17c.zip
Cosmetics.
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriter.java60
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriterVisitor.java80
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java111
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/MacroExpansionHandler.java66
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java286
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGeneratorWriterVisitor.java86
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CreateFileChange.java53
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ModificationCollector.java37
8 files changed, 346 insertions, 433 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriter.java
index b77385bf8a..701cfdb6b9 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriter.java
@@ -1,13 +1,13 @@
/*******************************************************************************
- * Copyright (c) 2008, 2011 Institute for Software, HSR Hochschule fuer Technik
+ * Copyright (c) 2008, 2011 Institute for Software, HSR Hochschule fuer Technik
* Rapperswil, University of applied sciences and others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Institute for Software - initial API and implementation
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Institute for Software - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.rewrite.astwriter;
@@ -18,22 +18,17 @@ import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.ASTCommenter;
import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
/**
- *
- * ASTWriter main class. Generates source code from <code>IASTNode</code>. Uses a
- * <codeC>hangeGeneratorWriterVisitor</code> to generate the code for the given
- * nodes.
- *
+ * ASTWriter main class. Generates source code from <code>IASTNode</code>.
+ * Uses a <code>hangeGeneratorWriterVisitor</code> to generate the code for the given nodes.
+ *
* @see ChangeGeneratorWriterVisitor
- *
+ *
* @author Emanuel Graf
- *
*/
public class ASTWriter {
-
private ChangeGeneratorWriterVisitor transformationVisitor;
private ASTModificationStore modificationStore = new ASTModificationStore();
private String givenIndentation = ""; //$NON-NLS-1$
-
/**
* Creates a <code>ASTWriter</code>.
@@ -44,7 +39,7 @@ public class ASTWriter {
/**
* Creates a <code>ASTWriter</code> that indents the code.
- *
+ *
* @param givenIndentation The indentation added to each line
*/
public ASTWriter(String givenIndentation) {
@@ -53,9 +48,8 @@ public class ASTWriter {
}
/**
- *
- * Genereates the source code representing this node.
- *
+ * Generates the source code representing this node.
+ *
* @param rootNode Node to write.
* @return A <code>String</code> representing the source code for the node.
* @throws ProblemRuntimeException if the node or one of it's children is a <code>IASTProblemNode</code>.
@@ -63,36 +57,36 @@ public class ASTWriter {
public String write(IASTNode rootNode) throws ProblemRuntimeException {
return write(rootNode, null, new NodeCommentMap());
}
-
+
public String write(IASTNode rootNode, NodeCommentMap commentMap) {
return write(rootNode, null, commentMap);
}
-
+
/**
- *
* Generates the source code representing this node including comments.
- *
+ *
* @param rootNode Node to write.
* @param fileScope
* @param commentMap Node Comment Map <code>ASTCommenter</code>
* @return A <code>String</code> representing the source code for the node.
- * @throws ProblemRuntimeException if the node or one of it's children is a <code>IASTProblemNode</code>.
- *
+ * @throws ProblemRuntimeException if the node or one of it's children is
+ * an <code>IASTProblemNode</code>.
+ *
* @see ASTCommenter#getCommentedNodeMap(org.eclipse.cdt.core.dom.ast.IASTTranslationUnit)
*/
- public String write(IASTNode rootNode, String fileScope, NodeCommentMap commentMap) throws ProblemRuntimeException {
- transformationVisitor = new ChangeGeneratorWriterVisitor(modificationStore, givenIndentation, fileScope, commentMap);
- if(rootNode != null){
+ public String write(IASTNode rootNode, String fileScope, NodeCommentMap commentMap)
+ throws ProblemRuntimeException {
+ transformationVisitor = new ChangeGeneratorWriterVisitor(modificationStore, givenIndentation,
+ fileScope, commentMap);
+ if (rootNode != null) {
rootNode.accept(transformationVisitor);
}
String str = transformationVisitor.toString();
transformationVisitor.cleanCache();
return str;
}
-
public void setModificationStore(ASTModificationStore modificationStore) {
this.modificationStore = modificationStore;
- }
-
+ }
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriterVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriterVisitor.java
index 7cd9bf1082..553d8907c6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriterVisitor.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ASTWriterVisitor.java
@@ -1,12 +1,12 @@
/*******************************************************************************
- * Copyright (c) 2008, 2011 Institute for Software, HSR Hochschule fuer Technik
+ * Copyright (c) 2008, 2011 Institute for Software, HSR Hochschule fuer Technik
* Rapperswil, University of applied sciences and others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
* Institute for Software - initial API and implementation
* Markus Schorn (Wind River Systems)
*******************************************************************************/
@@ -39,10 +39,10 @@ import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
/**
* Visits all nodes, prints leading comments and handles macro expansions. The
* source code generation is delegated to severals <code>NodeWriters</code>.
- *
+ *
* @see NodeWriter
* @see MacroExpansionHandler
- *
+ *
* @author Emanuel Graf IFS
*/
public class ASTWriterVisitor extends ASTVisitor {
@@ -73,7 +73,7 @@ public class ASTWriterVisitor extends ASTVisitor {
shouldVisitParameterDeclarations = true;
shouldVisitTranslationUnit = true;
}
-
+
public ASTWriterVisitor(NodeCommentMap commentMap) {
this("", commentMap); //$NON-NLS-1$
}
@@ -83,7 +83,6 @@ public class ASTWriterVisitor extends ASTVisitor {
scribe.setGivenIndentation(givenIndentation);
init(commentMap);
this.commentMap = commentMap;
-
}
private void init(NodeCommentMap commentMap) {
@@ -98,30 +97,28 @@ public class ASTWriterVisitor extends ASTVisitor {
nameWriter = new NameWriter(scribe, this, commentMap);
tempParameterWriter = new TemplateParameterWriter(scribe, this, commentMap);
}
-
+
@Override
- public String toString(){
+ public String toString() {
return scribe.toString();
}
@Override
public int leave(IASTTranslationUnit tu) {
- for(IASTComment comment : commentMap.getFreestandingCommentsForNode(tu)) {
+ for (IASTComment comment : commentMap.getFreestandingCommentsForNode(tu)) {
scribe.print(comment.getComment());
scribe.newLine();
- }
+ }
return super.leave(tu);
}
private void writeLeadingComments(IASTNode node) {
- for(IASTComment comment : getLeadingComments(node)) {
+ for (IASTComment comment : getLeadingComments(node)) {
scribe.print(comment.getComment());
scribe.newLine();
- }
+ }
}
-
-
private ArrayList<IASTComment> getLeadingComments(IASTNode node) {
ArrayList<IASTComment> leadingComments = commentMap.getLeadingCommentsForNode(node);
IASTNodeLocation[] locs = node.getNodeLocations();
@@ -131,15 +128,15 @@ public class ASTWriterVisitor extends ASTVisitor {
}
return leadingComments;
}
-
+
public void visit(ASTLiteralNode lit) {
scribe.print(lit.getRawSignature());
}
-
+
@Override
public int visit(IASTName name) {
writeLeadingComments(name);
- if(!macroHandler.checkisMacroExpansionNode(name)) {
+ if (!macroHandler.checkisMacroExpansionNode(name)) {
nameWriter.writeName(name);
}
return ASTVisitor.PROCESS_SKIP;
@@ -148,18 +145,19 @@ public class ASTWriterVisitor extends ASTVisitor {
@Override
public int visit(IASTDeclSpecifier declSpec) {
writeLeadingComments(declSpec);
- declSpecWriter.writeDelcSpec(declSpec);
+ declSpecWriter.writeDelcSpec(declSpec);
return ASTVisitor.PROCESS_SKIP;
}
@Override
public int visit(IASTExpression expression) {
- writeLeadingComments(expression);
- if(!macroHandler.checkisMacroExpansionNode(expression)) {
+ writeLeadingComments(expression);
+ if (!macroHandler.checkisMacroExpansionNode(expression)) {
if (expression instanceof IGNUASTCompoundStatementExpression) {
- IGNUASTCompoundStatementExpression gnuCompStmtExp = (IGNUASTCompoundStatementExpression) expression;
+ IGNUASTCompoundStatementExpression gnuCompStmtExp =
+ (IGNUASTCompoundStatementExpression) expression;
gnuCompStmtExp.getCompoundStatement().accept(this);
- }else {
+ } else {
expWriter.writeExpression(expression);
}
}
@@ -169,10 +167,11 @@ public class ASTWriterVisitor extends ASTVisitor {
@Override
public int visit(IASTStatement statement) {
writeLeadingComments(statement);
- if(macroHandler.isStatementWithMixedLocation(statement) && !(statement instanceof IASTCompoundStatement)){
+ if (macroHandler.isStatementWithMixedLocation(statement) &&
+ !(statement instanceof IASTCompoundStatement)) {
return statementWriter.writeMixedStatement(statement);
}
- if(macroHandler.checkisMacroExpansionNode(statement)) {
+ if (macroHandler.checkisMacroExpansionNode(statement)) {
return ASTVisitor.PROCESS_SKIP;
}
return statementWriter.writeStatement(statement, true);
@@ -181,7 +180,7 @@ public class ASTWriterVisitor extends ASTVisitor {
@Override
public int visit(IASTDeclaration declaration) {
writeLeadingComments(declaration);
- if(!macroHandler.checkisMacroExpansionNode(declaration)) {
+ if (!macroHandler.checkisMacroExpansionNode(declaration)) {
declarationWriter.writeDeclaration(declaration);
}
return ASTVisitor.PROCESS_SKIP;
@@ -190,7 +189,7 @@ public class ASTWriterVisitor extends ASTVisitor {
@Override
public int visit(IASTDeclarator declarator) {
writeLeadingComments(declarator);
- if(!macroHandler.checkisMacroExpansionNode(declarator)) {
+ if (!macroHandler.checkisMacroExpansionNode(declarator)) {
declaratorWriter.writeDeclarator(declarator);
}
return ASTVisitor.PROCESS_SKIP;
@@ -198,7 +197,7 @@ public class ASTWriterVisitor extends ASTVisitor {
@Override
public int visit(IASTArrayModifier amod) {
- if(!macroHandler.checkisMacroExpansionNode(amod)) {
+ if (!macroHandler.checkisMacroExpansionNode(amod)) {
declaratorWriter.writeArrayModifier(amod);
}
return ASTVisitor.PROCESS_SKIP;
@@ -207,7 +206,7 @@ public class ASTWriterVisitor extends ASTVisitor {
@Override
public int visit(IASTInitializer initializer) {
writeLeadingComments(initializer);
- if(!macroHandler.checkisMacroExpansionNode(initializer)) {
+ if (!macroHandler.checkisMacroExpansionNode(initializer)) {
initializerWriter.writeInitializer(initializer);
}
return ASTVisitor.PROCESS_SKIP;
@@ -216,11 +215,11 @@ public class ASTWriterVisitor extends ASTVisitor {
@Override
public int visit(IASTParameterDeclaration parameterDeclaration) {
writeLeadingComments(parameterDeclaration);
- if(!macroHandler.checkisMacroExpansionNode(parameterDeclaration)) {
+ if (!macroHandler.checkisMacroExpansionNode(parameterDeclaration)) {
parameterDeclaration.getDeclSpecifier().accept(this);
IASTDeclarator declarator = getParameterDeclarator(parameterDeclaration);
-
- if(getParameterName(declarator).toString().length() != 0){
+
+ if (getParameterName(declarator).toString().length() != 0) {
scribe.printSpaces(1);
}
declarator.accept(this);
@@ -232,15 +231,14 @@ public class ASTWriterVisitor extends ASTVisitor {
return declarator.getName();
}
- protected IASTDeclarator getParameterDeclarator(
- IASTParameterDeclaration parameterDeclaration) {
+ protected IASTDeclarator getParameterDeclarator(IASTParameterDeclaration parameterDeclaration) {
return parameterDeclaration.getDeclarator();
}
-
+
@Override
public int visit(ICPPASTNamespaceDefinition namespace) {
writeLeadingComments(namespace);
- if(!macroHandler.checkisMacroExpansionNode(namespace)) {
+ if (!macroHandler.checkisMacroExpansionNode(namespace)) {
declarationWriter.writeDeclaration(namespace);
}
return ASTVisitor.PROCESS_SKIP;
@@ -249,7 +247,7 @@ public class ASTWriterVisitor extends ASTVisitor {
@Override
public int visit(ICPPASTTemplateParameter parameter) {
writeLeadingComments(parameter);
- if(!macroHandler.checkisMacroExpansionNode(parameter)) {
+ if (!macroHandler.checkisMacroExpansionNode(parameter)) {
tempParameterWriter.writeTemplateParameter(parameter);
}
return ASTVisitor.PROCESS_SKIP;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java
index 2c994c26db..6976f5fcf6 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java
@@ -1,14 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2008, 2010 Institute for Software, HSR Hochschule fuer Technik
+ * Copyright (c) 2008, 2010 Institute for Software, HSR Hochschule fuer Technik
* Rapperswil, University of applied sciences and others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Institute for Software - initial API and implementation
- * Markus Schorn (Wind River Systems)
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Institute for Software - initial API and implementation
+ * Markus Schorn (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.rewrite.astwriter;
@@ -39,19 +39,15 @@ import org.eclipse.cdt.core.parser.Keywords;
import org.eclipse.cdt.internal.core.dom.parser.ASTQueries;
import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
-
/**
- *
* Generates source code of declaration nodes. The actual string operations are delegated
* to the <code>Scribe</code> class.
- *
+ *
* @see Scribe
* @see IASTDeclaration
* @author Emanuel Graf IFS
- *
*/
public class DeclarationWriter extends NodeWriter{
-
private static final String ASM_END = ")"; //$NON-NLS-1$
private static final String ASM_START = "asm("; //$NON-NLS-1$
private static final String TEMPLATE_DECLARATION = "template<"; //$NON-NLS-1$
@@ -60,15 +56,15 @@ public class DeclarationWriter extends NodeWriter{
private static final String NAMESPACE = "namespace "; //$NON-NLS-1$
private static final String USING = "using "; //$NON-NLS-1$
private boolean printSemicolon;
-
+
public DeclarationWriter(Scribe scribe, ASTVisitor visitor, NodeCommentMap commentMap) {
super(scribe, visitor, commentMap);
}
-
+
protected void writeDeclaration(IASTDeclaration declaration) throws ProblemRuntimeException{
writeDeclaration(declaration, true);
}
-
+
protected void writeDeclaration(IASTDeclaration declaration, boolean writeSemicolon) {
boolean addNewLine = true;
printSemicolon = writeSemicolon;
@@ -86,7 +82,7 @@ public class DeclarationWriter extends NodeWriter{
} else if (declaration instanceof ICPPASTLinkageSpecification) {
writeLinkageSpecification((ICPPASTLinkageSpecification) declaration);
} else if (declaration instanceof ICPPASTNamespaceAlias) {
- writeNamespaceAlias((ICPPASTNamespaceAlias) declaration);
+ writeNamespaceAlias((ICPPASTNamespaceAlias) declaration);
} else if (declaration instanceof ICPPASTTemplateDeclaration) {
writeTemplateDeclaration((ICPPASTTemplateDeclaration) declaration);
addNewLine = false;
@@ -100,13 +96,13 @@ public class DeclarationWriter extends NodeWriter{
} else if (declaration instanceof ICPPASTVisibilityLabel) {
writeVisibilityLabel((ICPPASTVisibilityLabel) declaration);
}
-
- if(hasTrailingComments(declaration)) {
+
+ if (hasTrailingComments(declaration)) {
writeTrailingComments(declaration, addNewLine);
- }else if(addNewLine){
+ } else if (addNewLine) {
scribe.newLine();
}
- if(hasFreestandingComments(declaration)){
+ if (hasFreestandingComments(declaration)) {
writeFreeStandingComments(declaration);
}
@@ -127,7 +123,7 @@ public class DeclarationWriter extends NodeWriter{
scribe.print(':');
break;
case ICPPASTVisibilityLabel.v_public:
- scribe.print(PUBLIC);
+ scribe.print(PUBLIC);
scribe.print(':');
break;
default:
@@ -144,10 +140,10 @@ public class DeclarationWriter extends NodeWriter{
private void writeUsingDeclaration(ICPPASTUsingDeclaration usingDeclaration) {
scribe.print(USING);
- if(usingDeclaration.isTypename()){
+ if (usingDeclaration.isTypename()) {
scribe.print(TYPENAME);
}
- usingDeclaration.getName().accept(visitor);
+ usingDeclaration.getName().accept(visitor);
scribe.printSemicolon();
}
@@ -157,14 +153,14 @@ public class DeclarationWriter extends NodeWriter{
}
protected void writeTemplateDeclaration(ICPPASTTemplateDeclaration templateDeclaration) {
- if(templateDeclaration.isExported()){
+ if (templateDeclaration.isExported()) {
scribe.print(EXPORT);
}
scribe.print(TEMPLATE_DECLARATION);
ICPPASTTemplateParameter[] paraDecls = templateDeclaration.getTemplateParameters();
- for(int i = 0; i < paraDecls.length; ++i) {
+ for (int i = 0; i < paraDecls.length; ++i) {
paraDecls[i].accept(visitor);
- if(i + 1 < paraDecls.length) {
+ if (i + 1 < paraDecls.length) {
scribe.print(',');
scribe.printSpaces(1);
}
@@ -174,30 +170,30 @@ public class DeclarationWriter extends NodeWriter{
templateDeclaration.getDeclaration().accept(visitor);
}
- protected void writeDeclaration(ICPPASTNamespaceDefinition declaration){
+ protected void writeDeclaration(ICPPASTNamespaceDefinition declaration) {
printSemicolon = true;
writeNamespaceDefinition(declaration);
}
-
+
private void writeNamespaceDefinition(ICPPASTNamespaceDefinition namespaceDefinition) {
scribe.print(NAMESPACE);
namespaceDefinition.getName().accept(visitor);
- if(!hasTrailingComments(namespaceDefinition.getName())) {
+ if (!hasTrailingComments(namespaceDefinition.getName())) {
scribe.newLine();
}
scribe.printLBrace();
scribe.newLine();
writeDeclarationsInNamespace(namespaceDefinition, namespaceDefinition.getDeclarations());
- if(hasFreestandingComments(namespaceDefinition)) {
+ if (hasFreestandingComments(namespaceDefinition)) {
writeFreeStandingComments(namespaceDefinition);
}
scribe.printRBrace();
-
- if(hasTrailingComments(namespaceDefinition)) {
+
+ if (hasTrailingComments(namespaceDefinition)) {
writeTrailingComments(namespaceDefinition);
}else{
scribe.newLine();
- }
+ }
}
protected void writeDeclarationsInNamespace(ICPPASTNamespaceDefinition namespaceDefinition, IASTDeclaration[] declarations) {
@@ -218,9 +214,9 @@ public class DeclarationWriter extends NodeWriter{
scribe.print( EXTERN);
scribe.print(linkageSpecification.getLiteral());
scribe.printSpaces(1);
-
+
IASTDeclaration[] declarations = linkageSpecification.getDeclarations();
- if(declarations.length > 1){
+ if (declarations.length > 1) {
scribe.printLBrace();
scribe.decrementIndentationLevel();
scribe.newLine();
@@ -229,13 +225,13 @@ public class DeclarationWriter extends NodeWriter{
}
scribe.printRBrace();
scribe.incrementIndentationLevel();
- } else if(declarations.length > 0) {
+ } else if (declarations.length > 0) {
visitNodeIfNotNull(declarations[0]);
}
}
private void writeExplicitTemplateInstantiation(ICPPASTExplicitTemplateInstantiation explicitTemplateInstantiation) {
- switch(explicitTemplateInstantiation.getModifier()){
+ switch(explicitTemplateInstantiation.getModifier()) {
case ICPPASTExplicitTemplateInstantiation.EXTERN:
scribe.print(EXTERN);
break;
@@ -246,7 +242,7 @@ public class DeclarationWriter extends NodeWriter{
scribe.print(STATIC);
break;
}
-
+
scribe.print(TEMPLATE);
explicitTemplateInstantiation.getDeclaration().accept(visitor);
}
@@ -259,7 +255,7 @@ public class DeclarationWriter extends NodeWriter{
}
private void printSemicolon() {
- if(printSemicolon) {
+ if (printSemicolon) {
scribe.printSemicolon();
}
}
@@ -269,7 +265,7 @@ public class DeclarationWriter extends NodeWriter{
declSpecifier.accept(visitor);
if (declSpecifier instanceof IASTSimpleDeclSpecifier) {
IASTSimpleDeclSpecifier simDeclSpec = (IASTSimpleDeclSpecifier) declSpecifier;
- if(simDeclSpec.getType() != IASTSimpleDeclSpecifier.t_unspecified) {
+ if (simDeclSpec.getType() != IASTSimpleDeclSpecifier.t_unspecified) {
scribe.printSpace();
}
}else {
@@ -277,12 +273,12 @@ public class DeclarationWriter extends NodeWriter{
}
IASTDeclarator declarator = ASTQueries.findOutermostDeclarator(funcDef.getDeclarator());
declarator.accept(visitor);
-
+
if (funcDef instanceof ICPPASTFunctionWithTryBlock) {
scribe.newLine();
scribe.print(Keywords.TRY);
}
-
+
if (funcDef instanceof ICPPASTFunctionDefinition) {
ICPPASTFunctionDefinition cppFuncDef= (ICPPASTFunctionDefinition) funcDef;
writeCtorChainInitializer(cppFuncDef, cppFuncDef.getMemberInitializers());
@@ -290,7 +286,7 @@ public class DeclarationWriter extends NodeWriter{
scribe.newLine();
funcDef.getBody().accept(visitor);
-
+
if (funcDef instanceof ICPPASTFunctionWithTryBlock) {
ICPPASTFunctionWithTryBlock tryblock = (ICPPASTFunctionWithTryBlock) funcDef;
ICPPASTCatchHandler[] catches = tryblock.getCatchHandlers();
@@ -299,17 +295,17 @@ public class DeclarationWriter extends NodeWriter{
}
}
}
-
- protected void writeCtorChainInitializer(
- ICPPASTFunctionDefinition funcDec, ICPPASTConstructorChainInitializer[] ctorInitChain) {
- if(ctorInitChain.length != 0) {
+
+ protected void writeCtorChainInitializer(ICPPASTFunctionDefinition funcDec,
+ ICPPASTConstructorChainInitializer[] ctorInitChain) {
+ if (ctorInitChain.length != 0) {
scribe.newLine();
scribe.print(':');
}
- for(int i = 0; i < ctorInitChain.length; ++i) {
+ for (int i = 0; i < ctorInitChain.length; ++i) {
ICPPASTConstructorChainInitializer initializer = ctorInitChain[i];
initializer.accept(visitor);
- if(i+1 < ctorInitChain.length) {
+ if (i + 1 < ctorInitChain.length) {
scribe.print(COMMA_SPACE);
}
}
@@ -318,24 +314,23 @@ public class DeclarationWriter extends NodeWriter{
private void writeSimpleDeclaration(IASTSimpleDeclaration simpDec) {
IASTDeclSpecifier declSpecifier = simpDec.getDeclSpecifier();
IASTDeclarator[] decls = simpDec.getDeclarators();
-
+
declSpecifier.accept(visitor);
boolean noSpace = false;
if (declSpecifier instanceof IASTSimpleDeclSpecifier) {
IASTSimpleDeclSpecifier simpleDeclSpecifier = (IASTSimpleDeclSpecifier) declSpecifier;
- if(simpleDeclSpecifier.getType() == IASTSimpleDeclSpecifier.t_unspecified) {
+ if (simpleDeclSpecifier.getType() == IASTSimpleDeclSpecifier.t_unspecified) {
noSpace = true;
}
}
-
- if(decls.length > 0) {
- if(!noSpace) {
+
+ if (decls.length > 0) {
+ if (!noSpace) {
scribe.printSpace();
}
writeNodeList(decls);
}
-
+
printSemicolon();
}
-
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/MacroExpansionHandler.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/MacroExpansionHandler.java
index 2a520bbe2c..798ef26963 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/MacroExpansionHandler.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/MacroExpansionHandler.java
@@ -1,13 +1,13 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 Institute for Software, HSR Hochschule fuer Technik
+ * Copyright (c) 2008, 2009 Institute for Software, HSR Hochschule fuer Technik
* Rapperswil, University of applied sciences and others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Institute for Software - initial API and implementation
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Institute for Software - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.rewrite.astwriter;
@@ -35,14 +35,12 @@ import org.eclipse.cdt.internal.core.pdom.dom.PDOMMacroReferenceName;
import org.eclipse.core.runtime.CoreException;
/**
- *
- * Recognizes nodes that are the result of an macro expansion and replaces them
+ * Recognizes nodes that are the result of an macro expansion and replaces them
* with a suitable macro call.
- * @author Emanuel Graf IFS
*
+ * @author Emanuel Graf IFS
*/
public class MacroExpansionHandler {
-
private int lastMacroExpOffset;
private final Scribe scribe;
private IASTTranslationUnit tu;
@@ -58,7 +56,7 @@ public class MacroExpansionHandler {
protected boolean isStatementWithMixedLocation(IASTStatement node) {
IASTNodeLocation[] nodeLocations = getNodeLocations(node);
- if(nodeLocations != null && nodeLocations.length > 1) {
+ if (nodeLocations != null && nodeLocations.length > 1) {
for (IASTNodeLocation loc : nodeLocations) {
if (loc instanceof IASTMacroExpansionLocation) {
return true;
@@ -70,7 +68,7 @@ public class MacroExpansionHandler {
protected boolean macroExpansionAlreadyPrinted(IASTNode node) {
IASTNodeLocation[] locs = node.getNodeLocations();
- if(locs.length ==1) {
+ if (locs.length ==1) {
if (locs[0] instanceof IASTMacroExpansionLocation) {
IASTMacroExpansionLocation macroNode = (IASTMacroExpansionLocation) locs[0];
if (macroNode.asFileLocation().getNodeOffset() == lastMacroExpOffset) {
@@ -83,14 +81,14 @@ public class MacroExpansionHandler {
protected boolean checkisMacroExpansionNode(IASTNode node, boolean write) {
IASTTranslationUnit unit = node.getTranslationUnit();
- if(tu == null || !tu.equals(unit)) {
+ if (tu == null || !tu.equals(unit)) {
initEmptyMacros(unit);
}
IASTNodeLocation[] locs = getNodeLocations(node);
if (locs != null && locs.length ==1) {
if (locs[0] instanceof IASTMacroExpansionLocation) {
IASTMacroExpansionLocation macroNode = (IASTMacroExpansionLocation) locs[0];
-
+
if (macroNode.asFileLocation().getNodeOffset() == lastMacroExpOffset) {
return true;
}
@@ -122,28 +120,28 @@ public class MacroExpansionHandler {
}
return locs;
}
-
+
private void handleEmptyMacroExpansion(IASTNode node) {
- if(node.getTranslationUnit() == null)return;
+ if (node.getTranslationUnit() == null)return;
String file = node.getContainingFilename();
List<IIndexName> exps = macroExpansion.get(file);
- if(exps != null && !exps.isEmpty()) {
+ if (exps != null && !exps.isEmpty()) {
IASTFileLocation fileLocation = getFileLocation(node);
- if(fileLocation != null) {
+ if (fileLocation != null) {
int nOff = fileLocation.getNodeOffset();
for (IIndexName iIndexName : exps) {
if (iIndexName instanceof PDOMMacroReferenceName) {
PDOMMacroReferenceName mName = (PDOMMacroReferenceName) iIndexName;
int eOff = mName.getFileLocation().getNodeOffset();
int eLength = mName.getFileLocation().getNodeLength();
- if(eOff < nOff && Math.abs((eOff+eLength-nOff)) < 3) {
+ if (eOff < nOff && Math.abs((eOff+eLength-nOff)) < 3) {
scribe.print(mName.toString() + " "); //$NON-NLS-1$
}
}
}
}
}
-
+
}
private IASTFileLocation getFileLocation(IASTNode node) {
@@ -161,29 +159,30 @@ public class MacroExpansionHandler {
if (unit != null) {
tu = unit;
IIndex index = tu.getIndex();
- if(index != null) {
+ if (index != null) {
macroExpansion = new TreeMap<String, List<IIndexName>>();
IASTPreprocessorMacroDefinition[] md = tu.getMacroDefinitions();
-
+
TreeSet<String>paths = new TreeSet<String>();
- for(IASTPreprocessorIncludeStatement is :tu.getIncludeDirectives()) {
- if(!is.isSystemInclude()) {
+ for (IASTPreprocessorIncludeStatement is :tu.getIncludeDirectives()) {
+ if (!is.isSystemInclude()) {
paths.add(is.getContainingFilename());
}
}
paths.add(tu.getContainingFilename());
-
+
for (IASTPreprocessorMacroDefinition iastPreprocessorMacroDefinition : md) {
- if(iastPreprocessorMacroDefinition.getExpansion().length() == 0) {
+ if (iastPreprocessorMacroDefinition.getExpansion().length() == 0) {
try {
- IIndexMacro[] macroBinding = index.findMacros(iastPreprocessorMacroDefinition.getName().toCharArray(), IndexFilter.ALL, null);
- if(macroBinding.length > 0) {
+ IIndexMacro[] macroBinding = index.findMacros(iastPreprocessorMacroDefinition.getName().toCharArray(),
+ IndexFilter.ALL, null);
+ if (macroBinding.length > 0) {
IIndexName[] refs = index.findReferences(macroBinding[0]);
for (IIndexName iIndexName : refs) {
String filename2 = iIndexName.getFileLocation().getFileName();
List<IIndexName>fileList = macroExpansion.get(filename2);
if (paths.contains(filename2)) {
- if(fileList == null) {
+ if (fileList == null) {
fileList = new ArrayList<IIndexName>();
macroExpansion.put(filename2, fileList);
}
@@ -196,14 +195,13 @@ public class MacroExpansionHandler {
}
}
}
- }else {
+ } else {
macroExpansion = Collections.emptyMap();
}
}
}
- public void reset(){
+ public void reset() {
lastMacroExpOffset = -1;
}
-
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java
index ece73b8790..700ccad2ee 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java
@@ -1,14 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2008, 2011 Institute for Software, HSR Hochschule fuer Technik
+ * Copyright (c) 2008, 2011 Institute for Software, HSR Hochschule fuer Technik
* Rapperswil, University of applied sciences and others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Institute for Software - initial API and implementation
- * Markus Schorn (Wind River Systems)
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Institute for Software - initial API and implementation
+ * Markus Schorn (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.rewrite.changegenerator;
@@ -55,8 +55,6 @@ import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.text.edits.TextEditGroup;
public class ChangeGenerator extends ASTVisitor {
-
-
private final LinkedHashMap<String, Integer> sourceOffsets = new LinkedHashMap<String, Integer>();
public LinkedHashMap<IASTNode, List<ASTModification>> modificationParent = new LinkedHashMap<IASTNode, List<ASTModification>>();
private final LinkedHashMap<IFile, MultiTextEdit> changes = new LinkedHashMap<IFile, MultiTextEdit>();
@@ -67,37 +65,23 @@ public class ChangeGenerator extends ASTVisitor {
{
shouldVisitExpressions = true;
-
shouldVisitStatements = true;
-
shouldVisitNames = true;
-
shouldVisitDeclarations = true;
-
shouldVisitDeclSpecifiers = true;
-
shouldVisitDeclarators = true;
-
shouldVisitArrayModifiers= true;
-
shouldVisitInitializers = true;
-
shouldVisitBaseSpecifiers = true;
-
shouldVisitNamespaces = true;
-
shouldVisitTemplateParameters = true;
-
shouldVisitParameterDeclarations = true;
-
shouldVisitTranslationUnit = true;
-
}
public ChangeGenerator(ASTModificationStore modificationStore, NodeCommentMap commentMap) {
this.modificationStore = modificationStore;
this.commentMap = commentMap;
-
}
public void generateChange(IASTNode rootNode) throws ProblemRuntimeException {
@@ -110,7 +94,6 @@ public class ChangeGenerator extends ASTVisitor {
initParentModList();
rootNode.accept(pathProvider);
for (IFile currentFile : changes.keySet()) {
-
TextFileChange subchange= ASTRewriteAnalyzer.createCTextFileChange(currentFile);
subchange.setEdit(changes.get(currentFile));
change.add(subchange);
@@ -118,20 +101,19 @@ public class ChangeGenerator extends ASTVisitor {
}
private void initParentModList() {
- ASTModificationMap rootModifications = modificationStore
- .getRootModifications();
+ ASTModificationMap rootModifications = modificationStore.getRootModifications();
if (rootModifications != null) {
for (IASTNode modifiedNode : rootModifications.getModifiedNodes()) {
- List<ASTModification> modificationsForNode = rootModifications
- .getModificationsForNode(modifiedNode);
+ List<ASTModification> modificationsForNode = rootModifications.getModificationsForNode(modifiedNode);
IASTNode modifiedNodeParent = determineParentToBeRewritten(modifiedNode, modificationsForNode);
- List<ASTModification> list = modificationParent.get(modifiedNodeParent != null ? modifiedNodeParent : modifiedNode);
- if(list != null){
+ List<ASTModification> list = modificationParent.get(modifiedNodeParent != null ?
+ modifiedNodeParent : modifiedNode);
+ if (list != null) {
list.addAll(modificationsForNode);
- }else{
+ } else {
List<ASTModification> modifiableList = new ArrayList<ASTModification>(modificationsForNode);
- modificationParent.put(modifiedNodeParent != null ? modifiedNodeParent : modifiedNode,
- modifiableList);
+ modificationParent.put(modifiedNodeParent != null ?
+ modifiedNodeParent : modifiedNode, modifiableList);
}
}
}
@@ -139,8 +121,8 @@ public class ChangeGenerator extends ASTVisitor {
private IASTNode determineParentToBeRewritten(IASTNode modifiedNode, List<ASTModification> modificationsForNode) {
IASTNode modifiedNodeParent = modifiedNode;
- for(ASTModification currentModification : modificationsForNode){
- if(currentModification.getKind() == ASTModification.ModificationKind.REPLACE){
+ for (ASTModification currentModification : modificationsForNode) {
+ if (currentModification.getKind() == ASTModification.ModificationKind.REPLACE) {
modifiedNodeParent = modifiedNode.getParent();
break;
}
@@ -152,21 +134,20 @@ public class ChangeGenerator extends ASTVisitor {
@Override
public int visit(IASTTranslationUnit translationUnit) {
if (hasChangedChild(translationUnit)) {
-
synthTreatment(translationUnit);
}
IASTFileLocation location = getFileLocationOfEmptyTranslationUnit(translationUnit);
- sourceOffsets.put(location.getFileName(),
- Integer.valueOf(location.getNodeOffset()));
+ sourceOffsets.put(location.getFileName(), Integer.valueOf(location.getNodeOffset()));
return super.visit(translationUnit);
}
-
+
/**
- * This is a Workaround for a known but not jet solved Problem in IASTNode. If you get the FileFocation of a translationUnit
- * that was built on an empty file you will get null because there it explicitly returns null if the index and length is 0.
- * To get to the Filename and other information, the location is never the less needed.
+ * This is a workaround for a known but not jet solved problem in IASTNode. If you get
+ * the FileFocation of a translation unit that was built on an empty file you will get null
+ * because there it explicitly returns null if the index and length is 0.
+ * To get to the filename and other information, the location is never the less needed.
* @param node
- * @return a hopefully "unnull" FileLocation
+ * @return a hopefully non-{@code null} FileLocation
*/
public IASTFileLocation getFileLocationOfEmptyTranslationUnit(IASTNode node) {
IASTFileLocation fileLocation = node.getFileLocation();
@@ -175,7 +156,7 @@ public class ChangeGenerator extends ASTVisitor {
if (lr != null) {
fileLocation = lr.getMappedFileLocation(0, 0);
} else {
- // support for old location map
+ // Support for old location map
fileLocation = node.getTranslationUnit().flattenLocationsToFile(node.getNodeLocations());
}
}
@@ -184,14 +165,11 @@ public class ChangeGenerator extends ASTVisitor {
@Override
public int leave(IASTTranslationUnit tu) {
-
return super.leave(tu);
}
private int getOffsetForNodeFile(IASTNode rootNode) {
-
- Integer offset = sourceOffsets.get(rootNode.getFileLocation()
- .getFileName());
+ Integer offset = sourceOffsets.get(rootNode.getFileLocation().getFileName());
return offset == null ? 0 : offset.intValue();
}
@@ -212,15 +190,13 @@ public class ChangeGenerator extends ASTVisitor {
String indent = getIndent(synthNode);
ASTWriter synthWriter = new ASTWriter(indent);
synthWriter.setModificationStore(modificationStore);
-
+
String synthSource = synthWriter.write(synthNode, fileScope, commentMap);
createChange(synthNode, synthSource);
- int newOffset = synthNode.getFileLocation().getNodeOffset()
- + synthNode.getFileLocation().getNodeLength();
+ int newOffset = synthNode.getFileLocation().getNodeOffset() + synthNode.getFileLocation().getNodeLength();
sourceOffsets.put(synthNode.getFileLocation().getFileName(), Integer.valueOf(newOffset));
-
}
private void synthTreatment(IASTTranslationUnit synthTU) {
@@ -228,9 +204,8 @@ public class ChangeGenerator extends ASTVisitor {
synthWriter.setModificationStore(modificationStore);
for (ASTModification modification : modificationParent.get(synthTU)) {
- IASTFileLocation targetLocation;
-
- targetLocation = getFileLocationOfEmptyTranslationUnit(modification.getTargetNode());
+ IASTFileLocation targetLocation =
+ getFileLocationOfEmptyTranslationUnit(modification.getTargetNode());
String currentFile = targetLocation.getFileName();
IPath implPath = new Path(currentFile);
IFile relevantFile= ResourceLookup.selectFileForLocation(implPath, null);
@@ -256,14 +231,16 @@ public class ChangeGenerator extends ASTVisitor {
newNodeCode));
break;
case APPEND_CHILD:
- if(modification.getTargetNode() instanceof IASTTranslationUnit && ((IASTTranslationUnit)modification.getTargetNode()).getDeclarations().length > 0) {
+ if (modification.getTargetNode() instanceof IASTTranslationUnit &&
+ ((IASTTranslationUnit)modification.getTargetNode()).getDeclarations().length > 0) {
IASTTranslationUnit tu = (IASTTranslationUnit)modification.getTargetNode();
IASTDeclaration lastDecl = tu.getDeclarations()[tu.getDeclarations().length -1];
targetLocation = lastDecl.getFileLocation();
}
- String lineDelimiter = FileHelper.determineLineDelimiter(FileHelper.getIFilefromIASTNode(modification.getTargetNode()));
- edit.addChild(new InsertEdit(targetLocation.getNodeOffset()
- + targetLocation.getNodeLength(),lineDelimiter + lineDelimiter + newNodeCode));
+ String lineDelimiter = FileHelper.determineLineDelimiter(
+ FileHelper.getIFilefromIASTNode(modification.getTargetNode()));
+ edit.addChild(new InsertEdit(targetLocation.getNodeOffset() + targetLocation.getNodeLength(),
+ lineDelimiter + lineDelimiter + newNodeCode));
break;
}
}
@@ -291,7 +268,7 @@ public class ChangeGenerator extends ASTVisitor {
IFile sourceFile = FileHelper.getIFilefromIASTNode(node);
int nodeOffset = getOffsetIncludingComments(node);
int nodeLength = getNodeLengthIncludingComments(node);
-
+
return FileContentHelper.getContent(sourceFile, nodeOffset, nodeLength);
}
return null;
@@ -300,17 +277,17 @@ public class ChangeGenerator extends ASTVisitor {
private int getNodeLengthIncludingComments(IASTNode node) {
int nodeOffset = node.getFileLocation().getNodeOffset();
int nodeLength = node.getFileLocation().getNodeLength();
-
+
ArrayList<IASTComment> comments = commentMap.getAllCommentsForNode(node);
- if(!comments.isEmpty()) {
+ if (!comments.isEmpty()) {
int startOffset = nodeOffset;
int endOffset = nodeOffset + nodeLength;
- for(IASTComment comment : comments) {
+ for (IASTComment comment : comments) {
IASTFileLocation commentLocation = comment.getFileLocation();
- if(commentLocation.getNodeOffset() < startOffset) {
+ if (commentLocation.getNodeOffset() < startOffset) {
startOffset = commentLocation.getNodeOffset();
}
- if(commentLocation.getNodeOffset() + commentLocation.getNodeLength() >= endOffset) {
+ if (commentLocation.getNodeOffset() + commentLocation.getNodeLength() >= endOffset) {
endOffset = commentLocation.getNodeOffset() + commentLocation.getNodeLength();
}
}
@@ -321,13 +298,13 @@ public class ChangeGenerator extends ASTVisitor {
private int getOffsetIncludingComments(IASTNode node) {
int nodeOffset = node.getFileLocation().getNodeOffset();
-
+
ArrayList<IASTComment> comments = commentMap.getAllCommentsForNode(node);
- if(!comments.isEmpty()) {
+ if (!comments.isEmpty()) {
int startOffset = nodeOffset;
- for(IASTComment comment : comments) {
+ for (IASTComment comment : comments) {
IASTFileLocation commentLocation = comment.getFileLocation();
- if(commentLocation.getNodeOffset() < startOffset) {
+ if (commentLocation.getNodeOffset() < startOffset) {
startOffset = commentLocation.getNodeOffset();
}
}
@@ -338,16 +315,13 @@ public class ChangeGenerator extends ASTVisitor {
private String getIndent(IASTNode nextNode) {
IASTFileLocation fileLocation = nextNode.getFileLocation();
- int length = fileLocation.getNodeOffset()
- - getOffsetForNodeFile(nextNode);
+ int length = fileLocation.getNodeOffset() - getOffsetForNodeFile(nextNode);
- String originalSource = FileContentHelper.getContent(FileHelper
- .getIFilefromIASTNode(nextNode),
+ String originalSource = FileContentHelper.getContent(FileHelper.getIFilefromIASTNode(nextNode),
getOffsetForNodeFile(nextNode), length);
StringBuilder indent = new StringBuilder(originalSource);
indent.reverse();
- String lastline = indent
- .substring(0, Math.max(indent.indexOf("\n"), 0)); //$NON-NLS-1$
+ String lastline = indent.substring(0, Math.max(indent.indexOf("\n"), 0)); //$NON-NLS-1$
if (lastline.trim().length() == 0) {
return lastline;
}
@@ -355,11 +329,9 @@ public class ChangeGenerator extends ASTVisitor {
}
private boolean hasChangedChild(IASTNode parent) {
-
return modificationParent.containsKey(parent);
}
-
@Override
public int visit(IASTDeclarator declarator) {
if (hasChangedChild(declarator)) {
@@ -378,10 +350,9 @@ public class ChangeGenerator extends ASTVisitor {
return super.visit(mod);
}
-
@Override
public int visit(ICPPASTNamespaceDefinition namespaceDefinition) {
- if(hasChangedChild(namespaceDefinition)){
+ if (hasChangedChild(namespaceDefinition)) {
synthTreatment(namespaceDefinition);
return ASTVisitor.PROCESS_SKIP;
}
@@ -443,7 +414,6 @@ public class ChangeGenerator extends ASTVisitor {
}
class CodeComparer {
-
private final StringBuilder originalCode;
private final StringBuilder synthCode;
private int lastCommonInSynthStart;
@@ -456,38 +426,38 @@ public class ChangeGenerator extends ASTVisitor {
this.synthCode = new StringBuilder(synthCode);
calculatePositions();
}
-
- private void calculatePositions(){
+
+ private void calculatePositions() {
lastCommonInSynthStart = calcLastCommonPositionInSynthCode();
- lastCommonInOriginalStart = calcLastCommonPositionInOriginalCode();
- firstCommonInSynthEnd = calcFirstPositionOfCommonEndInSynthCode(lastCommonInSynthStart, lastCommonInOriginalStart);
- firstCommonInOriginalEnd = calcFirstPositionOfCommonEndInOriginalCode(lastCommonInOriginalStart, lastCommonInSynthStart);
+ lastCommonInOriginalStart = calcLastCommonPositionInOriginalCode();
+ firstCommonInSynthEnd =
+ calcFirstPositionOfCommonEndInSynthCode(lastCommonInSynthStart, lastCommonInOriginalStart);
+ firstCommonInOriginalEnd =
+ calcFirstPositionOfCommonEndInOriginalCode(lastCommonInOriginalStart, lastCommonInSynthStart);
trimTrailingNewlines();
}
private void trimTrailingNewlines() {
int prevOrigEnd = firstCommonInOriginalEnd - 1;
- while( prevOrigEnd > lastCommonInOriginalStart
- && prevOrigEnd > -1
- && isUninterresting(originalCode, prevOrigEnd)){
-
+ while (prevOrigEnd > lastCommonInOriginalStart && prevOrigEnd > -1 &&
+ isUninterresting(originalCode, prevOrigEnd)) {
firstCommonInOriginalEnd = prevOrigEnd;
prevOrigEnd--;
}
-
- while(firstCommonInOriginalEnd > 0 && firstCommonInOriginalEnd +1 < originalCode.length() && (originalCode.charAt(firstCommonInOriginalEnd) == ' ' || originalCode.charAt(firstCommonInOriginalEnd) == '\t')){
+
+ while (firstCommonInOriginalEnd > 0 && firstCommonInOriginalEnd + 1 < originalCode.length() &&
+ (originalCode.charAt(firstCommonInOriginalEnd) == ' ' || originalCode.charAt(firstCommonInOriginalEnd) == '\t')) {
firstCommonInOriginalEnd++;
}
-
+
int prevSynthEnd = firstCommonInSynthEnd - 1;
- while( prevSynthEnd > lastCommonInSynthStart
- && prevSynthEnd > -1
- && isUninterresting(synthCode, prevSynthEnd)){
-
+ while (prevSynthEnd > lastCommonInSynthStart && prevSynthEnd > -1 &&
+ isUninterresting(synthCode, prevSynthEnd)) {
firstCommonInSynthEnd = prevSynthEnd;
prevSynthEnd--;
}
- while(firstCommonInSynthEnd > 0 && firstCommonInSynthEnd +1< synthCode.length() && (synthCode.charAt(firstCommonInSynthEnd) == ' ' || synthCode.charAt(firstCommonInSynthEnd) == '\t')){
+ while (firstCommonInSynthEnd > 0 && firstCommonInSynthEnd + 1 < synthCode.length() &&
+ (synthCode.charAt(firstCommonInSynthEnd) == ' ' || synthCode.charAt(firstCommonInSynthEnd) == '\t')) {
firstCommonInSynthEnd++;
}
}
@@ -495,11 +465,11 @@ public class ChangeGenerator extends ASTVisitor {
public int getLastCommonPositionInSynthCode() {
return lastCommonInSynthStart;
}
-
+
public int getLastCommonPositionInOriginalCode() {
- return lastCommonInOriginalStart;
- }
-
+ return lastCommonInOriginalStart;
+ }
+
public int getFirstPositionOfCommonEndInOriginalCode() {
return firstCommonInOriginalEnd;
}
@@ -507,58 +477,50 @@ public class ChangeGenerator extends ASTVisitor {
public int getFirstPositionOfCommonEndInSynthCode() {
return firstCommonInSynthEnd;
}
-
public int calcLastCommonPositionInSynthCode() {
return findLastCommonPosition(synthCode, originalCode);
}
-
+
public int calcLastCommonPositionInOriginalCode() {
- return findLastCommonPosition(originalCode, synthCode);
- }
-
-
- private int calcFirstPositionOfCommonEndInOriginalCode(int originalLimit, int synthLimit) {
+ return findLastCommonPosition(originalCode, synthCode);
+ }
- StringBuilder reverseOriginalCode = new StringBuilder(originalCode)
- .reverse();
- StringBuilder reverseSynthCode = new StringBuilder(synthCode)
- .reverse();
+ private int calcFirstPositionOfCommonEndInOriginalCode(int originalLimit, int synthLimit) {
+ StringBuilder reverseOriginalCode = new StringBuilder(originalCode).reverse();
+ StringBuilder reverseSynthCode = new StringBuilder(synthCode).reverse();
int lastCommonPosition = findLastCommonPosition(reverseOriginalCode, reverseSynthCode,
- reverseOriginalCode.length() - originalLimit - 1, reverseSynthCode.length() - synthLimit - 1);
+ reverseOriginalCode.length() - originalLimit - 1,
+ reverseSynthCode.length() - synthLimit - 1);
- if (lastCommonPosition < 0
- || lastCommonPosition >= originalCode.length()) {
+ if (lastCommonPosition < 0 || lastCommonPosition >= originalCode.length()) {
return -1;
}
- return originalCode.length() - lastCommonPosition -1;
+ return originalCode.length() - lastCommonPosition - 1;
}
private int calcFirstPositionOfCommonEndInSynthCode(int synthLimit, int originalLimit) {
- StringBuilder reverseOriginalCode = new StringBuilder(originalCode)
- .reverse();
- StringBuilder reverseSynthCode = new StringBuilder(synthCode)
- .reverse();
+ StringBuilder reverseOriginalCode = new StringBuilder(originalCode).reverse();
+ StringBuilder reverseSynthCode = new StringBuilder(synthCode).reverse();
int lastCommonPosition = findLastCommonPosition(reverseSynthCode, reverseOriginalCode,
- reverseSynthCode.length() - synthLimit -1, reverseOriginalCode.length() - originalLimit -1);
+ reverseSynthCode.length() - synthLimit - 1,
+ reverseOriginalCode.length() - originalLimit - 1);
- if (lastCommonPosition < 0
- || lastCommonPosition >= synthCode.length()) {
+ if (lastCommonPosition < 0 || lastCommonPosition >= synthCode.length()) {
return -1;
}
return synthCode.length() - lastCommonPosition - 1;
}
-
-
- private int findLastCommonPosition(StringBuilder first, StringBuilder second){
+
+ private int findLastCommonPosition(StringBuilder first, StringBuilder second) {
return findLastCommonPosition(first, second, first.length(), second.length());
}
-
-
- private int findLastCommonPosition(StringBuilder first, StringBuilder second, int firstLimit, int secondLimit){
+
+ private int findLastCommonPosition(StringBuilder first, StringBuilder second, int firstLimit,
+ int secondLimit) {
int firstIndex = -1;
int secondIndex = -1;
int lastCommonIndex = -1;
@@ -567,11 +529,8 @@ public class ChangeGenerator extends ASTVisitor {
lastCommonIndex = firstIndex;
firstIndex = nextInterrestingPosition(first, firstIndex);
secondIndex = nextInterrestingPosition(second, secondIndex);
- } while (firstIndex > -1
- && firstIndex <= firstLimit
- && secondIndex > -1
- && secondIndex <= secondLimit
- && first.charAt(firstIndex) == second.charAt(secondIndex));
+ } while (firstIndex > -1 && firstIndex <= firstLimit && secondIndex > -1 &&
+ secondIndex <= secondLimit && first.charAt(firstIndex) == second.charAt(secondIndex));
return lastCommonIndex;
}
@@ -600,63 +559,52 @@ public class ChangeGenerator extends ASTVisitor {
protected void createChange(MultiTextEdit edit, IASTNode changedNode) {
int changeOffset = getOffsetIncludingComments(changedNode);
-
TextEditGroup editGroup = new TextEditGroup(Messages.ChangeGenerator_group);
- for (ASTModification currentModification : modificationParent
- .get(changedNode)) {
+ for (ASTModification currentModification : modificationParent.get(changedNode)) {
if (currentModification.getAssociatedEditGroup() != null) {
editGroup = currentModification.getAssociatedEditGroup();
edit.addChildren(editGroup.getTextEdits());
break;
}
}
-
createChange(edit, changeOffset);
}
private void createChange(MultiTextEdit edit, int changeOffset) {
-
- int i = (firstCommonInSynthEnd >= 0 ? firstCommonInOriginalEnd
- : originalCode.length())
- - lastCommonInOriginalStart;
+ int i = (firstCommonInSynthEnd >= 0 ?
+ firstCommonInOriginalEnd : originalCode.length()) - lastCommonInOriginalStart;
if (i <= 0) {
- String insertCode = synthCode.substring(
- lastCommonInSynthStart, firstCommonInSynthEnd);
- InsertEdit iEdit = new InsertEdit(changeOffset
- + lastCommonInOriginalStart, insertCode);
+ String insertCode = synthCode.substring(lastCommonInSynthStart,
+ firstCommonInSynthEnd);
+ InsertEdit iEdit = new InsertEdit(changeOffset + lastCommonInOriginalStart,
+ insertCode);
edit.addChild(iEdit);
- } else if ((firstCommonInSynthEnd >= 0 ? firstCommonInSynthEnd
- : synthCode.length())
- - lastCommonInSynthStart <= 0) {
+ } else if ((firstCommonInSynthEnd >= 0 ?
+ firstCommonInSynthEnd : synthCode.length()) - lastCommonInSynthStart <= 0) {
int correction = 0;
if (lastCommonInSynthStart > firstCommonInSynthEnd) {
- correction = lastCommonInSynthStart
- - firstCommonInSynthEnd;
+ correction = lastCommonInSynthStart - firstCommonInSynthEnd;
}
- DeleteEdit dEdit = new DeleteEdit(changeOffset
- + lastCommonInOriginalStart,
- firstCommonInOriginalEnd
- - lastCommonInOriginalStart + correction);
+ DeleteEdit dEdit = new DeleteEdit(changeOffset + lastCommonInOriginalStart,
+ firstCommonInOriginalEnd - lastCommonInOriginalStart + correction);
edit.addChild(dEdit);
- } else {
- String replacementCode = getReplacementCode(
- lastCommonInSynthStart, firstCommonInSynthEnd);
+ } else {
+ String replacementCode = getReplacementCode(lastCommonInSynthStart,
+ firstCommonInSynthEnd);
ReplaceEdit rEdit = new ReplaceEdit(
- changeOffset
- + Math.max(lastCommonInOriginalStart, 0),
- (firstCommonInOriginalEnd >= 0 ? firstCommonInOriginalEnd
- : originalCode.length())
- - Math.max(lastCommonInOriginalStart, 0),
+ changeOffset + Math.max(lastCommonInOriginalStart, 0),
+ (firstCommonInOriginalEnd >= 0 ?
+ firstCommonInOriginalEnd :
+ originalCode.length()) - Math.max(lastCommonInOriginalStart, 0),
replacementCode);
edit.addChild(rEdit);
}
}
- private String getReplacementCode(int lastCommonPositionInSynth,
- int firstOfCommonEndInSynth) {
+ private String getReplacementCode(int lastCommonPositionInSynth, int firstOfCommonEndInSynth) {
int replacementStart = Math.max(lastCommonPositionInSynth, 0);
- int replacementEnd = (firstOfCommonEndInSynth >= 0 ? firstOfCommonEndInSynth
- : synthCode.length());
+ int replacementEnd = (firstOfCommonEndInSynth >= 0 ?
+ firstOfCommonEndInSynth : synthCode.length());
if (replacementStart < replacementEnd) {
return synthCode.substring(replacementStart, replacementEnd);
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGeneratorWriterVisitor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGeneratorWriterVisitor.java
index fbd76ceaa0..c5b9513d1c 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGeneratorWriterVisitor.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGeneratorWriterVisitor.java
@@ -1,14 +1,14 @@
/*******************************************************************************
- * Copyright (c) 2008, 2011 Institute for Software, HSR Hochschule fuer Technik
+ * Copyright (c) 2008, 2011 Institute for Software, HSR Hochschule fuer Technik
* Rapperswil, University of applied sciences and others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Institute for Software - initial API and implementation
- * Markus Schorn (Wind River Systems)
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Institute for Software - initial API and implementation
+ * Markus Schorn (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.internal.core.dom.rewrite.changegenerator;
@@ -37,15 +37,12 @@ import org.eclipse.cdt.internal.core.dom.rewrite.astwriter.ASTWriterVisitor;
import org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.NodeCommentMap;
/**
- *
* Visits the nodes in consideration of {@link ASTModification}s.
- *
+ *
* @since 5.0
* @author Emanuel Graf IFS
- *
*/
public class ChangeGeneratorWriterVisitor extends ASTWriterVisitor {
-
private static final String DEFAULT_INDENTATION = ""; //$NON-NLS-1$
private final ASTModificationStore modificationStore;
private final String fileScope;
@@ -74,15 +71,14 @@ public class ChangeGeneratorWriterVisitor extends ASTWriterVisitor {
shouldVisitProblems = delegateVisitor.shouldVisitProblems;
shouldVisitTypeIds = delegateVisitor.shouldVisitTypeIds;
shouldVisitArrayModifiers= delegateVisitor.shouldVisitArrayModifiers;
-
}
public ChangeGeneratorWriterVisitor(ASTModificationStore modStore, NodeCommentMap nodeMap) {
this(modStore, DEFAULT_INDENTATION, null, nodeMap);
}
- public ChangeGeneratorWriterVisitor(ASTModificationStore modStore,
- String givenIndentation, String fileScope, NodeCommentMap commentMap) {
+ public ChangeGeneratorWriterVisitor(ASTModificationStore modStore, String givenIndentation,
+ String fileScope, NodeCommentMap commentMap) {
super(givenIndentation, commentMap);
this.modificationStore = modStore;
this.fileScope = fileScope;
@@ -98,13 +94,12 @@ public class ChangeGeneratorWriterVisitor extends ASTWriterVisitor {
}
@Override
- protected IASTDeclarator getParameterDeclarator(
- IASTParameterDeclaration parameterDeclaration) {
-
+ protected IASTDeclarator getParameterDeclarator(IASTParameterDeclaration parameterDeclaration) {
IASTDeclarator newDecl = parameterDeclaration.getDeclarator();
- if(stack.getModifiedNodes().contains(newDecl)){
- for(ASTModification currentModification : stack.getModificationsForNode(newDecl)){
- if(currentModification.getKind() == ASTModification.ModificationKind.REPLACE && currentModification.getTargetNode() == parameterDeclaration){
+ if (stack.getModifiedNodes().contains(newDecl)) {
+ for (ASTModification currentModification : stack.getModificationsForNode(newDecl)) {
+ if (currentModification.getKind() == ASTModification.ModificationKind.REPLACE &&
+ currentModification.getTargetNode() == parameterDeclaration) {
newDecl = (IASTDeclarator) currentModification.getNewNode();
}
}
@@ -115,9 +110,10 @@ public class ChangeGeneratorWriterVisitor extends ASTWriterVisitor {
@Override
protected IASTName getParameterName(IASTDeclarator declarator) {
IASTName newName = declarator.getName();
- if(stack.getModifiedNodes().contains(newName)){
- for(ASTModification currentModification : stack.getModificationsForNode(newName)){
- if(currentModification.getKind() == ASTModification.ModificationKind.REPLACE && currentModification.getTargetNode() == newName){
+ if (stack.getModifiedNodes().contains(newName)) {
+ for (ASTModification currentModification : stack.getModificationsForNode(newName)) {
+ if (currentModification.getKind() == ASTModification.ModificationKind.REPLACE &&
+ currentModification.getTargetNode() == newName) {
newName = (IASTName) currentModification.getNewNode();
}
}
@@ -278,7 +274,7 @@ public class ChangeGeneratorWriterVisitor extends ASTWriterVisitor {
}
return PROCESS_SKIP;
}
-
+
@Override
public int visit(IASTExpression expression) {
if (doBeforeEveryNode(expression) == PROCESS_CONTINUE) {
@@ -329,14 +325,12 @@ public class ChangeGeneratorWriterVisitor extends ASTWriterVisitor {
@Override
public int visit(IASTTranslationUnit tu) {
- ASTModificationHelper helper = new ASTModificationHelper(
- stack);
-
- IASTDeclaration[] declarations = helper.createModifiedChildArray(tu, tu.getDeclarations(), IASTDeclaration.class, commentMap);
+ ASTModificationHelper helper = new ASTModificationHelper(stack);
+ IASTDeclaration[] declarations = helper.createModifiedChildArray(tu, tu.getDeclarations(),
+ IASTDeclaration.class, commentMap);
for (IASTDeclaration currentDeclaration : declarations) {
currentDeclaration.accept(this);
}
-
return PROCESS_SKIP;
}
@@ -356,40 +350,39 @@ public class ChangeGeneratorWriterVisitor extends ASTWriterVisitor {
return PROCESS_SKIP;
}
}
-
- //Check all insert before and append modifications for the current node. If necessary put it onto the stack.
+
+ // Check all insert before and append modifications for the current node.
+ // If necessary put it onto the stack.
for (IASTNode currentModifiedNode : stack.getModifiedNodes()) {
for (ASTModification currentMod : stack.getModificationsForNode(currentModifiedNode)) {
- if(currentMod.getNewNode() == node){
- if(currentMod.getKind() != ModificationKind.REPLACE) {
+ if (currentMod.getNewNode() == node) {
+ if (currentMod.getKind() != ModificationKind.REPLACE) {
stack.pushScope(currentModifiedNode);
return PROCESS_CONTINUE;
}
}
}
}
- //Check all replace modifications for the current node. Visit the replacing node if found.
- for (IASTNode currentModifiedNode : stack.getModifiedNodes()) {
+ // Check all replace modifications for the current node. Visit the replacing node if found.
+ for (IASTNode currentModifiedNode : stack.getModifiedNodes()) {
for (ASTModification currentMod : stack.getModificationsForNode(currentModifiedNode)) {
- if(currentMod.getTargetNode() == node && currentMod.getKind() == ModificationKind.REPLACE){
- if(currentMod.getNewNode() != null){
+ if (currentMod.getTargetNode() == node && currentMod.getKind() == ModificationKind.REPLACE) {
+ if (currentMod.getNewNode() != null) {
stack.pushScope(node);
currentMod.getNewNode().accept(this);
stack.popScope(node);
return PROCESS_SKIP;
- }
- else{
+ } else {
return PROCESS_SKIP;
}
}
}
}
-
+
return PROCESS_CONTINUE;
}
private String getCorrespondingFile(IASTNode node) {
-
if (node.getFileLocation() != null) {
return node.getFileLocation().getFileName();
}
@@ -398,11 +391,8 @@ public class ChangeGeneratorWriterVisitor extends ASTWriterVisitor {
return getCorrespondingFile(node.getParent());
}
- for (IASTNode modifiedNode : modificationStore.getRootModifications()
- .getModifiedNodes()) {
- for (ASTModification modification : modificationStore
- .getRootModifications().getModificationsForNode(
- modifiedNode)) {
+ for (IASTNode modifiedNode : modificationStore.getRootModifications().getModifiedNodes()) {
+ for (ASTModification modification : modificationStore.getRootModifications().getModificationsForNode(modifiedNode)) {
if (modification.getNewNode() == node) {
return getCorrespondingFile(modification.getTargetNode());
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CreateFileChange.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CreateFileChange.java
index 5e2a7bcdf4..f72c1b8b78 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CreateFileChange.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CreateFileChange.java
@@ -1,13 +1,13 @@
/*******************************************************************************
- * Copyright (c) 2008 Institute for Software, HSR Hochschule fuer Technik
+ * Copyright (c) 2008 Institute for Software, HSR Hochschule fuer Technik
* Rapperswil, University of applied sciences and others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Institute for Software - initial API and implementation
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Institute for Software - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.ui.refactoring;
@@ -28,18 +28,14 @@ import org.eclipse.osgi.util.NLS;
/**
* A Change for creating a new file with the given name, content and encoding at the specified path.
- *
- * @author Emanuel Graf
*
+ * @author Emanuel Graf
*/
public class CreateFileChange extends Change {
-
private String name;
private final IPath path;
private final String source;
private final String encoding;
-
-
public CreateFileChange(String name, IPath path, String source, String encoding) {
super();
@@ -48,21 +44,20 @@ public class CreateFileChange extends Change {
this.source = source;
this.encoding = encoding;
}
-
+
public CreateFileChange(IPath path, String source, String encoding) {
this(null, path, source, encoding);
}
-
+
@Override
public Object getModifiedElement() {
- IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
- return file;
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(path);
}
@Override
public String getName() {
- if(name == null) {
- return NLS.bind(Messages.CreateFileChange_CreateFile, path.toOSString());
+ if (name == null) {
+ return NLS.bind(Messages.CreateFileChange_CreateFile, path.toOSString());
}
return name;
}
@@ -72,20 +67,19 @@ public class CreateFileChange extends Change {
}
@Override
- public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException,
- OperationCanceledException {
+ public RefactoringStatus isValid(IProgressMonitor pm)
+ throws CoreException, OperationCanceledException {
RefactoringStatus result= new RefactoringStatus();
IFile file= ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-
+
URI location= file.getLocationURI();
if (location == null) {
- result.addFatalError(NLS.bind(Messages.CreateFileChange_UnknownLoc, file.getFullPath().toString()));
+ result.addFatalError(NLS.bind(Messages.CreateFileChange_UnknownLoc, file.getFullPath().toString()));
return result;
}
-
+
if (file.exists()) {
- result.addFatalError( NLS.bind(Messages.CreateFileChange_FileExists,
- file.getFullPath().toString()));
+ result.addFatalError(NLS.bind(Messages.CreateFileChange_FileExists, file.getFullPath().toString()));
return result;
}
return result;
@@ -96,13 +90,11 @@ public class CreateFileChange extends Change {
IFile file= ResourcesPlugin.getWorkspace().getRoot().getFile(path);
InputStream is = new ByteArrayInputStream(source.getBytes());
file.create(is, false, new SubProgressMonitor(pm, 1));
- if(encoding != null) {
+ if (encoding != null) {
file.setCharset(encoding, new SubProgressMonitor(pm,1));
}
return new DeleteFileChange(file.getFullPath());
}
-
-
public String getSource() {
return source;
@@ -115,6 +107,5 @@ public class CreateFileChange extends Change {
@Override
public String toString() {
return getName();
- }
-
+ }
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ModificationCollector.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ModificationCollector.java
index 58fc13cf5b..09df6e70c3 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ModificationCollector.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ModificationCollector.java
@@ -1,13 +1,13 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 Institute for Software, HSR Hochschule fuer Technik
+ * Copyright (c) 2008, 2009 Institute for Software, HSR Hochschule fuer Technik
* Rapperswil, University of applied sciences and others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Institute for Software - initial API and implementation
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Institute for Software - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.internal.ui.refactoring;
@@ -22,26 +22,25 @@ import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.dom.rewrite.ASTRewrite;
/**
- * A ModificationCollector can be passed through a refactoring and manages the rewriters
+ * A ModificationCollector can be passed through a refactoring and manages the rewriters
* and additional changes a refactoring can create.
- *
+ *
* @author Mirko Stocker
*/
public class ModificationCollector {
// Each translation unit can have only one ASTRewrite
private final Map<IASTTranslationUnit, ASTRewrite> rewriters =
- new HashMap<IASTTranslationUnit, ASTRewrite>();
-
+ new HashMap<IASTTranslationUnit, ASTRewrite>();
+
private Collection<CreateFileChange> changes;
-
+
public ASTRewrite rewriterForTranslationUnit(IASTTranslationUnit ast) {
if (!rewriters.containsKey(ast)) {
rewriters.put(ast, ASTRewrite.create(ast));
}
-
return rewriters.get(ast);
}
-
+
// Creating new files doesn't concern the rewriter, the refactorings can add them here as needed.
public void addFileChange(CreateFileChange change) {
if (changes == null) {
@@ -49,19 +48,19 @@ public class ModificationCollector {
}
changes.add(change);
}
-
+
public CCompositeChange createFinalChange() {
// Synthetic changes aren't displayed and therefore don't need a name
CCompositeChange result = new CCompositeChange(""); //$NON-NLS-1$
result.markAsSynthetic();
-
+
if (changes != null)
result.addAll(changes.toArray(new Change[changes.size()]));
-
+
for (ASTRewrite each : rewriters.values()) {
result.add(each.rewriteAST());
}
-
+
return result;
}
}

Back to the top