protected void checkPendingInitialization() { if (!isPendingInitialization) { return; } Resource resource = this.eResource(); if (resource instanceof JvmMemberInitializableResource) { ((JvmMemberInitializableResource) resource).ensureJvmMembersInitialized(); isPendingInitialization = false; } }
protected <T> T doSynchronized(final Provider<? extends T> provider) { Resource eResource = eResource(); if (eResource instanceof ISynchronizable<?>) { try { T result = ((ISynchronizable<?>) eResource).execute(new IUnitOfWork<T, Object>() { public T exec(Object state) throws Exception { T result = provider.get(); return result; } }); return result; } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new WrappedException(e); } } else { // not in a resource, don't lock return provider.get(); } }
protected <T> T doSynchronized(final Provider<? extends T> provider) { Resource eResource = eResource(); if (eResource instanceof ISynchronizable<?>) { try { T result = ((ISynchronizable<?>) eResource).execute(new IUnitOfWork<T, Object>() { @Override public T exec(Object state) throws Exception { T result = provider.get(); return result; } }); return result; } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new WrappedException(e); } } else { // not in a resource, don't lock return provider.get(); } }
protected JvmType getRawType(JvmTypeReference reference) { RawTypeReferenceComputer strategy = new RawTypeReferenceComputer(TypesFactory.eINSTANCE); JvmTypeReference result = strategy.getRawTypeReference(reference, eResource()); return result == null ? null : result.getType(); }
protected JvmType getRawType(JvmTypeReference reference) { RawTypeReferenceImplementation strategy = new RawTypeReferenceImplementation(TypesFactory.eINSTANCE); JvmTypeReference result = strategy.getRawTypeReference(reference, eResource()); return result == null ? null : result.getType(); }
protected String getRawTypeIdentifier(JvmTypeReference reference) { if (reference instanceof JvmParameterizedTypeReference) { JvmType typeOrProxy = (JvmType) reference.eGet(TypesPackage.Literals.JVM_PARAMETERIZED_TYPE_REFERENCE__TYPE, false); if (typeOrProxy.eIsProxy()) { URI uri = ((InternalEObject)typeOrProxy).eProxyURI(); if (URIHelperConstants.PROTOCOL.equals(uri.scheme())) { if (URIHelperConstants.PRIMITIVES.regionMatches(1, uri.segment(0), 0, URIHelperConstants.PRIMITIVES.length() - 1)) { String fragment = uri.fragment(); return fragment; } else if (URIHelperConstants.OBJECTS.regionMatches(1, uri.segment(0), 0, URIHelperConstants.OBJECTS.length() - 2)) { String fragment = uri.fragment(); if (fragment.lastIndexOf('/') == -1) return fragment; } } } } RawTypeReferenceComputer strategy = new RawTypeReferenceComputer(TypesFactory.eINSTANCE); JvmTypeReference result = strategy.getRawTypeReference(reference, eResource()); if (result == null) return null; JvmType rawResult = result.getType(); return rawResult == null ? null : rawResult.getIdentifier(); }
protected String getRawTypeIdentifier(JvmTypeReference reference) { if (reference instanceof JvmParameterizedTypeReference) { JvmType typeOrProxy = (JvmType) reference.eGet(TypesPackage.Literals.JVM_PARAMETERIZED_TYPE_REFERENCE__TYPE, false); if (typeOrProxy.eIsProxy()) { URI uri = ((InternalEObject)typeOrProxy).eProxyURI(); if (URIHelperConstants.PROTOCOL.equals(uri.scheme())) { if (URIHelperConstants.PRIMITIVES.regionMatches(1, uri.segment(0), 0, URIHelperConstants.PRIMITIVES.length() - 1)) { String fragment = uri.fragment(); return fragment; } else if (URIHelperConstants.OBJECTS.regionMatches(1, uri.segment(0), 0, URIHelperConstants.OBJECTS.length() - 2)) { String fragment = uri.fragment(); if (fragment.lastIndexOf('/') == -1) return fragment; } } } } RawTypeReferenceImplementation strategy = new RawTypeReferenceImplementation(TypesFactory.eINSTANCE); JvmTypeReference result = strategy.getRawTypeReference(reference, eResource()); if (result == null) return null; JvmType rawResult = result.getType(); return rawResult == null ? null : rawResult.getIdentifier(); }
protected void requestNotificationOnChange(Runnable listener) { Resource resource = eResource(); if (resource instanceof TypeResource) { IMirror mirror = ((TypeResource) resource).getMirror(); if (mirror instanceof IMirrorExtension) { if (((IMirrorExtension) mirror).isSealed()) return; } } Notifier notifier = this; if (resource != null) { if (resource.getResourceSet() != null) notifier = resource.getResourceSet(); else notifier = resource; } JvmTypeChangeDispatcher dispatcher = JvmTypeChangeDispatcher.findResourceChangeDispatcher(notifier); dispatcher.requestNotificationOnChange(this, listener); }
protected void requestNotificationOnChange(Runnable listener) { Resource resource = eResource(); if (resource instanceof TypeResource) { IMirror mirror = ((TypeResource) resource).getMirror(); if (mirror instanceof IMirrorExtension) { if (((IMirrorExtension) mirror).isSealed()) return; } } Notifier notifier = this; if (resource != null) { if (resource.getResourceSet() != null) notifier = resource.getResourceSet(); else notifier = resource; } JvmTypeChangeDispatcher dispatcher = JvmTypeChangeDispatcher.findResourceChangeDispatcher(notifier); dispatcher.requestNotificationOnChange(this, listener); }