|
From: <mir...@us...> - 2007-04-13 12:55:40
|
Revision: 2304
http://svn.sourceforge.net/rubyeclipse/?rev=2304&view=rev
Author: mirkostocker
Date: 2007-04-13 05:55:36 -0700 (Fri, 13 Apr 2007)
Log Message:
-----------
rename and reuse the PartialClassesRenameEditProvider
Modified Paths:
--------------
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/SelectionNodeProvider.java
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/RenameClassEditProvider.java
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConditionChecker.java
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleEditProvider.java
trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TC_ModuleNodeWrapper.java
Added Paths:
-----------
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/editprovider/ScopingNodeRenameEditProvider.java
Removed Paths:
-------------
trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/PartialClassesRenameEditProvider.java
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/SelectionNodeProvider.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/SelectionNodeProvider.java 2007-04-13 12:12:24 UTC (rev 2303)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/SelectionNodeProvider.java 2007-04-13 12:55:36 UTC (rev 2304)
@@ -60,7 +60,6 @@
import org.rubypeople.rdt.refactoring.nodewrapper.AttrAccessorNodeWrapper;
import org.rubypeople.rdt.refactoring.nodewrapper.ClassNodeWrapper;
import org.rubypeople.rdt.refactoring.nodewrapper.INodeWrapper;
-import org.rubypeople.rdt.refactoring.nodewrapper.ModuleNodeWrapper;
import org.rubypeople.rdt.refactoring.nodewrapper.PartialClassNodeWrapper;
import org.rubypeople.rdt.refactoring.util.NodeUtil;
@@ -307,33 +306,6 @@
}
return newNode;
}
-
- public static ModuleNodeWrapper getSelectedModuleNode(Node root, int pos) {
-
- ModuleNode module = (ModuleNode) getSelectedNodeOfType(root, pos, ModuleNode.class);
- if(module == null) {
- return null;
- }
-
- ArrayList<ModuleNode> modules = new ArrayList<ModuleNode>();
- modules.add(module);
- ModuleNode parent = null;
-
- while(true) {
- parent = (ModuleNode) NodeProvider.findParentNode(root, module, ModuleNode.class);
- if(parent == null)
- break;
- modules.add(0, parent);
- module = parent;
- }
-
- ModuleNodeWrapper previousWrapper = null;
- for (ModuleNode node : modules) {
- ModuleNodeWrapper nodeWrapper = new ModuleNodeWrapper(node, previousWrapper);
- previousWrapper = nodeWrapper;
- }
- return previousWrapper;
- }
}
Deleted: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/PartialClassesRenameEditProvider.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/PartialClassesRenameEditProvider.java 2007-04-13 12:12:24 UTC (rev 2303)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/PartialClassesRenameEditProvider.java 2007-04-13 12:55:36 UTC (rev 2304)
@@ -1,83 +0,0 @@
-/***** BEGIN LICENSE BLOCK *****
- * Version: CPL 1.0/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Common Public
- * License Version 1.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.eclipse.org/legal/cpl-v10.html
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * Copyright (C) 2006 Mirko Stocker <me...@mi...>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the CPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the CPL, the GPL or the LGPL.
- ***** END LICENSE BLOCK *****/
-
-package org.rubypeople.rdt.refactoring.core.renameclass;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.jruby.ast.IScopingNode;
-import org.jruby.ast.Node;
-import org.rubypeople.rdt.refactoring.editprovider.FileEditProvider;
-import org.rubypeople.rdt.refactoring.editprovider.ReplaceEditProvider;
-
-public class PartialClassesRenameEditProvider {
-
- private static class ScopingNodeRenameEdit extends ReplaceEditProvider {
-
- private final IScopingNode node;
-
- public ScopingNodeRenameEdit(IScopingNode klass) {
- this.node = klass;
- }
-
- @Override
- protected int getOffsetLength() {
- return node.getCPath().getPosition().getEndOffset() - node.getCPath().getPosition().getStartOffset();
- }
-
- @Override
- protected Node getEditNode(int offset, String document) {
- return node.getCPath();
- }
-
- @Override
- protected int getOffset(String document) {
- return node.getCPath().getPosition().getStartOffset();
- }
- }
-
- private final Collection<? extends IScopingNode> nodes;
- private final String newName;
-
- public PartialClassesRenameEditProvider(Collection<? extends IScopingNode> nodes, String newName) {
- this.nodes = nodes;
- this.newName = newName;
- }
-
- public Collection<FileEditProvider> getEditProviders() {
- Collection<FileEditProvider> edits = new ArrayList<FileEditProvider>();
-
- for(IScopingNode klass : nodes) {
- klass.getCPath().setName(newName);
- edits.add(new FileEditProvider(((Node) klass).getPosition().getFile(), new ScopingNodeRenameEdit(klass)));
- }
-
- return edits;
- }
-}
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/RenameClassEditProvider.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/RenameClassEditProvider.java 2007-04-13 12:12:24 UTC (rev 2303)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/RenameClassEditProvider.java 2007-04-13 12:55:36 UTC (rev 2304)
@@ -35,6 +35,7 @@
import org.rubypeople.rdt.refactoring.editprovider.FileMultiEditProvider;
import org.rubypeople.rdt.refactoring.editprovider.IMultiFileEditProvider;
import org.rubypeople.rdt.refactoring.editprovider.MultiFileEditProvider;
+import org.rubypeople.rdt.refactoring.editprovider.ScopingNodeRenameEditProvider;
public class RenameClassEditProvider implements IMultiFileEditProvider {
@@ -51,9 +52,9 @@
return new ChildClassesRenameEditProvider(childClasses, config.getNewName());
}
- private PartialClassesRenameEditProvider createPartialsEditProvider() {
+ private ScopingNodeRenameEditProvider createPartialsEditProvider() {
Collection<ClassNode> classNodes = new ClassFinder(document, config.getSelectedNode().getCPath().getName(), config.getModulePrefix()).findParts();
- return new PartialClassesRenameEditProvider(classNodes, config.getNewName());
+ return new ScopingNodeRenameEditProvider(classNodes, config.getNewName());
}
private ConstructorRenameEditProvider createConstructorEditProvider() {
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConditionChecker.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConditionChecker.java 2007-04-13 12:12:24 UTC (rev 2303)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleConditionChecker.java 2007-04-13 12:55:36 UTC (rev 2304)
@@ -1,8 +1,8 @@
package org.rubypeople.rdt.refactoring.core.renamemodule;
import org.rubypeople.rdt.refactoring.core.IRefactoringConfig;
+import org.rubypeople.rdt.refactoring.core.ModuleNodeProvider;
import org.rubypeople.rdt.refactoring.core.RefactoringConditionChecker;
-import org.rubypeople.rdt.refactoring.core.SelectionNodeProvider;
import org.rubypeople.rdt.refactoring.nodewrapper.ModuleNodeWrapper;
import org.rubypeople.rdt.refactoring.util.NodeUtil;
@@ -27,7 +27,7 @@
public void init(IRefactoringConfig configObj) {
config = (RenameModuleConfig) configObj;
- ModuleNodeWrapper selectedModule = SelectionNodeProvider.getSelectedModuleNode(config.getDocumentProvider().getActiveFileRootNode(), config.getCarretPosition());
+ ModuleNodeWrapper selectedModule = ModuleNodeProvider.getSelectedModuleNode(config.getDocumentProvider().getActiveFileRootNode(), config.getCarretPosition());
config.setSelectedModule(selectedModule);
if(config.getSelectedModule() == null || caretIsNotOnModuleName(selectedModule)) {
return;
Modified: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleEditProvider.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleEditProvider.java 2007-04-13 12:12:24 UTC (rev 2303)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renamemodule/RenameModuleEditProvider.java 2007-04-13 12:55:36 UTC (rev 2304)
@@ -4,10 +4,10 @@
import java.util.Collection;
import org.jruby.ast.IScopingNode;
-import org.rubypeople.rdt.refactoring.core.renameclass.PartialClassesRenameEditProvider;
import org.rubypeople.rdt.refactoring.editprovider.FileMultiEditProvider;
import org.rubypeople.rdt.refactoring.editprovider.IMultiFileEditProvider;
import org.rubypeople.rdt.refactoring.editprovider.MultiFileEditProvider;
+import org.rubypeople.rdt.refactoring.editprovider.ScopingNodeRenameEditProvider;
public class RenameModuleEditProvider implements IMultiFileEditProvider {
@@ -17,10 +17,10 @@
this.config = config;
}
- private PartialClassesRenameEditProvider getModuleEditProvider() {
+ private ScopingNodeRenameEditProvider getModuleEditProvider() {
ArrayList<IScopingNode> modules = new ArrayList<IScopingNode>();
modules.add(config.getSelectedModule().getWrappedNode());
- return new PartialClassesRenameEditProvider(modules, config.getNewName());
+ return new ScopingNodeRenameEditProvider(modules, config.getNewName());
}
public Collection<FileMultiEditProvider> getFileEditProviders() {
Copied: trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/editprovider/ScopingNodeRenameEditProvider.java (from rev 2303, trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/core/renameclass/PartialClassesRenameEditProvider.java)
===================================================================
--- trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/editprovider/ScopingNodeRenameEditProvider.java (rev 0)
+++ trunk/org.rubypeople.rdt.refactoring/src/org/rubypeople/rdt/refactoring/editprovider/ScopingNodeRenameEditProvider.java 2007-04-13 12:55:36 UTC (rev 2304)
@@ -0,0 +1,83 @@
+/***** BEGIN LICENSE BLOCK *****
+ * Version: CPL 1.0/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Common Public
+ * License Version 1.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Software distributed under the License is distributed on an "AS
+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * Copyright (C) 2006 Mirko Stocker <me...@mi...>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the CPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the CPL, the GPL or the LGPL.
+ ***** END LICENSE BLOCK *****/
+
+package org.rubypeople.rdt.refactoring.editprovider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.jruby.ast.IScopingNode;
+import org.jruby.ast.Node;
+import org.rubypeople.rdt.refactoring.editprovider.FileEditProvider;
+import org.rubypeople.rdt.refactoring.editprovider.ReplaceEditProvider;
+
+public class ScopingNodeRenameEditProvider {
+
+ private static class ScopingNodeRenameEdit extends ReplaceEditProvider {
+
+ private final IScopingNode node;
+
+ public ScopingNodeRenameEdit(IScopingNode klass) {
+ this.node = klass;
+ }
+
+ @Override
+ protected int getOffsetLength() {
+ return node.getCPath().getPosition().getEndOffset() - node.getCPath().getPosition().getStartOffset();
+ }
+
+ @Override
+ protected Node getEditNode(int offset, String document) {
+ return node.getCPath();
+ }
+
+ @Override
+ protected int getOffset(String document) {
+ return node.getCPath().getPosition().getStartOffset();
+ }
+ }
+
+ private final Collection<? extends IScopingNode> nodes;
+ private final String newName;
+
+ public ScopingNodeRenameEditProvider(Collection<? extends IScopingNode> nodes, String newName) {
+ this.nodes = nodes;
+ this.newName = newName;
+ }
+
+ public Collection<FileEditProvider> getEditProviders() {
+ Collection<FileEditProvider> edits = new ArrayList<FileEditProvider>();
+
+ for(IScopingNode klass : nodes) {
+ klass.getCPath().setName(newName);
+ edits.add(new FileEditProvider(((Node) klass).getPosition().getFile(), new ScopingNodeRenameEdit(klass)));
+ }
+
+ return edits;
+ }
+}
Modified: trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TC_ModuleNodeWrapper.java
===================================================================
--- trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TC_ModuleNodeWrapper.java 2007-04-13 12:12:24 UTC (rev 2303)
+++ trunk/org.rubypeople.rdt.refactoring.tests/src/org/rubypeople/rdt/refactoring/tests/core/nodewrapper/TC_ModuleNodeWrapper.java 2007-04-13 12:55:36 UTC (rev 2304)
@@ -1,6 +1,6 @@
package org.rubypeople.rdt.refactoring.tests.core.nodewrapper;
-import org.rubypeople.rdt.refactoring.core.SelectionNodeProvider;
+import org.rubypeople.rdt.refactoring.core.ModuleNodeProvider;
import org.rubypeople.rdt.refactoring.nodewrapper.ModuleNodeWrapper;
import org.rubypeople.rdt.refactoring.tests.FileTestCase;
@@ -11,7 +11,7 @@
}
private ModuleNodeWrapper findModule(String file, int position) {
- return SelectionNodeProvider.getSelectedModuleNode(getRootNode(file),position);
+ return ModuleNodeProvider.getSelectedModuleNode(getRootNode(file),position);
}
public void testSimpleModule() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|