private boolean hasKeyAttributes(){
  Boolean b=hasKeyAttributes;
  if (b == null) {
synchronized (this) {
      String s;
      s=getAttribute("SupportedKeyFormats");
      if (s != null) {
        supportedFormats=s.split("\\|");
      }
      s=getAttribute("SupportedKeyClasses");
      if (s != null) {
        String[] classNames=s.split("\\|");
        List<Class<?>> classList=new ArrayList<>(classNames.length);
        for (        String className : classNames) {
          Class<?> clazz=getKeyClass(className);
          if (clazz != null) {
            classList.add(clazz);
          }
        }
        supportedClasses=classList.toArray(CLASS0);
      }
      boolean bool=(supportedFormats != null) || (supportedClasses != null);
      b=Boolean.valueOf(bool);
      hasKeyAttributes=b;
    }
  }
  return b.booleanValue();
}

private boolean hasKeyAttributes ( ) { Boolean b = hasKeyAttributes ; if ( b == null ) { synchronized ( this ) { String s ; s = getAttribute ( "SupportedKeyFormats" ) ; if ( s != null ) { supportedFormats = s . split ( "\\|" ) ; } s = getAttribute ( "SupportedKeyClasses" ) ; if ( s != null ) { String [ ] classNames = s . split ( "\\|" ) ; List < Class < ? > > classList = new ArrayList < > ( classNames . length ) ; for ( String className : classNames ) { Class < ? > clazz = getKeyClass ( className ) ; if ( clazz != null ) { classList . add ( clazz ) ; } } supportedClasses = classList . toArray ( CLASS0 ) ; } boolean bool = ( supportedFormats != null ) || ( supportedClasses != null ) ; b = Boolean . valueOf ( bool ) ; hasKeyAttributes = b ; } } return b . booleanValue ( ) ; }
return whether this service has its supported * properties for keys defined . parses the attributes if not yet initialized .
