Added uri to resource map to improve performance

This commit is contained in:
jkohnlein 2008-07-21 15:41:23 +00:00
parent 2394f1b6a1
commit e601780158
3 changed files with 10 additions and 4 deletions

View file

@ -9,8 +9,11 @@
package org.eclipse.xtext;
import static org.eclipse.emf.ecore.util.EcoreUtil.*;
import static org.eclipse.xtext.EcoreUtil2.*;
import static org.eclipse.emf.ecore.util.EcoreUtil.getRootContainer;
import static org.eclipse.xtext.EcoreUtil2.eAllContentsAsList;
import static org.eclipse.xtext.EcoreUtil2.getAllContentsOfType;
import static org.eclipse.xtext.EcoreUtil2.getContainerOfType;
import static org.eclipse.xtext.EcoreUtil2.typeSelect;
import java.util.ArrayList;
import java.util.HashSet;
@ -153,7 +156,7 @@ public class GrammarUtil {
throw new IllegalArgumentException("The passed grammar is not contained in a Resourceset");
ResourceSet resourceSet = _this.eResource().getResourceSet();
URI uri = getClasspathURIForLanguageId(id);
uri = uri.appendFragment("");
//uri = uri.appendFragment("");
Resource resource = resourceSet.getResource(uri, true);
if (resource==null)
throw new IllegalArgumentException("Couldn't find grammar for super language "+id);

View file

@ -39,7 +39,6 @@ public class ParsetreeUtil {
checkArgument(_this);
AbstractNode rootContainer = (AbstractNode) EcoreUtil.getRootContainer(_this);
EList<LeafNode> leafNodes = rootContainer.getLeafNodes(_this);
// TODO JK: Why is line set here to 1 instead of 0? (BK)
int line = 1;
for (LeafNode leafNode : leafNodes) {
String text = leafNode.getText();

View file

@ -8,7 +8,10 @@
*******************************************************************************/
package org.eclipse.xtext.resource;
import java.util.HashMap;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.URIConverter;
import org.eclipse.emf.ecore.resource.impl.ExtensibleURIConverterImpl;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
@ -25,6 +28,7 @@ public class XtextResourceSet extends ResourceSetImpl {
private Object classpathURIContext;
public XtextResourceSet() {
setURIResourceMap(new HashMap<URI,Resource>());
}
private URI resolveClasspathURI(URI uri) {