public class com.sun.xml.internal.ws.policy.jaxws.PolicyUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.xml.internal.ws.policy.jaxws.PolicyUtil
  super_class: java.lang.Object
{
  private static final com.sun.xml.internal.ws.policy.privateutil.PolicyLogger LOGGER;
    descriptor: Lcom/sun/xml/internal/ws/policy/privateutil/PolicyLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Collection<com.sun.xml.internal.ws.policy.jaxws.spi.PolicyFeatureConfigurator> CONFIGURATORS;
    descriptor: Ljava/util/Collection;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Collection<Lcom/sun/xml/internal/ws/policy/jaxws/spi/PolicyFeatureConfigurator;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 56
            ldc Lcom/sun/xml/internal/ws/policy/jaxws/PolicyUtil;
            invokestatic com.sun.xml.internal.ws.policy.privateutil.PolicyLogger.getLogger:(Ljava/lang/Class;)Lcom/sun/xml/internal/ws/policy/privateutil/PolicyLogger;
            putstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.LOGGER:Lcom/sun/xml/internal/ws/policy/privateutil/PolicyLogger;
         1: .line 58
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
         2: .line 57
            putstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.CONFIGURATORS:Ljava/util/Collection;
         3: .line 62
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.CONFIGURATORS:Ljava/util/Collection;
            new com.sun.xml.internal.ws.addressing.policy.AddressingFeatureConfigurator
            dup
            invokespecial com.sun.xml.internal.ws.addressing.policy.AddressingFeatureConfigurator.<init>:()V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         4: .line 63
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.CONFIGURATORS:Ljava/util/Collection;
            new com.sun.xml.internal.ws.encoding.policy.MtomFeatureConfigurator
            dup
            invokespecial com.sun.xml.internal.ws.encoding.policy.MtomFeatureConfigurator.<init>:()V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         5: .line 64
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.CONFIGURATORS:Ljava/util/Collection;
            new com.sun.xml.internal.ws.encoding.policy.FastInfosetFeatureConfigurator
            dup
            invokespecial com.sun.xml.internal.ws.encoding.policy.FastInfosetFeatureConfigurator.<init>:()V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         6: .line 65
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.CONFIGURATORS:Ljava/util/Collection;
            new com.sun.xml.internal.ws.encoding.policy.SelectOptimalEncodingFeatureConfigurator
            dup
            invokespecial com.sun.xml.internal.ws.encoding.policy.SelectOptimalEncodingFeatureConfigurator.<init>:()V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         7: .line 68
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.CONFIGURATORS:Ljava/util/Collection;
            ldc Lcom/sun/xml/internal/ws/policy/jaxws/spi/PolicyFeatureConfigurator;
            invokestatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.addServiceProviders:(Ljava/util/Collection;Ljava/lang/Class;)V
         8: .line 69
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.xml.internal.ws.policy.jaxws.PolicyUtil this
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.xml.internal.ws.policy.jaxws.PolicyUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/xml/internal/ws/policy/jaxws/PolicyUtil;

  public static <T> void addServiceProviders(java.util.Collection<T>, java.lang.Class<T>);
    descriptor: (Ljava/util/Collection;Ljava/lang/Class;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Collection providers
        start local 1 // java.lang.Class service
         0: .line 80
            aload 1 /* service */
            invokestatic com.sun.xml.internal.ws.util.ServiceFinder.find:(Ljava/lang/Class;)Lcom/sun/xml/internal/ws/util/ServiceFinder;
            invokevirtual com.sun.xml.internal.ws.util.ServiceFinder.iterator:()Ljava/util/Iterator;
            astore 2 /* foundProviders */
        start local 2 // java.util.Iterator foundProviders
         1: .line 81
            goto 3
         2: .line 82
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 0 /* providers */
            aload 2 /* foundProviders */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         3: .line 81
      StackMap locals:
      StackMap stack:
            aload 2 /* foundProviders */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         4: .line 84
            return
        end local 2 // java.util.Iterator foundProviders
        end local 1 // java.lang.Class service
        end local 0 // java.util.Collection providers
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0       providers  Ljava/util/Collection<TT;>;
            0    5     1         service  Ljava/lang/Class<TT;>;
            1    5     2  foundProviders  Ljava/util/Iterator<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<TT;>;Ljava/lang/Class<TT;>;)V
    MethodParameters:
           Name  Flags
      providers  
      service    

  public static void configureModel(com.sun.xml.internal.ws.api.model.wsdl.WSDLModel, com.sun.xml.internal.ws.policy.PolicyMap);
    descriptor: (Lcom/sun/xml/internal/ws/api/model/wsdl/WSDLModel;Lcom/sun/xml/internal/ws/policy/PolicyMap;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.sun.xml.internal.ws.api.model.wsdl.WSDLModel model
        start local 1 // com.sun.xml.internal.ws.policy.PolicyMap policyMap
         0: .line 96
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.LOGGER:Lcom/sun/xml/internal/ws/policy/privateutil/PolicyLogger;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* model */
            aastore
            dup
            iconst_1
            aload 1 /* policyMap */
            aastore
            invokevirtual com.sun.xml.internal.ws.policy.privateutil.PolicyLogger.entering:([Ljava/lang/Object;)V
         1: .line 97
            aload 0 /* model */
            invokeinterface com.sun.xml.internal.ws.api.model.wsdl.WSDLModel.getServices:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: com.sun.xml.internal.ws.api.model.wsdl.WSDLModel com.sun.xml.internal.ws.policy.PolicyMap top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.xml.internal.ws.api.model.wsdl.WSDLService
            astore 2 /* service */
        start local 2 // com.sun.xml.internal.ws.api.model.wsdl.WSDLService service
         3: .line 98
            aload 2 /* service */
            invokeinterface com.sun.xml.internal.ws.api.model.wsdl.WSDLService.getPorts:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: com.sun.xml.internal.ws.api.model.wsdl.WSDLModel com.sun.xml.internal.ws.policy.PolicyMap com.sun.xml.internal.ws.api.model.wsdl.WSDLService java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.xml.internal.ws.api.model.wsdl.WSDLPort
            astore 4 /* port */
        start local 4 // com.sun.xml.internal.ws.api.model.wsdl.WSDLPort port
         5: .line 99
            aload 1 /* policyMap */
            aload 2 /* service */
            invokeinterface com.sun.xml.internal.ws.api.model.wsdl.WSDLService.getName:()Ljavax/xml/namespace/QName;
            aload 4 /* port */
            invokeinterface com.sun.xml.internal.ws.api.model.wsdl.WSDLPort.getName:()Ljavax/xml/namespace/QName;
            invokestatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.getPortScopedFeatures:(Lcom/sun/xml/internal/ws/policy/PolicyMap;Ljavax/xml/namespace/QName;Ljavax/xml/namespace/QName;)Ljava/util/Collection;
            astore 6 /* features */
        start local 6 // java.util.Collection features
         6: .line 100
            aload 6 /* features */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 10
      StackMap locals: com.sun.xml.internal.ws.api.model.wsdl.WSDLModel com.sun.xml.internal.ws.policy.PolicyMap com.sun.xml.internal.ws.api.model.wsdl.WSDLService java.util.Iterator com.sun.xml.internal.ws.api.model.wsdl.WSDLPort java.util.Iterator java.util.Collection top java.util.Iterator
      StackMap stack:
         7: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.xml.ws.WebServiceFeature
            astore 7 /* feature */
        start local 7 // javax.xml.ws.WebServiceFeature feature
         8: .line 101
            aload 4 /* port */
            aload 7 /* feature */
            invokeinterface com.sun.xml.internal.ws.api.model.wsdl.WSDLPort.addFeature:(Ljavax/xml/ws/WebServiceFeature;)V
         9: .line 102
            aload 4 /* port */
            invokeinterface com.sun.xml.internal.ws.api.model.wsdl.WSDLPort.getBinding:()Lcom/sun/xml/internal/ws/api/model/wsdl/WSDLBoundPortType;
            aload 7 /* feature */
            invokeinterface com.sun.xml.internal.ws.api.model.wsdl.WSDLBoundPortType.addFeature:(Ljavax/xml/ws/WebServiceFeature;)V
        end local 7 // javax.xml.ws.WebServiceFeature feature
        10: .line 100
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 6 // java.util.Collection features
        end local 4 // com.sun.xml.internal.ws.api.model.wsdl.WSDLPort port
        11: .line 98
      StackMap locals: com.sun.xml.internal.ws.api.model.wsdl.WSDLModel com.sun.xml.internal.ws.policy.PolicyMap com.sun.xml.internal.ws.api.model.wsdl.WSDLService java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // com.sun.xml.internal.ws.api.model.wsdl.WSDLService service
        12: .line 97
      StackMap locals: com.sun.xml.internal.ws.api.model.wsdl.WSDLModel com.sun.xml.internal.ws.policy.PolicyMap top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        13: .line 106
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.LOGGER:Lcom/sun/xml/internal/ws/policy/privateutil/PolicyLogger;
            invokevirtual com.sun.xml.internal.ws.policy.privateutil.PolicyLogger.exiting:()V
        14: .line 107
            return
        end local 1 // com.sun.xml.internal.ws.policy.PolicyMap policyMap
        end local 0 // com.sun.xml.internal.ws.api.model.wsdl.WSDLModel model
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0      model  Lcom/sun/xml/internal/ws/api/model/wsdl/WSDLModel;
            0   15     1  policyMap  Lcom/sun/xml/internal/ws/policy/PolicyMap;
            3   12     2    service  Lcom/sun/xml/internal/ws/api/model/wsdl/WSDLService;
            5   11     4       port  Lcom/sun/xml/internal/ws/api/model/wsdl/WSDLPort;
            6   11     6   features  Ljava/util/Collection<Ljavax/xml/ws/WebServiceFeature;>;
            8   10     7    feature  Ljavax/xml/ws/WebServiceFeature;
    Exceptions:
      throws com.sun.xml.internal.ws.policy.PolicyException
    MethodParameters:
           Name  Flags
      model      final
      policyMap  

  public static java.util.Collection<javax.xml.ws.WebServiceFeature> getPortScopedFeatures(com.sun.xml.internal.ws.policy.PolicyMap, javax.xml.namespace.QName, javax.xml.namespace.QName);
    descriptor: (Lcom/sun/xml/internal/ws/policy/PolicyMap;Ljavax/xml/namespace/QName;Ljavax/xml/namespace/QName;)Ljava/util/Collection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.sun.xml.internal.ws.policy.PolicyMap policyMap
        start local 1 // javax.xml.namespace.QName serviceName
        start local 2 // javax.xml.namespace.QName portName
         0: .line 119
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.LOGGER:Lcom/sun/xml/internal/ws/policy/privateutil/PolicyLogger;
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* policyMap */
            aastore
            dup
            iconst_1
            aload 1 /* serviceName */
            aastore
            dup
            iconst_2
            aload 2 /* portName */
            aastore
            invokevirtual com.sun.xml.internal.ws.policy.privateutil.PolicyLogger.entering:([Ljava/lang/Object;)V
         1: .line 120
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* features */
        start local 3 // java.util.Collection features
         2: .line 122
            aload 1 /* serviceName */
            aload 2 /* portName */
            invokestatic com.sun.xml.internal.ws.policy.PolicyMap.createWsdlEndpointScopeKey:(Ljavax/xml/namespace/QName;Ljavax/xml/namespace/QName;)Lcom/sun/xml/internal/ws/policy/PolicyMapKey;
            astore 4 /* key */
        start local 4 // com.sun.xml.internal.ws.policy.PolicyMapKey key
         3: .line 123
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.CONFIGURATORS:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: com.sun.xml.internal.ws.policy.PolicyMap javax.xml.namespace.QName javax.xml.namespace.QName java.util.Collection com.sun.xml.internal.ws.policy.PolicyMapKey top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.xml.internal.ws.policy.jaxws.spi.PolicyFeatureConfigurator
            astore 5 /* configurator */
        start local 5 // com.sun.xml.internal.ws.policy.jaxws.spi.PolicyFeatureConfigurator configurator
         5: .line 124
            aload 5 /* configurator */
            aload 4 /* key */
            aload 0 /* policyMap */
            invokeinterface com.sun.xml.internal.ws.policy.jaxws.spi.PolicyFeatureConfigurator.getFeatures:(Lcom/sun/xml/internal/ws/policy/PolicyMapKey;Lcom/sun/xml/internal/ws/policy/PolicyMap;)Ljava/util/Collection;
            astore 7 /* additionalFeatures */
        start local 7 // java.util.Collection additionalFeatures
         6: .line 125
            aload 7 /* additionalFeatures */
            ifnull 8
         7: .line 126
            aload 3 /* features */
            aload 7 /* additionalFeatures */
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
        end local 7 // java.util.Collection additionalFeatures
        end local 5 // com.sun.xml.internal.ws.policy.jaxws.spi.PolicyFeatureConfigurator configurator
         8: .line 123
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 4 // com.sun.xml.internal.ws.policy.PolicyMapKey key
         9: .line 129
            goto 12
      StackMap locals: com.sun.xml.internal.ws.policy.PolicyMap javax.xml.namespace.QName javax.xml.namespace.QName java.util.Collection
      StackMap stack: com.sun.xml.internal.ws.policy.PolicyException
        10: astore 4 /* e */
        start local 4 // com.sun.xml.internal.ws.policy.PolicyException e
        11: .line 130
            new javax.xml.ws.WebServiceException
            dup
            aload 4 /* e */
            invokespecial javax.xml.ws.WebServiceException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // com.sun.xml.internal.ws.policy.PolicyException e
        12: .line 132
      StackMap locals:
      StackMap stack:
            getstatic com.sun.xml.internal.ws.policy.jaxws.PolicyUtil.LOGGER:Lcom/sun/xml/internal/ws/policy/privateutil/PolicyLogger;
            aload 3 /* features */
            invokevirtual com.sun.xml.internal.ws.policy.privateutil.PolicyLogger.exiting:(Ljava/lang/Object;)V
        13: .line 133
            aload 3 /* features */
            areturn
        end local 3 // java.util.Collection features
        end local 2 // javax.xml.namespace.QName portName
        end local 1 // javax.xml.namespace.QName serviceName
        end local 0 // com.sun.xml.internal.ws.policy.PolicyMap policyMap
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   14     0           policyMap  Lcom/sun/xml/internal/ws/policy/PolicyMap;
            0   14     1         serviceName  Ljavax/xml/namespace/QName;
            0   14     2            portName  Ljavax/xml/namespace/QName;
            2   14     3            features  Ljava/util/Collection<Ljavax/xml/ws/WebServiceFeature;>;
            3    9     4                 key  Lcom/sun/xml/internal/ws/policy/PolicyMapKey;
            5    8     5        configurator  Lcom/sun/xml/internal/ws/policy/jaxws/spi/PolicyFeatureConfigurator;
            6    8     7  additionalFeatures  Ljava/util/Collection<Ljavax/xml/ws/WebServiceFeature;>;
           11   12     4                   e  Lcom/sun/xml/internal/ws/policy/PolicyException;
      Exception table:
        from    to  target  type
           2     9      10  Class com.sun.xml.internal.ws.policy.PolicyException
    Signature: (Lcom/sun/xml/internal/ws/policy/PolicyMap;Ljavax/xml/namespace/QName;Ljavax/xml/namespace/QName;)Ljava/util/Collection<Ljavax/xml/ws/WebServiceFeature;>;
    MethodParameters:
             Name  Flags
      policyMap    
      serviceName  
      portName     
}
SourceFile: "PolicyUtil.java"