@Override public Iterable<JvmFeature> getAllFeatures() { if (allFeatures == null) { allFeatures = doSynchronized(new Provider<Set<JvmFeature>>() { public Set<JvmFeature> get() { if (allFeatures != null) return allFeatures; Set<JvmFeature> result = Sets.newLinkedHashSet(); Map<String, Set<JvmFeature>> allFeaturesMap = getAllFeaturesMap(); for (String name : allFeaturesMap.keySet()) { Iterables.addAll(result, findAllFeaturesByName(name)); } Runnable runnable = new Runnable() { public void run() { doSynchronized(new Provider<Object>() { public Object get() { allFeatures = null; return null; }}); } }; requestNotificationOnChange(runnable); return result; }}); } return allFeatures; }
@Override public Iterable<JvmFeature> getAllFeatures() { if (allFeatures == null) { allFeatures = doSynchronized(new Provider<Set<JvmFeature>>() { @Override public Set<JvmFeature> get() {
@Override public Iterable<JvmFeature> findAllFeaturesByName(final String simpleName) { return doSynchronized(new Provider<Iterable<JvmFeature>>() { public Iterable<JvmFeature> get() { Map<String, Set<JvmFeature>> allFeaturesByName = getAllFeaturesMap();
@Override public Iterable<JvmFeature> findAllFeaturesByName(final String simpleName) { return doSynchronized(new Provider<Iterable<JvmFeature>>() { @Override public Iterable<JvmFeature> get() {
protected Map<String, Set<JvmFeature>> internalGetAllFeaturesMap(final Set<JvmDeclaredType> processedtypes) { if (allFeaturesByName == null) { final Set<JvmDeclaredType> processedSuperTypes = processedtypes == null ? Sets.<JvmDeclaredType>newHashSet() : processedtypes; allFeaturesByName = doSynchronized(new Provider<Map<String, Set<JvmFeature>>>() { public Map<String, Set<JvmFeature>> get() { if (allFeaturesByName != null)
protected Map<String, Set<JvmFeature>> internalGetAllFeaturesMap(final Set<JvmDeclaredType> processedtypes) { if (allFeaturesByName == null) { final Set<JvmDeclaredType> processedSuperTypes = processedtypes == null ? Sets.<JvmDeclaredType>newHashSet() : processedtypes; allFeaturesByName = doSynchronized(new Provider<Map<String, Set<JvmFeature>>>() { @Override public Map<String, Set<JvmFeature>> get() {
@Override public JvmArrayType getArrayType() { JvmArrayType result = super.getArrayType(); if (result == null) { result = doSynchronized(new Provider<JvmArrayType>() { public JvmArrayType get() { JvmArrayType result = TypesFactory.eINSTANCE.createJvmArrayType(); boolean wasDeliver = eDeliver(); eSetDeliver(false); try { setArrayType(result); } finally { eSetDeliver(wasDeliver); } return result; } }); } return result; }
@Override public JvmArrayType getArrayType() { checkPendingInitialization(); JvmArrayType result = super.getArrayType(); if (result == null) { result = doSynchronized(new Provider<JvmArrayType>() { @Override public JvmArrayType get() { JvmArrayType result = TypesFactory.eINSTANCE.createJvmArrayType(); boolean wasDeliver = eDeliver(); eSetDeliver(false); try { setArrayType(result); } finally { eSetDeliver(wasDeliver); } return result; } }); } return result; }
if (allNestedTypesByName == null) { final Set<JvmDeclaredType> processedSuperTypes = processedTypes == null ? Sets.<JvmDeclaredType>newHashSet() : processedTypes; allNestedTypesByName = doSynchronized(new Provider<Map<String, Set<JvmDeclaredType>>>() { @Override public Map<String, Set<JvmDeclaredType>> get() {