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.ws.policy.attachment.reference;
19:
20: import java.util.List;
21:
22: import javax.wsdl.extensions.UnknownExtensibilityElement;
23:
24: import org.apache.cxf.service.model.DescriptionInfo;
25: import org.apache.cxf.ws.policy.PolicyBuilder;
26: import org.apache.cxf.ws.policy.PolicyConstants;
27: import org.apache.neethi.Policy;
28:
29: /**
30: *
31: */
32: public class LocalServiceModelReferenceResolver implements
33: ReferenceResolver {
34:
35: private DescriptionInfo descriptionInfo;
36: private PolicyBuilder builder;
37: private PolicyConstants constants;
38:
39: public LocalServiceModelReferenceResolver(DescriptionInfo d,
40: PolicyBuilder b, PolicyConstants c) {
41: descriptionInfo = d;
42: builder = b;
43: constants = c;
44: }
45:
46: public Policy resolveReference(String uri) {
47: List<UnknownExtensibilityElement> extensions = descriptionInfo
48: .getExtensors(UnknownExtensibilityElement.class);
49: for (UnknownExtensibilityElement e : extensions) {
50: if (constants.getNamespace().equals(
51: e.getElementType().getNamespaceURI())
52: && constants.getPolicyElemName().equals(
53: e.getElementType().getLocalPart())
54: && uri.equals(e.getElement().getAttributeNS(
55: constants.getWSUNamespace(),
56: constants.getIdAttrName()))) {
57: return builder.getPolicy(e.getElement());
58: }
59: }
60: return null;
61: }
62:
63: }
|