01: /**
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing,
13: * software distributed under the License is distributed on an
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15: * KIND, either express or implied. See the License for the
16: * specific language governing permissions and limitations
17: * under the License.
18: */package org.apache.cxf.service.model;
19:
20: import java.util.ArrayList;
21: import java.util.HashMap;
22: import java.util.List;
23: import java.util.Map;
24:
25: import javax.xml.namespace.QName;
26:
27: import org.apache.cxf.common.util.StringUtils;
28:
29: public class MessageInfo extends AbstractMessageContainer {
30: public MessageInfo(OperationInfo op, QName nm) {
31: super (op, nm);
32: }
33:
34: public void setName(QName qn) {
35: mName = qn;
36: }
37:
38: public Map<QName, MessagePartInfo> getMessagePartsMap() {
39: Map<QName, MessagePartInfo> partsMap = new HashMap<QName, MessagePartInfo>();
40: for (MessagePartInfo part : getMessageParts()) {
41: partsMap.put(part.getName(), part);
42: }
43: return partsMap;
44: }
45:
46: public List<MessagePartInfo> getOrderedParts(List<String> order) {
47: if (StringUtils.isEmpty(order)) {
48: return getMessageParts();
49: }
50:
51: List<MessagePartInfo> orderedParts = new ArrayList<MessagePartInfo>();
52: Map<QName, MessagePartInfo> partsMap = getMessagePartsMap();
53: for (String part : order) {
54: QName qname = getMessagePartQName(part);
55: orderedParts.add(partsMap.get(qname));
56: }
57: return orderedParts;
58: }
59: }
|