protected void completeSubJavaTypes ( Class < ? > superType , boolean allowSuperTypeItself , ContentAssistContext context , EReference reference , IValueConverter < String > valueConverter , final ITypesProposalProvider . Filter filter , ICompletionProposalAcceptor acceptor ) { assert superType != null ; final INode lastCompleteNode = context . getLastCompleteNode ( ) ; if ( lastCompleteNode instanceof ILeafNode && ! ( ( ILeafNode ) lastCompleteNode ) . isHidden ( ) ) { if ( lastCompleteNode . getLength ( ) > 0 && lastCompleteNode . getTotalEndOffset ( ) == context . getOffset ( ) ) { final String text = lastCompleteNode . getText ( ) ; final char lastChar = text . charAt ( text . length ( ) - 1 ) ; if ( Character . isJavaIdentifierPart ( lastChar ) ) { return ; } } } final ITypesProposalProvider . Filter subTypeFilter ; if ( allowSuperTypeItself ) { subTypeFilter = filter ; } else { final String superTypeQualifiedName = superType . getName ( ) ; subTypeFilter = new ITypesProposalProvider . Filter ( ) { @ Override public boolean accept ( int modifiers , char [ ] packageName , char [ ] simpleTypeName , char [ ] [ ] enclosingTypeNames , String path ) { final String fullName = JavaModelUtil . concatenateName ( packageName , simpleTypeName ) ; if ( Objects . equals ( superTypeQualifiedName , fullName ) ) { return false ; } return filter . accept ( modifiers , packageName , simpleTypeName , enclosingTypeNames , path ) ; } @ Override public int getSearchFor ( ) { return filter . getSearchFor ( ) ; } } ; } getTypesProposalProvider ( ) . createSubTypeProposals ( this . typeReferences . findDeclaredType ( superType , context . getCurrentModel ( ) ) , this , context , reference , subTypeFilter , valueConverter , acceptor ) ; }
Complete for obtaining SARL types that are subtypes of the given type .