src/share/jaxws_classes/com/sun/xml/internal/ws/client/HandlerConfiguration.java

changeset 368
0989ad8c0860
parent 286
f50545b5e2f1
child 637
9c07ef4934dd
equal deleted inserted replaced
366:8c0b6bccfe47 368:0989ad8c0860
1 /* 1 /*
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this 7 * published by the Free Software Foundation. Oracle designates this
52 */ 52 */
53 private final List<Handler> handlerChain; 53 private final List<Handler> handlerChain;
54 private final List<LogicalHandler> logicalHandlers; 54 private final List<LogicalHandler> logicalHandlers;
55 private final List<SOAPHandler> soapHandlers; 55 private final List<SOAPHandler> soapHandlers;
56 private final List<MessageHandler> messageHandlers; 56 private final List<MessageHandler> messageHandlers;
57 private Set<QName> handlerKnownHeaders; 57 private final Set<QName> handlerKnownHeaders;
58 58
59 /** 59 /**
60 * @param roles This contains the roles assumed by the Binding implementation. 60 * @param roles This contains the roles assumed by the Binding implementation.
61 * @param handlerChain This contains the handler chain set on the Binding 61 * @param handlerChain This contains the handler chain set on the Binding
62 */ 62 */
64 this.roles = roles; 64 this.roles = roles;
65 this.handlerChain = handlerChain; 65 this.handlerChain = handlerChain;
66 logicalHandlers = new ArrayList<LogicalHandler>(); 66 logicalHandlers = new ArrayList<LogicalHandler>();
67 soapHandlers = new ArrayList<SOAPHandler>(); 67 soapHandlers = new ArrayList<SOAPHandler>();
68 messageHandlers = new ArrayList<MessageHandler>(); 68 messageHandlers = new ArrayList<MessageHandler>();
69 handlerKnownHeaders = new HashSet<QName>(); 69 Set<QName> modHandlerKnownHeaders = new HashSet<QName>();
70 70
71 for (Handler handler : handlerChain) { 71 for (Handler handler : handlerChain) {
72 if (handler instanceof LogicalHandler) { 72 if (handler instanceof LogicalHandler) {
73 logicalHandlers.add((LogicalHandler) handler); 73 logicalHandlers.add((LogicalHandler) handler);
74 } else if (handler instanceof SOAPHandler) { 74 } else if (handler instanceof SOAPHandler) {
75 soapHandlers.add((SOAPHandler) handler); 75 soapHandlers.add((SOAPHandler) handler);
76 Set<QName> headers = ((SOAPHandler<?>) handler).getHeaders(); 76 Set<QName> headers = ((SOAPHandler<?>) handler).getHeaders();
77 if (headers != null) { 77 if (headers != null) {
78 handlerKnownHeaders.addAll(headers); 78 modHandlerKnownHeaders.addAll(headers);
79 } 79 }
80 } else if (handler instanceof MessageHandler) { 80 } else if (handler instanceof MessageHandler) {
81 messageHandlers.add((MessageHandler) handler); 81 messageHandlers.add((MessageHandler) handler);
82 Set<QName> headers = ((MessageHandler<?>) handler).getHeaders(); 82 Set<QName> headers = ((MessageHandler<?>) handler).getHeaders();
83 if (headers != null) { 83 if (headers != null) {
84 handlerKnownHeaders.addAll(headers); 84 modHandlerKnownHeaders.addAll(headers);
85 } 85 }
86 }else { 86 }else {
87 throw new HandlerException("handler.not.valid.type", 87 throw new HandlerException("handler.not.valid.type",
88 handler.getClass()); 88 handler.getClass());
89 } 89 }
90 } 90 }
91
92 handlerKnownHeaders = Collections.unmodifiableSet(modHandlerKnownHeaders);
91 } 93 }
92 94
93 /** 95 /**
94 * This is called when roles as reset on binding using SOAPBinding#setRoles(), to save reparsing the handlers again. 96 * This is called when roles as reset on binding using SOAPBinding#setRoles(), to save reparsing the handlers again.
95 * @param roles 97 * @param roles

mercurial