/** * Aptana Studio * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions). * Please see the license.html included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package com.aptana.ruby.internal.core; import com.aptana.parsing.ast.INameNode; import com.aptana.parsing.lexer.IRange; import com.aptana.ruby.core.IRubyMember; public abstract class NamedMember extends RubyElement implements IRubyMember { private INameNode fNameNode; protected NamedMember(String name, int start, int nameStart, int nameEnd) { super(start, nameEnd); fNameNode = new NameNode(name, nameStart, nameEnd); } @Override public void addOffset(int offset) { IRange range = fNameNode.getNameRange(); fNameNode = new NameNode(fNameNode.getName(), range.getStartingOffset() + offset, range.getEndingOffset() + offset); super.addOffset(offset); } @Override public String getName() { return fNameNode.getName(); } @Override public INameNode getNameNode() { return fNameNode; } @Override public String getText() { return fNameNode.getName(); } @Override public String toString() { return getName(); } }