Proto editor now ignores binary, ascii and xml formats.
diff --git a/com.google.eclipse.protobuf.ui/plugin.xml b/com.google.eclipse.protobuf.ui/plugin.xml
index ffd462d..691a6d6 100644
--- a/com.google.eclipse.protobuf.ui/plugin.xml
+++ b/com.google.eclipse.protobuf.ui/plugin.xml
@@ -6,10 +6,12 @@
       class="com.google.eclipse.protobuf.ui.ProtobufExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
       contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
       default="true"
-      extensions="proto,protodevel"
       icon="icons/pb.gif"
       id="com.google.eclipse.protobuf.Protobuf"
       name="%editor.name">
+       <contentTypeBinding
+             contentTypeId="com.google.eclipse.protobuf.Protobuf">
+       </contentTypeBinding>
     </editor>
   </extension>
   <extension point="org.eclipse.ui.handlers">
@@ -296,4 +298,4 @@
       </command>
     </menuContribution>
   </extension>
-</plugin>
\ No newline at end of file
+</plugin>
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
index c99cd33..e01066f 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/ProtobufUiModule.java
@@ -19,6 +19,7 @@
 import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
 import org.eclipse.xtext.documentation.IEObjectDocumentationProvider;
 import org.eclipse.xtext.parser.IParser;
+import org.eclipse.xtext.resource.IResourceServiceProvider;
 import org.eclipse.xtext.ui.LanguageSpecific;
 import org.eclipse.xtext.ui.editor.*;
 import org.eclipse.xtext.ui.editor.model.XtextDocumentProvider;
@@ -28,6 +29,7 @@
 import org.eclipse.xtext.ui.editor.syntaxcoloring.*;
 import org.eclipse.xtext.ui.validation.IResourceUIValidatorExtension;
 
+import com.google.eclipse.protobuf.resource.IResourceVerifier;
 import com.google.eclipse.protobuf.scoping.IFileUriResolver;
 import com.google.eclipse.protobuf.ui.builder.nature.AutoAddNatureEditorCallback;
 import com.google.eclipse.protobuf.ui.documentation.ProtobufDocumentationProvider;
@@ -40,12 +42,14 @@
 import com.google.eclipse.protobuf.ui.outline.*;
 import com.google.eclipse.protobuf.ui.parser.PreferenceDrivenProtobufParser;
 import com.google.eclipse.protobuf.ui.preferences.compiler.CompilerPreferences;
+import com.google.eclipse.protobuf.ui.preferences.editor.ignore.IgnoredExtensionsPreferences;
 import com.google.eclipse.protobuf.ui.preferences.editor.numerictag.NumericTagPreferences;
 import com.google.eclipse.protobuf.ui.preferences.editor.save.SaveActionsPreferences;
 import com.google.eclipse.protobuf.ui.preferences.general.GeneralPreferences;
 import com.google.eclipse.protobuf.ui.preferences.misc.MiscellaneousPreferences;
 import com.google.eclipse.protobuf.ui.preferences.paths.PathsPreferences;
 import com.google.eclipse.protobuf.ui.quickfix.ProtobufQuickAssistProcessor;
+import com.google.eclipse.protobuf.ui.resource.*;
 import com.google.eclipse.protobuf.ui.scoping.FileUriResolver;
 import com.google.eclipse.protobuf.ui.validation.*;
 import com.google.inject.Binder;
@@ -91,6 +95,14 @@
     return ProtobufReconciler.class;
   }
 
+  public Class<? extends IResourceServiceProvider> bindIResourceServiceProvider() {
+    return ProtobufServiceProvider.class;
+  }
+
+  public Class<? extends IResourceVerifier> bindIResourceVerifier() {
+    return ResourceVerifier.class;
+  }
+
   public Class<? extends IResourceUIValidatorExtension> bindIResourceUIValidatorExtension() {
     return ProtobufResourceUIValidatorExtension.class;
   }
@@ -129,6 +141,7 @@
   public void configurePreferencesInitializers(Binder binder) {
     configurePreferenceInitializer(binder, "compilerPreferences", CompilerPreferences.Initializer.class);
     configurePreferenceInitializer(binder, "generalPreferences", GeneralPreferences.Initializer.class);
+    configurePreferenceInitializer(binder, "ignoredExtensions", IgnoredExtensionsPreferences.Initializer.class);
     configurePreferenceInitializer(binder, "numericTagPreferences", NumericTagPreferences.Initializer.class);
     configurePreferenceInitializer(binder, "miscellaneousPreferences", MiscellaneousPreferences.Initializer.class);
     configurePreferenceInitializer(binder, "pathsPreferences", PathsPreferences.Initializer.class);
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufSpelling.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufSpelling.java
index 6d3eaa9..14bdda8 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufSpelling.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/editor/spelling/ProtobufSpelling.java
@@ -17,6 +17,7 @@
 import org.eclipse.jface.text.source.*;
 import org.eclipse.ui.texteditor.spelling.*;
 import org.eclipse.xtext.nodemodel.*;
+import org.eclipse.xtext.parser.IParseResult;
 import org.eclipse.xtext.resource.XtextResource;
 import org.eclipse.xtext.ui.editor.model.XtextDocument;
 import org.eclipse.xtext.util.concurrent.IUnitOfWork;
@@ -51,7 +52,10 @@
   private void removeUnwantedAnnotations(final IAnnotationModel model) {
     xtextDocument().readOnly(new IUnitOfWork.Void<XtextResource>() {
       @Override public void process(XtextResource resource) throws Exception {
-        removeUnwantedAnnotations(resource.getParseResult().getRootNode(), model);
+        IParseResult parseResult = resource.getParseResult();
+        if (parseResult != null) {
+          removeUnwantedAnnotations(parseResult.getRootNode(), model);
+        }
       }
     });
   }
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/editor/ignore/IgnoredExtensionsPreferences.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/editor/ignore/IgnoredExtensionsPreferences.java
new file mode 100644
index 0000000..bc4e954
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/editor/ignore/IgnoredExtensionsPreferences.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2012 Google Inc.
+ *
+ * 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 com.google.eclipse.protobuf.ui.preferences.editor.ignore;
+
+import static com.google.eclipse.protobuf.ui.preferences.editor.ignore.PreferenceNames.IGNORED_EXTENSIONS;
+import static com.google.eclipse.protobuf.ui.util.CommaSeparatedValues.splitCsv;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.xtext.ui.editor.preferences.*;
+
+/**
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public class IgnoredExtensionsPreferences {
+  private final IPreferenceStore store;
+
+  public IgnoredExtensionsPreferences(IPreferenceStoreAccess storeAccess) {
+    store = storeAccess.getWritablePreferenceStore();
+  }
+
+  public String[] extensions() {
+    String value = store.getString(IGNORED_EXTENSIONS);
+    return splitCsv(value);
+  }
+
+  public static class Initializer implements IPreferenceStoreInitializer {
+    @Override public void initialize(IPreferenceStoreAccess storeAccess) {
+      IPreferenceStore store = storeAccess.getWritablePreferenceStore();
+      store.setDefault(IGNORED_EXTENSIONS, ".ascii.proto,.binary.proto,.xml.proto");
+    }
+  }
+}
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/editor/ignore/PreferenceNames.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/editor/ignore/PreferenceNames.java
new file mode 100644
index 0000000..4bb7ed2
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/preferences/editor/ignore/PreferenceNames.java
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2012 Google Inc.
+ *
+ * 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 com.google.eclipse.protobuf.ui.preferences.editor.ignore;
+
+/**
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+final class PreferenceNames {
+  static final String IGNORED_EXTENSIONS = "ignored.extensions";
+
+  private PreferenceNames() {}
+}
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/ProtobufServiceProvider.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/ProtobufServiceProvider.java
new file mode 100644
index 0000000..72649d0
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/ProtobufServiceProvider.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2012 Google Inc.
+ *
+ * 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 com.google.eclipse.protobuf.ui.resource;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.xtext.resource.impl.DefaultResourceServiceProvider;
+
+import com.google.eclipse.protobuf.resource.IResourceVerifier;
+import com.google.inject.Inject;
+
+/**
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public class ProtobufServiceProvider extends DefaultResourceServiceProvider {
+  @Inject private IResourceVerifier resourceVerifier;
+
+  @Override public boolean canHandle(URI uri) {
+    if (!super.canHandle(uri)) {
+      return false;
+    }
+    return !resourceVerifier.shouldIgnore(uri);
+  }
+}
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/ResourceVerifier.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/ResourceVerifier.java
new file mode 100644
index 0000000..d520251
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/resource/ResourceVerifier.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2012 Google Inc.
+ *
+ * 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 com.google.eclipse.protobuf.ui.resource;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.xtext.ui.editor.preferences.IPreferenceStoreAccess;
+
+import com.google.eclipse.protobuf.resource.IResourceVerifier;
+import com.google.eclipse.protobuf.ui.preferences.editor.ignore.IgnoredExtensionsPreferences;
+import com.google.inject.Inject;
+
+/**
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public class ResourceVerifier implements IResourceVerifier {
+  private final String[] extensions;
+
+  @Inject public ResourceVerifier(IPreferenceStoreAccess storeAccess) {
+    IgnoredExtensionsPreferences preferences = new IgnoredExtensionsPreferences(storeAccess);
+    extensions = preferences.extensions();
+  }
+
+  @Override public boolean shouldIgnore(URI uri) {
+    String fileName = uri.lastSegment();
+    for (String extension : extensions) {
+      if (fileName.endsWith(extension)) {
+        return true;
+      }
+    }
+    return false;
+  }
+}
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ProtobufValidation.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ProtobufValidation.java
index eca5199..a021fd8 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ProtobufValidation.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/validation/ProtobufValidation.java
@@ -15,6 +15,7 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.xtext.parser.IParseResult;
 import org.eclipse.xtext.resource.XtextResource;
 import org.eclipse.xtext.resource.impl.ListBasedDiagnosticConsumer;
 import org.eclipse.xtext.ui.editor.XtextEditor;
@@ -59,7 +60,11 @@
   }
 
   private static EObject rootOf(XtextResource resource) {
-    return resource == null ? null : resource.getParseResult().getRootASTElement();
+    if (resource == null) {
+      return null;
+    }
+    IParseResult parseResult = resource.getParseResult();
+    return parseResult == null ? null : parseResult.getRootASTElement();
   }
 
   private static void resetUriInImports(EObject root) {
diff --git a/com.google.eclipse.protobuf/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf/META-INF/MANIFEST.MF
index d306d0f..caafc24 100644
--- a/com.google.eclipse.protobuf/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf/META-INF/MANIFEST.MF
@@ -33,7 +33,6 @@
  com.google.eclipse.protobuf.protobuf.impl,

  com.google.eclipse.protobuf.protobuf.util,

  com.google.eclipse.protobuf.resource,

- com.google.eclipse.protobuf.resource.filter,

  com.google.eclipse.protobuf.scoping,

  com.google.eclipse.protobuf.serializer,

  com.google.eclipse.protobuf.services,

diff --git a/com.google.eclipse.protobuf/plugin.xml b/com.google.eclipse.protobuf/plugin.xml
index abdcd04..ded8b9d 100644
--- a/com.google.eclipse.protobuf/plugin.xml
+++ b/com.google.eclipse.protobuf/plugin.xml
@@ -11,4 +11,15 @@
       class="com.google.eclipse.protobuf.protobuf.ProtobufPackage"
       genModel="com/google/eclipse/protobuf/Protobuf.genmodel" />
   </extension>
+  <extension
+        point="org.eclipse.core.contenttype.contentTypes">
+     <content-type
+           base-type="org.eclipse.core.runtime.text"
+           describer="org.eclipse.core.internal.content.TextContentDescriber"
+           file-extensions="proto,protodevel"
+           id="com.google.eclipse.protobuf.Protobuf"
+           name="Protocol Buffer"
+           priority="high">
+     </content-type>
+  </extension>
 </plugin>
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java
index 65478d6..e9b73d3 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/ProtobufRuntimeModule.java
@@ -8,14 +8,6 @@
  */
 package com.google.eclipse.protobuf;
 
-import com.google.eclipse.protobuf.conversion.ProtobufTerminalConverters;
-import com.google.eclipse.protobuf.linking.ProtobufResource;
-import com.google.eclipse.protobuf.naming.*;
-import com.google.eclipse.protobuf.resource.ResourceServiceProvider;
-import com.google.eclipse.protobuf.scoping.*;
-import com.google.eclipse.protobuf.validation.*;
-import com.google.inject.Binder;
-
 import org.eclipse.core.runtime.IExtensionRegistry;
 import org.eclipse.xtext.conversion.IValueConverterService;
 import org.eclipse.xtext.naming.*;
@@ -24,12 +16,20 @@
 import org.eclipse.xtext.scoping.impl.ImportUriResolver;
 import org.eclipse.xtext.validation.IResourceValidator;
 
+import com.google.eclipse.protobuf.conversion.ProtobufTerminalConverters;
+import com.google.eclipse.protobuf.linking.ProtobufResource;
+import com.google.eclipse.protobuf.naming.*;
+import com.google.eclipse.protobuf.resource.GlobalResourceServiceProvider;
+import com.google.eclipse.protobuf.scoping.*;
+import com.google.eclipse.protobuf.validation.*;
+import com.google.inject.Binder;
+
 /**
  * Use this class to register components to be used at runtime / without the Equinox extension registry.
  */
 public class ProtobufRuntimeModule extends AbstractProtobufRuntimeModule {
   public Class<? extends IGlobalServiceProvider> bindIGlobalServiceProvider() {
-    return ResourceServiceProvider.class;
+    return GlobalResourceServiceProvider.class;
   }
 
   public Class<? extends ImportUriResolver> bindImportUriResolver() {
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufResource.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufResource.java
index b1c48c9..670b02b 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufResource.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/linking/ProtobufResource.java
@@ -8,18 +8,33 @@
  */
 package com.google.eclipse.protobuf.linking;
 
+import java.io.*;
+import java.util.Map;
+
 import org.eclipse.emf.ecore.*;
 import org.eclipse.xtext.diagnostics.DiagnosticMessage;
 import org.eclipse.xtext.linking.lazy.LazyLinkingResource;
 import org.eclipse.xtext.nodemodel.INode;
 import org.eclipse.xtext.util.Triple;
 
+import com.google.eclipse.protobuf.resource.IResourceVerifier;
+import com.google.inject.Inject;
+
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class ProtobufResource extends LazyLinkingResource {
+  @Inject private IResourceVerifier resourceVerifier;
+
   @Override
   protected ProtobufDiagnostic createDiagnostic(Triple<EObject, EReference, INode> t, DiagnosticMessage message) {
     return new ProtobufDiagnostic(message.getIssueCode(), message.getIssueData(), message.getMessage(), t.getThird());
   }
+
+  @Override protected void doLoad(InputStream inputStream, Map<?, ?> options) throws IOException {
+    if (resourceVerifier.shouldIgnore(uri)) {
+      return;
+    }
+    super.doLoad(inputStream, options);
+  }
 }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/ResourceServiceProvider.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/GlobalResourceServiceProvider.java
similarity index 85%
rename from com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/ResourceServiceProvider.java
rename to com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/GlobalResourceServiceProvider.java
index cf59dc9..db0cc6e 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/ResourceServiceProvider.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/GlobalResourceServiceProvider.java
@@ -20,8 +20,8 @@
 /**
  * @author alruiz@google.com (Alex Ruiz)
  */
-public class ResourceServiceProvider extends ResourceServiceProviderImpl {
-  @Inject public ResourceServiceProvider(Registry registry, IResourceServiceProvider provider) {
+public class GlobalResourceServiceProvider extends ResourceServiceProviderImpl {
+  @Inject public GlobalResourceServiceProvider(Registry registry, IResourceServiceProvider provider) {
     super(registry, provider);
   }
 
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/IResourceVerifier.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/IResourceVerifier.java
new file mode 100644
index 0000000..637a592
--- /dev/null
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/IResourceVerifier.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2012 Google Inc.
+ *
+ * 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 com.google.eclipse.protobuf.resource;
+
+import org.eclipse.emf.common.util.URI;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * Indicates whether the resource should be parsed and validated.
+ *
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+@ImplementedBy(IResourceVerifier.ResourceVerifier.class)
+public interface IResourceVerifier {
+  boolean shouldIgnore(URI uri);
+
+  class ResourceVerifier implements IResourceVerifier {
+    @Override public boolean shouldIgnore(URI uri) {
+      return false;
+    }
+  }
+}
\ No newline at end of file
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/filter/MatchingQualifiedNameAndTypeFilter.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/filter/MatchingQualifiedNameAndTypeFilter.java
deleted file mode 100644
index 3bdac63..0000000
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/resource/filter/MatchingQualifiedNameAndTypeFilter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2012 Google Inc.
- *
- * 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 com.google.eclipse.protobuf.resource.filter;
-
-import java.util.regex.Pattern;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.xtext.naming.QualifiedName;
-import org.eclipse.xtext.resource.IEObjectDescription;
-
-import com.google.common.base.Predicate;
-
-/**
- * Indicates whether the qualified name and {@code EClass} of a <code>{@link IEObjectDescription}</code> match the given
- * pattern and type, respectively.
- *
- * @author alruiz@google.com (Alex Ruiz)
- */
-public class MatchingQualifiedNameAndTypeFilter implements Predicate<IEObjectDescription> {
-  private final Pattern pattern;
-  private final EClass type;
-
-  /**
-   * Creates a new <code>{@link MatchingQualifiedNameAndTypeFilter}</code>.
-   * @param pattern the pattern that qualified names should match.
-   * @param type the type of model object to match.
-   * @return the created filter.
-   */
-  public static MatchingQualifiedNameAndTypeFilter matchingQualifiedNameAndType(Pattern pattern, EClass type) {
-    return new MatchingQualifiedNameAndTypeFilter(pattern, type);
-  }
-
-  private MatchingQualifiedNameAndTypeFilter(Pattern pattern, EClass type) {
-    this.pattern = pattern;
-    this.type = type;
-  }
-
-  @Override public boolean apply(IEObjectDescription input) {
-    if (!type.equals(input.getEClass())) {
-      return false;
-    }
-    QualifiedName qualifiedName = input.getQualifiedName();
-    return pattern.matcher(qualifiedName.toString()).matches();
-  }
-}