@Override public boolean hasFeature(String feature,String version){
  boolean result=super.hasFeature(feature,version);
  if (!result) {
    boolean anyVersion=version == null || version.length() == 0;
    if (feature.startsWith("+")) {
      feature=feature.substring(1);
    }
    return ((feature.equalsIgnoreCase("Events") && (anyVersion || version.equals("2.0"))) || (feature.equalsIgnoreCase("MutationEvents") && (anyVersion || version.equals("2.0"))) || (feature.equalsIgnoreCase("Traversal") && (anyVersion || version.equals("2.0")))|| (feature.equalsIgnoreCase("Range") && (anyVersion || version.equals("2.0")))|| (feature.equalsIgnoreCase("MutationEvents") && (anyVersion || version.equals("2.0"))));
  }
  return result;
}

@ Override public boolean hasFeature ( String feature , String version ) { boolean result = super . hasFeature ( feature , version ) ; if ( ! result ) { boolean anyVersion = version == null || version . length ( ) == 0 ; if ( feature . startsWith ( "+" ) ) { feature = feature . substring ( 1 ) ; } return ( ( feature . equalsIgnoreCase ( "Events" ) && ( anyVersion || version . equals ( "2.0" ) ) ) || ( feature . equalsIgnoreCase ( "MutationEvents" ) && ( anyVersion || version . equals ( "2.0" ) ) ) || ( feature . equalsIgnoreCase ( "Traversal" ) && ( anyVersion || version . equals ( "2.0" ) ) ) || ( feature . equalsIgnoreCase ( "Range" ) && ( anyVersion || version . equals ( "2.0" ) ) ) || ( feature . equalsIgnoreCase ( "MutationEvents" ) && ( anyVersion || version . equals ( "2.0" ) ) ) ) ; } return result ; }
test if the dom implementation supports a specific " feature " - - currently meaning language and level thereof .
