(лучший способ) получить файлы в проекте с использованием Eclipse и XText

Я пишу редактор XText и выполняя семантический выделений. Часть языка, которую я разборка, относится к файлам, которые должны существовать в проекте. Я хотел бы выделить, основываясь на том, находятся ли эти файлы в правильном месте. На данный момент у меня очень уродливое решение, и я уверен, что есть лучший способ:

public void provideHighlightingFor( XtextResource resource, IHighlightedPositionAcceptor acceptor ) {
...
String resStr = resource.getURI().toString();
String projName = resStr.replaceAll( "^.*resource/", "" ).replaceAll( "/.*", "" );
IWorkspaceRoot workspace = ResourcesPlugin.getWorkspace().getRoot();
IFile file = workspace.getFile( new Path( projName + "/" + value ) );
ok = file != null && file.exists();

Примечание: «Значение» - это строка, которую я столкнулся с анализом, а не текущий файл. Я хочу выяснить, существует ли {Workspace} / {Project} / {значение}.

Должен быть лучший способ получить название / местоположение проекта на основе текущего файла; Я поставил это как вопрос XText, так как я бы хотел, если это возможно, чтобы избежать использования текущего выбранного редактора и базового выбора на текущем ресурсе, который представлен как ресурс XText.

Примечание. Код, который я оказался, на основе ответа ниже:

String platformString = resource.getURI().toPlatformString(true);
IFile myFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(platformString));
IProject proj = myFile.getProject();
IFile linkedFile = proj.getFile( value );
8
задан mo-seph 30 August 2011 в 21:25
поделиться