/*******************************************************************************
* Copyright (c) 2007, 2008 Edgar Espina.
* 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
*
*******************************************************************************/
package org.deved.antlride.internal.core.model;
import org.deved.antlride.core.model.IModelElement;
public abstract class AAbstractModelElement implements
IModelElement {
protected IModelElement parent;
protected int sourceEnd;
protected int sourceStart;
protected AAbstractModelElement(IModelElement parent, int sourceStart,
int sourceEnd) {
this.parent = parent;
this.sourceStart = sourceStart;
this.sourceEnd = sourceEnd;
}
protected AAbstractModelElement(int sourceStart, int sourceEnd) {
this(null, sourceStart, sourceEnd);
}
protected AAbstractModelElement(IModelElement parent) {
this(parent, 0, 0);
}
protected AAbstractModelElement() {
}
public boolean isIn(int position) {
int start = sourceStart();
int end = sourceEnd();
return position >= start && position <= end;
}
public IModelElement getParent() {
return parent;
}
public int sourceEnd() {
return sourceEnd;
}
public int sourceStart() {
return sourceStart;
}
public void setParent(IModelElement parent) {
this.parent = parent;
}
public void setSourceStart(int sourceStart) {
this.sourceStart = sourceStart;
}
public void setSourceEnd(int sourceEnd) {
this.sourceEnd = sourceEnd;
}
}