]> git.uio.no Git - ifi-stolz-refaktor.git/blobdiff - case-study/jdt-after/core extension/org/eclipse/jdt/internal/corext/dom/BodyDeclarationRewrite.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-after / core extension / org / eclipse / jdt / internal / corext / dom / BodyDeclarationRewrite.java
diff --git a/case-study/jdt-after/core extension/org/eclipse/jdt/internal/corext/dom/BodyDeclarationRewrite.java b/case-study/jdt-after/core extension/org/eclipse/jdt/internal/corext/dom/BodyDeclarationRewrite.java
new file mode 100644 (file)
index 0000000..d002994
--- /dev/null
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2011 IBM Corporation 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:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.internal.corext.dom;
+
+import java.util.List;
+
+import org.eclipse.text.edits.TextEditGroup;
+
+import org.eclipse.jdt.core.dom.ASTNode;
+import org.eclipse.jdt.core.dom.BodyDeclaration;
+import org.eclipse.jdt.core.dom.ChildListPropertyDescriptor;
+import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
+import org.eclipse.jdt.core.dom.rewrite.ListRewrite;
+
+
+public class BodyDeclarationRewrite {
+
+       private ASTNode fTypeNode;
+       private ListRewrite fListRewrite;
+
+       public static BodyDeclarationRewrite create(ASTRewrite rewrite, ASTNode typeNode) {
+               return new BodyDeclarationRewrite(rewrite, typeNode);
+       }
+
+       private BodyDeclarationRewrite(ASTRewrite rewrite, ASTNode typeNode) {
+               ChildListPropertyDescriptor property= ASTNodes.getBodyDeclarationsProperty(typeNode);
+               fTypeNode= typeNode;
+               fListRewrite= rewrite.getListRewrite(typeNode, property);
+       }
+
+       public void insert(BodyDeclaration decl, TextEditGroup description) {
+               List<BodyDeclaration> container= ASTNodes.getBodyDeclarations(fTypeNode);
+               int index= ASTNodes.getInsertionIndex(decl, container);
+               fListRewrite.insertAt(decl, index, description);
+       }
+}