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();
- }
-}