/** * Copyright (c) 2008 Aptana, Inc. * * 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. If redistributing this code, * this entire header must remain intact. */ package org.rubypeople.rdt.refactoring.core.extractconstant; import org.jruby.ast.Node; import org.rubypeople.rdt.refactoring.editprovider.ReplaceEditProvider; public class ExtractedConstantCall extends ReplaceEditProvider { private Node selected; private Node editNode; public ExtractedConstantCall(ExtractConstantConfig config) { this(config.getSelectedNodes(), config.getConstantCallNode()); } public ExtractedConstantCall(Node toReplace, Node replacement) { super(false); this.selected = toReplace; editNode = replacement; } protected int getOffsetLength() { return getEndOffset() - getStartOffset(); } private int getStartOffset() { return selected.getPosition().getStartOffset(); } private int getEndOffset() { return selected.getPosition().getEndOffset(); } protected Node getEditNode(int offset, String document) { return editNode; } protected int getOffset(String document) { return getStartOffset(); } }