From 132aa8a77685ec92bc90c03f987650d275a7b639 Mon Sep 17 00:00:00 2001 From: lresende Date: Mon, 30 Sep 2013 06:59:11 +0000 Subject: 2.0.1 RC1 release tag git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1527464 13f79535-47bb-0310-9956-ffa450edef68 --- .../tuscany/sca/policy/wspolicy/WSPolicy.java | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 sca-java-2.x/tags/2.0.1-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java (limited to 'sca-java-2.x/tags/2.0.1-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java') diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java b/sca-java-2.x/tags/2.0.1-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java new file mode 100644 index 0000000000..6938b72d82 --- /dev/null +++ b/sca-java-2.x/tags/2.0.1-RC1/modules/policy-wspolicy/src/main/java/org/apache/tuscany/sca/policy/wspolicy/WSPolicy.java @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.wspolicy; + +import java.util.ArrayList; +import java.util.List; + +import javax.xml.namespace.QName; + +import org.apache.neethi.Policy; +import org.apache.tuscany.sca.policy.PolicyContainer; + +/** + * The WS-Policy model. Currently defers to the Neethi policy model under the covers. + */ +public class WSPolicy implements PolicyContainer { + + public final static String WS_POLICY_NS = "http://schemas.xmlsoap.org/ws/2004/09/policy"; + public final static String WS_POLICY = "Policy"; + + public final static QName WS_POLICY_QNAME = new QName(WS_POLICY_NS, WS_POLICY); + + private Policy neethiPolicy; + private List policyAssertions = new ArrayList(); + + public QName getSchemaName() { + return WS_POLICY_QNAME; + } + + public Policy getNeethiPolicy() { + return neethiPolicy; + } + + public void setNeethiPolicy(Policy neethiPolicy) { + this.neethiPolicy = neethiPolicy; + } + + public List getPolicyAssertions(){ + return policyAssertions; + } + + @Override + public String toString() { + return "WSPolicy [" + neethiPolicy + "]"; + } + + public Object getChildPolicy(Class policyType) { + for (Object alternative : policyAssertions){ + for (Object policy : (List)alternative){ + if (policyType.isInstance(policy)){ + return policy; + } + } + } + return null; + } +} -- cgit v1.2.3