question: public boolean verify ( GeneralNameInterface name ) throws IOException { if ( name == null ) { throw new IOException ( "name is null" ) ; } if ( excluded != null && excluded . size ( ) > 0 ) { for ( int i = 0 ; i < excluded . size ( ) ; i ++ ) { GeneralSubtree gs = excluded . get ( i ) ; if ( gs == null ) continue ; GeneralName gn = gs . getName ( ) ; if ( gn == null ) continue ; GeneralNameInterface exName = gn . getName ( ) ; if ( exName == null ) continue ; switch ( exName . constrains ( name ) ) { case GeneralNameInterface . NAME_DIFF_TYPE : case GeneralNameInterface . NAME_WIDENS : case GeneralNameInterface . NAME_SAME_TYPE : break ; case GeneralNameInterface . NAME_MATCH : case GeneralNameInterface . NAME_NARROWS : return false ; } } } if ( permitted != null && permitted . size ( ) > 0 ) { boolean sameType = false ; for ( int i = 0 ; i < permitted . size ( ) ; i ++ ) { GeneralSubtree gs = permitted . get ( i ) ; if ( gs == null ) continue ; GeneralName gn = gs . getName ( ) ; if ( gn == null ) continue ; GeneralNameInterface perName = gn . getName ( ) ; if ( perName == null ) continue ; switch ( perName . constrains ( name ) ) { case GeneralNameInterface . NAME_DIFF_TYPE : continue ; case GeneralNameInterface . NAME_WIDENS : case GeneralNameInterface . NAME_SAME_TYPE : sameType = true ; continue ; case GeneralNameInterface . NAME_MATCH : case GeneralNameInterface . NAME_NARROWS : return true ; } } if ( sameType ) { return false ; } } return true ; }
target:  check whether a name conforms to these NameConstraints. This involves verifying that the name is consistent with the permitted and excluded subtrees variables.