From 7861d6f09517b3339362677075de9a75fcacacde Mon Sep 17 00:00:00 2001 From: Sebastian Zarnekow Date: Mon, 27 Apr 2015 10:23:45 +0200 Subject: [PATCH] [idea] Minor: Addes some TODOs, refactored code slightly, changed build script --- .../xtext/resource/CompilerPhases.java | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/CompilerPhases.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/CompilerPhases.java index 73a3e4b53..41ac4cecf 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/CompilerPhases.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/CompilerPhases.java @@ -13,6 +13,7 @@ import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.common.notify.impl.AdapterImpl; import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.xtext.EcoreUtil2; /** @@ -24,12 +25,7 @@ public class CompilerPhases { public boolean isIndexing(Notifier ctx) { ResourceSet set = EcoreUtil2.getResourceSet(ctx); if (set != null) { - Iterator iterator = set.eAdapters().iterator(); - while (iterator.hasNext()) { - if (iterator.next() instanceof IndexingAdapter) { - return true; - } - } + return EcoreUtil.getAdapter(set.eAdapters(), IndexingAdapter.INSTANCE) != null; } return false; } @@ -37,22 +33,19 @@ public class CompilerPhases { public void setIndexing(Notifier ctx, boolean isIndex) { ResourceSet set = EcoreUtil2.getResourceSet(ctx); if (isIndex) { - set.eAdapters().add(new IndexingAdapter()); + set.eAdapters().add(IndexingAdapter.INSTANCE); } else { - Iterator iterator = set.eAdapters().iterator(); - while (iterator.hasNext()) { - if (iterator.next() instanceof IndexingAdapter) { - iterator.remove(); - return; - } - } + set.eAdapters().remove(IndexingAdapter.INSTANCE); } } - static class IndexingAdapter extends AdapterImpl { + private static class IndexingAdapter extends AdapterImpl { + + private static final IndexingAdapter INSTANCE = new IndexingAdapter(); + @Override public boolean isAdapterForType(Object type) { - return IndexingAdapter.class.equals(type); + return INSTANCE == type; } } }