protected AbstractNestedFeatureScopeSession tryCreateNestedSessionWithVisibilityContext(Map<QualifiedName, JvmIdentifiableElement> elements, ITypeReferenceOwner owner,
			QualifiedName thisName) {
		if (elements.containsKey(thisName)) {
			JvmIdentifiableElement associatedWithThis = elements.get(thisName);
			if (associatedWithThis instanceof JvmType) {
				if (IFeatureNames.SELF.equals(thisName)) {
					IEObjectDescription thisDescription = getLocalElement(IFeatureNames.THIS);
					if (thisDescription != null && thisDescription.getEObjectOrProxy() instanceof JvmDeclaredType) {
						JvmDeclaredType thisType = (JvmDeclaredType) thisDescription.getEObjectOrProxy();
						LightweightTypeReference context = owner.toPlainTypeReference((JvmType) associatedWithThis);
						FeatureScopeSessionWithContext contextSession = new FeatureScopeSessionWithContext(this, context, thisType.getPackageName());
						AbstractNestedFeatureScopeSession result = new FeatureScopeSessionWithLocalElements(contextSession, elements);
						return result;
					}
				}
				LightweightTypeReference context = owner.toPlainTypeReference((JvmType) associatedWithThis);
				FeatureScopeSessionWithContext contextSession = new FeatureScopeSessionWithContext(this, context);
				AbstractNestedFeatureScopeSession result = new FeatureScopeSessionWithLocalElements(contextSession, elements);
				return result;
			}
		}
		return null;
	}
protected AbstractNestedFeatureScopeSession tryCreateNestedSessionWithVisibilityContext ( Map < QualifiedName , JvmIdentifiableElement > elements , ITypeReferenceOwner owner , QualifiedName thisName ) { if ( elements . containsKey ( thisName ) ) { JvmIdentifiableElement associatedWithThis = elements . get ( thisName ) ; if ( associatedWithThis instanceof JvmType ) { if ( IFeatureNames . SELF . equals ( thisName ) ) { IEObjectDescription thisDescription = getLocalElement ( IFeatureNames . THIS ) ; if ( thisDescription != null && thisDescription . getEObjectOrProxy ( ) instanceof JvmDeclaredType ) { JvmDeclaredType thisType = ( JvmDeclaredType ) thisDescription . getEObjectOrProxy ( ) ; LightweightTypeReference context = owner . toPlainTypeReference ( ( JvmType ) associatedWithThis ) ; FeatureScopeSessionWithContext contextSession = new FeatureScopeSessionWithContext ( this , context , thisType . getPackageName ( ) ) ; AbstractNestedFeatureScopeSession result = new FeatureScopeSessionWithLocalElements ( contextSession , elements ) ; return result ; } } LightweightTypeReference context = owner . toPlainTypeReference ( ( JvmType ) associatedWithThis ) ; FeatureScopeSessionWithContext contextSession = new FeatureScopeSessionWithContext ( this , context ) ; AbstractNestedFeatureScopeSession result = new FeatureScopeSessionWithLocalElements ( contextSession , elements ) ; return result ; } } return null ; }
/* @Nullable