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;
}

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 ; }
check whether a name conforms to these nameconstraints . this involves verifying that the name is consistent with the permitted and excluded subtrees variables .
