package org.radrails.rails.internal.ui;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.radrails.rails.internal.core.RailsPlugin;
public class RailsConsoleLine {
protected String fFilename;
protected int fLength;
protected int fOffset;
protected int fLineNumber;
public String getFilename() {
return fFilename;
}
public int getLength() {
return fLength;
}
public int getLineNumber() {
return fLineNumber;
}
public int getOffset() {
return fOffset;
}
protected void makeRelativeToWorkspace(IProject launchedProject) {
try {
if (fFilename == null || fFilename.trim().length() == 0) return;
String filename = fFilename;
if (fFilename.startsWith("./")) {
filename = fFilename.substring(1);
} else {
filename ='/' + fFilename;
}
IFile file = launchedProject.getFile(filename);
if (!file.exists()) {
IPath railsRoot = RailsPlugin.findRailsRoot(launchedProject);
file = launchedProject.getFile(railsRoot.append(filename));
}
fFilename = file.getFullPath().toPortableString();
} catch (RuntimeException e) {
// ignore
}
}
protected boolean isRelativePath() {
if (fFilename.startsWith("./")) return true;
int index = fFilename.indexOf('/');
if (index != -1 && !fFilename.startsWith("/") && fFilename.charAt(index - 1) != ':' ) return true;
return false;
}
}