summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/tags/0.99-incubating/modules/policy/src/main')
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/DefaultPolicyFactory.java30
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java107
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPoint.java49
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPointType.java69
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPointTypeFactory.java42
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentMap.java87
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Policy.java32
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyFactory.java67
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java125
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySetAttachPoint.java37
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySetReference.java42
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ProfileIntent.java35
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/QualifiedIntent.java40
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/SCADefinitions.java71
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/BindingTypeImpl.java63
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/DefaultIntentAttachPointTypeFactoryImpl.java37
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ImplementationTypeImpl.java62
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java146
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentMapImpl.java73
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyFactoryImpl.java60
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java120
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetReferenceImpl.java47
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ProfileIntentImpl.java38
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/QualifiedIntentImpl.java49
-rw-r--r--sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/SCADefinitionsImpl.java67
25 files changed, 1595 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/DefaultPolicyFactory.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/DefaultPolicyFactory.java
new file mode 100644
index 0000000000..2da41675a1
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/DefaultPolicyFactory.java
@@ -0,0 +1,30 @@
+/*
+ * 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;
+
+import org.apache.tuscany.sca.policy.impl.PolicyFactoryImpl;
+
+/**
+ * A factory for the policy model.
+ *
+ * @version $Rev$ $Date$
+ */
+public class DefaultPolicyFactory extends PolicyFactoryImpl implements PolicyFactory {
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java
new file mode 100644
index 0000000000..a9b9ac4884
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Intent.java
@@ -0,0 +1,107 @@
+/*
+ * 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;
+
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Represents a policy intent. See the Policy Framework specification for a
+ * description of this element.
+ */
+public interface Intent {
+
+ /**
+ * Returns the intent name.
+ *
+ * @return the intent name
+ */
+ QName getName();
+
+ /**
+ * Sets the intent name
+ *
+ * @param name the intent name
+ */
+ void setName(QName name);
+
+ /**
+ * Get the intent domain (the root intent name before any qualifiers)
+ * @return the domain
+ */
+ String getDomain();
+
+ /**
+ * Get the intent qualifiers
+ * @return the domain
+ */
+ String[] getQualifiedNames();
+
+ /**
+ * Returns the list of operations that this intent applies to.
+ *
+ * @return
+ */
+ //List<Operation> getOperations();
+
+ /**
+ * Returns the list of SCA constructs that this intent is meant to
+ * configure.
+ *
+ * @return the list of SCA constructs that this intent is meant to configure
+ */
+ List<QName> getConstrains();
+
+ /**
+ * Returns the list of children qualified intents.
+ *
+ * @return the list of children qualified intents.
+ */
+ List<Intent> getQualifiedIntents();
+
+ /**
+ * Returns the intent description.
+ *
+ * @return the intent description
+ */
+ String getDescription();
+
+ /**
+ * Sets the intent description.
+ *
+ * @param description the intent description
+ */
+ void setDescription(String description);
+
+ /**
+ * Returns true if the model element is unresolved.
+ *
+ * @return true if the model element is unresolved.
+ */
+ boolean isUnresolved();
+
+ /**
+ * Sets whether the model element is unresolved.
+ *
+ * @param unresolved whether the model element is unresolved
+ */
+ void setUnresolved(boolean unresolved);
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPoint.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPoint.java
new file mode 100644
index 0000000000..982af3929d
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPoint.java
@@ -0,0 +1,49 @@
+/*
+ * 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;
+
+import java.util.List;
+
+/**
+ * Base interface for all assembly model objects that can be have policy intents
+ * attached to them.
+ */
+public interface IntentAttachPoint {
+
+ /**
+ * Returns a list of policy intents. See the Policy Framework specification
+ * for a description of this attribute.
+ *
+ * @return a list of policy intents.
+ */
+ List<Intent> getRequiredIntents();
+
+ /**
+ * Returns the type of the attach point such as a BindingType or an ImplementationType and so on
+ * @return
+ */
+ IntentAttachPointType getType();
+
+ /**
+ *
+ * Sets the type of the attach point such as a BindingType or an ImplementationType and so on
+ * @param type
+ */
+ void setType(IntentAttachPointType type);
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPointType.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPointType.java
new file mode 100644
index 0000000000..64aeb52678
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPointType.java
@@ -0,0 +1,69 @@
+/*
+ * 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;
+
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Base interface for representing the model type of assembly model objects that can be have policy intents
+ * attached to them.
+ */
+public interface IntentAttachPointType {
+
+ /**
+ * Returns the name of the extension type defined by this instance e.g. implementation.java, binding.ws
+ * @return the extension type QName
+ */
+ QName getName();
+
+ /**
+ * Sets the name of the extension type
+ * @param the name of the extension type
+ */
+ void setName(QName type);
+
+ /**
+ * Returns the list of names of policy intents that will always be provided by this Extension Type
+ * @ruturn list of Policy Intent names
+ */
+ List<Intent> getAlwaysProvidedIntents();
+
+ /**
+ * Returns the list of names of policy intents that may be provided by this Extension Type thro
+ * appropriate configuration
+ * @ruturn list of Policy Intent names
+ */
+ List<Intent> getMayProvideIntents();
+
+ /**
+ * Returns true if the model element is unresolved.
+ *
+ * @return true if the model element is unresolved.
+ */
+ boolean isUnresolved();
+
+ /**
+ * Sets whether the model element is unresolved.
+ *
+ * @param unresolved whether the model element is unresolved
+ */
+ void setUnresolved(boolean unresolved);
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPointTypeFactory.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPointTypeFactory.java
new file mode 100644
index 0000000000..9bd51d4745
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentAttachPointTypeFactory.java
@@ -0,0 +1,42 @@
+/*
+ * 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;
+
+/**
+ * Factory interface for creating extension types meta data
+ *
+ */
+public interface IntentAttachPointTypeFactory {
+
+ /**
+ * Creates an ImplementationTypeImpl instance to hold metadata related to
+ * a particular implementation extension in the SCA Domain
+ *
+ * @return an instance of IntentAttachPointType
+ */
+ IntentAttachPointType createImplementationType();
+
+ /**
+ * Creates an BindingTypeImpl instance to hold metadata related to
+ * a particular binding extension in the SCA Domain
+ *
+ * @return an instance of IntentAttachPointType
+ */
+ IntentAttachPointType createBindingType();
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentMap.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentMap.java
new file mode 100644
index 0000000000..9dd0be314b
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/IntentMap.java
@@ -0,0 +1,87 @@
+/*
+ * 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;
+
+import java.util.List;
+
+/**
+ * Represents a policy intent map. See the Policy Framework specification for a
+ * description of this element.
+ */
+public interface IntentMap {
+
+ /**
+ * Returns the intent realized by this intent map.
+ *
+ * @return the intent realized by this intent map
+ */
+ Intent getProvidedIntent();
+
+ /**
+ * Sets the intent realized by this intent map.
+ *
+ * @param providedIntent the intent realized by this intent map
+ */
+ void setProvidedIntent(Intent providedIntent);
+
+ /**
+ * Returns the default qualified intent map.
+ *
+ * @return the default qualified intent map
+ */
+ IntentMap getDefaultQualifiedIntentMap();
+
+ /**
+ * Sets the default qualified intent map.
+ *
+ * @param defaultQualifiedIntentMap the default qualified intent map
+ */
+ void setDefaultQualifiedIntentMap(IntentMap defaultQualifiedIntentMap);
+
+ /**
+ * Returns the list of children qualified intent maps.
+ *
+ * @return
+ */
+ List<IntentMap> getQualifiedIntentMaps();
+
+ /**
+ * Returns the list of concrete policies, either WS-Policy policy
+ * attachments, policy references, or policies expressed in another policy
+ * language.
+ *
+ * @return the list of concrete policies
+ */
+ List<Object> getPolicies();
+
+ /**
+ * Returns true if the model element is unresolved.
+ *
+ * @return true if the model element is unresolved.
+ */
+ boolean isUnresolved();
+
+ /**
+ * Sets whether the model element is unresolved.
+ *
+ * @param unresolved whether the model element is unresolved
+ */
+ void setUnresolved(boolean unresolved);
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Policy.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Policy.java
new file mode 100644
index 0000000000..ec4bded7da
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/Policy.java
@@ -0,0 +1,32 @@
+/*
+ * 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;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface that will abstract various types of policy specifications
+ * and attachments for example WS-Policy
+ *
+ */
+public interface Policy {
+ QName getSchemaName();
+ void setUnresolved(boolean unresolved);
+ boolean isUnresolved();
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyFactory.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyFactory.java
new file mode 100644
index 0000000000..c0f2087ca6
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicyFactory.java
@@ -0,0 +1,67 @@
+/*
+ * 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;
+
+/**
+ * A factory for the policy model.
+ */
+public interface PolicyFactory {
+
+ /**
+ * Create a new intent.
+ *
+ * @return a new intent
+ */
+ Intent createIntent();
+
+ /**
+ * Create a new policy set.
+ *
+ * @return a new policy set
+ */
+ PolicySet createPolicySet();
+
+ /**
+ * Create a new intent map.
+ *
+ * @return a new intent map
+ */
+ IntentMap createIntentMap();
+
+ /**
+ * create a new Profile Intent
+ *
+ * @return a ProfileIntent instance
+ */
+ ProfileIntent createProfileIntent();
+
+ /**
+ * create a new QualifiedIntent
+ *
+ * @return a QualifiedIntent instance
+ */
+ QualifiedIntent createQualifiedIntent();
+
+ /**
+ * create a new PolicySetReference
+ *
+ * @return a PolicySetReference instance
+ */
+ PolicySetReference createPolicySetReference();
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java
new file mode 100644
index 0000000000..f782080618
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java
@@ -0,0 +1,125 @@
+/*
+ * 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;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Represents a policy set. See the Policy Framework specification for a
+ * description of this element.
+ */
+public interface PolicySet {
+
+ /**
+ * Returns the intent name.
+ *
+ * @return the intent name
+ */
+ QName getName();
+
+ /**
+ * Sets the intent name
+ *
+ * @param name the intent name
+ */
+ void setName(QName name);
+
+ /**
+ * Returns the list of operations that this policy set applies to.
+ *
+ * @return
+ */
+ //List<Operation> getOperations();
+
+ /**
+ * Returns the list of
+ *
+ * @return
+ */
+ List<PolicySet> getReferencedPolicySets();
+
+ /**
+ * Returns the list of provided intents
+ *
+ * @return
+ */
+ List<Intent> getProvidedIntents();
+
+
+ /**
+ * Returns the list of concrete policies, either WS-Policy policy
+ * attachments, policy references, or policies expressed in another policy
+ * language.
+ *
+ * @return the list of concrete policies
+ */
+ List<Object> getPolicies();
+
+ /**
+ * Returns true if the model element is unresolved.
+ *
+ * @return true if the model element is unresolved.
+ */
+ boolean isUnresolved();
+
+ /**
+ * Sets whether the model element is unresolved.
+ *
+ * @param unresolved whether the model element is unresolved
+ */
+ void setUnresolved(boolean unresolved);
+
+ /**
+ * Returns the xpath expression that is to be used to evaluate
+ * if this PolicySet applies to specific attachment point
+ *
+ * @return the xpath expression
+ */
+ String getAppliesTo();
+
+ /**
+ * Sets the xpath expression that is to be used to evaluate
+ * if this PolicySet applies to specific attachment point
+ *
+ * @return
+ */
+ void setAppliesTo(String xpath);
+
+
+ /**
+ * Returns the policies / policy attachments provided thro intent maps
+ *
+ * @return
+ */
+ Map<Intent, List<Policy>>getMappedPolicies();
+
+
+
+ /**
+ * Returns the list of SCA constructs that this policy set is meant to
+ * configure.
+ *
+ * @return the list of SCA constructs that this policy set is meant to
+ * configure
+ List<QName> getAppliesTo(); */
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySetAttachPoint.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySetAttachPoint.java
new file mode 100644
index 0000000000..42e6fab199
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySetAttachPoint.java
@@ -0,0 +1,37 @@
+/*
+ * 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;
+
+import java.util.List;
+
+/**
+ * Base interface for all assembly model objects that can have policy sets
+ * attached to them.
+ */
+public interface PolicySetAttachPoint extends IntentAttachPoint {
+
+ /**
+ * Returns a list of policy sets. See the Policy Framework specification for
+ * a description of this attribute.
+ *
+ * @return a list of policy sets.
+ */
+ List<PolicySet> getPolicySets();
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySetReference.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySetReference.java
new file mode 100644
index 0000000000..e1f14a3215
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySetReference.java
@@ -0,0 +1,42 @@
+/*
+ * 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;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Interface that abstracts a PolicySet Reference
+ *
+ */
+public interface PolicySetReference {
+
+ /**
+ * Returns the name of the policyset being referred to
+ *
+ * @return the qname of the referred policyset
+ */
+ QName getReferredPolicySetName();
+
+ /**
+ * @param refPolicySetName the name of the policyset being referrred to
+ *
+ */
+ void setReferredPolicySetName(QName refPolicySetName);
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ProfileIntent.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ProfileIntent.java
new file mode 100644
index 0000000000..ff9fe89c62
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/ProfileIntent.java
@@ -0,0 +1,35 @@
+/*
+ * 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;
+
+import java.util.List;
+
+/**
+ * Interface that abstracts a profile intent
+ *
+ */
+public interface ProfileIntent extends Intent {
+ /**
+ * Returns the list of required intents.
+ *
+ * @return the list of required intents
+ */
+ List<Intent> getRequiredIntents();
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/QualifiedIntent.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/QualifiedIntent.java
new file mode 100644
index 0000000000..6c859283c6
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/QualifiedIntent.java
@@ -0,0 +1,40 @@
+/*
+ * 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;
+
+/**
+ * Abstracts a qualified policy intent
+ *
+ */
+public interface QualifiedIntent extends Intent {
+
+ /**
+ * Returns the intent qualified by this intent
+ *
+ * @return
+ */
+ Intent getQualifiableIntent();
+
+ /**
+ * sets the qualifiable intent for this Qualified intent instance
+ *
+ * @param qualifiableIntent
+ */
+ void setQualifiableIntent(Intent qualifiableIntent);
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/SCADefinitions.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/SCADefinitions.java
new file mode 100644
index 0000000000..12c2dd915c
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/SCADefinitions.java
@@ -0,0 +1,71 @@
+ /*
+ * 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;
+
+import java.net.URI;
+import java.util.List;
+
+
+/**
+ * Represents SCA Definitions.
+ *
+ */
+public interface SCADefinitions {
+ /**
+ * Returns the target namespace for this SCA Definition
+ * @return the target namespace
+ */
+ URI getTargetNamespace();
+
+ /**
+ * Sets the target names for this SCA Definition
+ *
+ * @param the target namespace for this SCA Definition
+ */
+ void setTargetNamespace(URI ns);
+
+ /**
+ * Returns a list of domain wide Policy Intents
+ *
+ * @return a list of domain wide Policy Intents
+ */
+ List<Intent> getPolicyIntents();
+
+ /**
+ * Returns a list of domain wide PolicySets
+ *
+ * @return a list of domain wide PolicySets
+ */
+ List<PolicySet> getPolicySets();
+
+ /**
+ * Returns a list of domain wide Binding Types
+ *
+ * @return a list of domain wide Binding Types
+ */
+ List<IntentAttachPointType> getBindingTypes();
+
+
+ /**
+ * Returns a list of domain wide Implementation Types
+ *
+ * @return a list of domain wide Implementation Types
+ */
+ List<IntentAttachPointType> getImplementationTypes();
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/BindingTypeImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/BindingTypeImpl.java
new file mode 100644
index 0000000000..76e17e83f2
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/BindingTypeImpl.java
@@ -0,0 +1,63 @@
+/*
+ * 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.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentAttachPointType;
+
+/**
+ * Concrete implementation for a BindingType
+ *
+ */
+public class BindingTypeImpl implements IntentAttachPointType {
+
+ private List<Intent> alwaysProvides = new ArrayList<Intent>();
+ private List<Intent> mayProvides = new ArrayList<Intent>();
+ private QName typeName;
+ private boolean unResolved = true;
+
+ public List<Intent> getAlwaysProvidedIntents() {
+ return alwaysProvides;
+ }
+
+ public List<Intent> getMayProvideIntents() {
+ return mayProvides;
+ }
+
+ public QName getName() {
+ return typeName;
+ }
+
+ public void setName(QName type) {
+ this.typeName = type;
+ }
+
+ public boolean isUnresolved() {
+ return unResolved;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ this.unResolved = unresolved;
+ }
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/DefaultIntentAttachPointTypeFactoryImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/DefaultIntentAttachPointTypeFactoryImpl.java
new file mode 100644
index 0000000000..76b00075ea
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/DefaultIntentAttachPointTypeFactoryImpl.java
@@ -0,0 +1,37 @@
+/*
+ * 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.impl;
+
+import org.apache.tuscany.sca.policy.IntentAttachPointType;
+import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory;
+
+/**
+ * Default implementation for IntentAttachPointTypeFactory
+ */
+public class DefaultIntentAttachPointTypeFactoryImpl implements IntentAttachPointTypeFactory{
+
+ public IntentAttachPointType createBindingType() {
+ return new BindingTypeImpl();
+ }
+
+ public IntentAttachPointType createImplementationType() {
+ return new ImplementationTypeImpl();
+ }
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ImplementationTypeImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ImplementationTypeImpl.java
new file mode 100644
index 0000000000..c4c5c0afce
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ImplementationTypeImpl.java
@@ -0,0 +1,62 @@
+/*
+ * 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.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentAttachPointType;
+
+/**
+ * Concrete implementation for a Implementation Type
+ *
+ */
+public class ImplementationTypeImpl implements IntentAttachPointType {
+ private List<Intent> alwaysProvides = new ArrayList<Intent>();
+ private List<Intent> mayProvides = new ArrayList<Intent>();
+ private QName typeName;
+ private boolean unResolved = true;
+
+ public List<Intent> getAlwaysProvidedIntents() {
+ return alwaysProvides;
+ }
+
+ public List<Intent> getMayProvideIntents() {
+ return mayProvides;
+ }
+
+ public QName getName() {
+ return typeName;
+ }
+
+ public void setName(QName type) {
+ this.typeName = type;
+ }
+
+ public boolean isUnresolved() {
+ return unResolved;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ this.unResolved = unresolved;
+ }
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java
new file mode 100644
index 0000000000..757e4bcfc7
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentImpl.java
@@ -0,0 +1,146 @@
+/*
+ * 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.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.policy.Intent;
+
+/**
+ * Represents a policy intent.
+ *
+ * @version $Rev$ $Date$
+ */
+public class IntentImpl implements Intent {
+
+ private static final String QUALIFIED_SEPARATOR = ".";
+ private static final String DOMAIN_SEPARATOR = ".";
+ private QName name;
+ //private List<Operation> operations = new ArrayList<Operation>();
+ private List<QName> constrains = new ArrayList<QName>();
+ private String description;
+ private List<Intent> qualifiedIntents = new ArrayList<Intent>();;
+ // private List<Intent> requiredIntents = new ArrayList<Intent>();;
+ private boolean unresolved = true;
+ private String domain;
+ private String[] qualifiedNames;
+
+ protected IntentImpl() {
+ }
+
+ public QName getName() {
+ return name;
+ }
+
+ public void setName(QName name) {
+ this.name = name;
+ String iname = name.getLocalPart();
+ int domainIdx = iname.indexOf(DOMAIN_SEPARATOR);
+ if (domainIdx > -1) {
+ domain = iname.substring(0, domainIdx);
+ String qualifNamesStr = iname.substring(domainIdx + 1);
+ String pattern = "\\" + QUALIFIED_SEPARATOR;
+ qualifiedNames = qualifNamesStr.split(pattern);
+ } else
+ domain = iname;
+ }
+
+ public String getDomain() {
+ return domain;
+ }
+
+ public String[] getQualifiedNames() {
+ String[] results = new String[qualifiedNames.length];
+ System.arraycopy(qualifiedNames, 0, results, 0, qualifiedNames.length);
+ return results;
+ }
+
+ /*public List<Operation> getOperations() {
+ return operations;
+ }*/
+
+ public List<QName> getConstrains() {
+ return constrains;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<Intent> getQualifiedIntents() {
+ return qualifiedIntents;
+ }
+
+ public boolean isUnresolved() {
+ return unresolved;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ this.unresolved = unresolved;
+ }
+
+ /**
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ QName intentName = getName();
+ result = prime * result + ((intentName == null) ? 0 : intentName.hashCode());
+ return result;
+ }
+
+ /**
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (!(obj instanceof IntentImpl)) {
+ return false;
+ }
+ final IntentImpl other = (IntentImpl)obj;
+ if (getName() == null) {
+ if (other.getName() != null) {
+ return false;
+ }
+ } else if (!getName().equals(other.getName())) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(getName());
+ }
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentMapImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentMapImpl.java
new file mode 100644
index 0000000000..aab03281ba
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/IntentMapImpl.java
@@ -0,0 +1,73 @@
+/*
+ * 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.impl;
+
+import java.util.List;
+
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentMap;
+
+/**
+ * Represents an intent map.
+ *
+ * @version $Rev$ $Date$
+ */
+public class IntentMapImpl implements IntentMap {
+
+ private boolean unresolved;
+ private IntentMap defaultQualifiedIntentMap;
+ private List<Object> policies;
+ private Intent providedIntent;
+ private List<IntentMap> qualifiedIntentMaps;
+
+ protected IntentMapImpl() {
+ }
+
+ public IntentMap getDefaultQualifiedIntentMap() {
+ return defaultQualifiedIntentMap;
+ }
+
+ public List<Object> getPolicies() {
+ return policies;
+ }
+
+ public Intent getProvidedIntent() {
+ return providedIntent;
+ }
+
+ public List<IntentMap> getQualifiedIntentMaps() {
+ return qualifiedIntentMaps;
+ }
+
+ public void setDefaultQualifiedIntentMap(IntentMap defaultQualifiedIntentMap) {
+ this.defaultQualifiedIntentMap = defaultQualifiedIntentMap;
+ }
+
+ public void setProvidedIntent(Intent providedIntent) {
+ this.providedIntent = providedIntent;
+ }
+
+ public boolean isUnresolved() {
+ return unresolved;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ this.unresolved = unresolved;
+ }
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyFactoryImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyFactoryImpl.java
new file mode 100644
index 0000000000..1db29b835e
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicyFactoryImpl.java
@@ -0,0 +1,60 @@
+/*
+ * 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.impl;
+
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentMap;
+import org.apache.tuscany.sca.policy.PolicyFactory;
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.policy.PolicySetReference;
+import org.apache.tuscany.sca.policy.ProfileIntent;
+import org.apache.tuscany.sca.policy.QualifiedIntent;
+
+/**
+ * A factory for the policy model.
+ *
+ * @version $Rev$ $Date$
+ */
+public abstract class PolicyFactoryImpl implements PolicyFactory {
+
+ public Intent createIntent() {
+ return new IntentImpl();
+ }
+
+ public PolicySetReference createPolicySetReference() {
+ return new PolicySetReferenceImpl();
+ }
+
+ public PolicySet createPolicySet() {
+ return new PolicySetImpl();
+ }
+
+ public IntentMap createIntentMap() {
+ return new IntentMapImpl();
+ }
+
+ public ProfileIntent createProfileIntent() {
+ return new ProfileIntentImpl();
+ }
+
+ public QualifiedIntent createQualifiedIntent() {
+ return new QualifiedIntentImpl();
+ }
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java
new file mode 100644
index 0000000000..9664bd5c0c
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java
@@ -0,0 +1,120 @@
+/*
+ * 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.impl;
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.Policy;
+import org.apache.tuscany.sca.policy.PolicySet;
+
+/**
+ * Represents a policy set.
+ *
+ * @version $Rev$ $Date$
+ */
+public class PolicySetImpl implements PolicySet {
+
+ private QName name;
+ //private List<Operation> operations = new ArrayList<Operation>();
+ //private List<QName> appliesTo;
+ private String appliesTo;
+ private List<Intent> providedIntents = new ArrayList<Intent>();
+ private List<PolicySet> referencedPolicySets = new ArrayList<PolicySet>();
+ private List<Object> policies = new ArrayList<Object>();
+ Map<Intent, List<Policy>> mappedPolicies = new Hashtable<Intent, List<Policy>>();
+ private boolean unresolved = true;
+
+ protected PolicySetImpl() {
+ }
+
+ public QName getName() {
+ return name;
+ }
+
+ public void setName(QName name) {
+ this.name = name;
+ }
+
+ /*public List<Operation> getOperations() {
+ return operations;
+ }*/
+
+ public String getAppliesTo() {
+ return appliesTo;
+ }
+
+ public void setAppliesTo(String appliesTo) {
+ this.appliesTo = appliesTo;
+ }
+
+ public List<Intent> getProvidedIntents() {
+ return providedIntents;
+ }
+
+ public List<PolicySet> getReferencedPolicySets() {
+ return referencedPolicySets;
+ }
+
+ public List<Object> getPolicies() {
+ return policies;
+ }
+
+ public boolean isUnresolved() {
+ return unresolved;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ this.unresolved = unresolved;
+ }
+
+ public Map<Intent, List<Policy>> getMappedPolicies() {
+ return mappedPolicies;
+ }
+
+ @Override
+ public int hashCode() {
+ return String.valueOf(getName()).hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this) {
+ return true;
+ } else if (obj instanceof PolicySet) {
+ if (getName() != null) {
+ return getName().equals(((PolicySet)obj).getName());
+ } else {
+ return ((PolicySet)obj).getName() == null;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public String toString() {
+ return getName().toString();
+ }
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetReferenceImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetReferenceImpl.java
new file mode 100644
index 0000000000..33887a784b
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetReferenceImpl.java
@@ -0,0 +1,47 @@
+/*
+ * 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.impl;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.policy.PolicySetReference;
+
+/**
+ * Concrete implementatoin for a PolicySetReference
+ *
+ */
+public class PolicySetReferenceImpl implements PolicySetReference {
+
+ private QName referredPolicySetName = null;
+
+ /*
+ * @see org.apache.tuscany.sca.policy.PolicySetReference#getReferredPolicySetName()
+ */
+ public QName getReferredPolicySetName() {
+ return referredPolicySetName;
+ }
+
+ /*
+ * @see org.apache.tuscany.sca.policy.PolicySetReference#setReferredPolicySetName(javax.xml.namespace.QName)
+ */
+ public void setReferredPolicySetName(QName refPolicySetName) {
+ referredPolicySetName = refPolicySetName;
+ }
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ProfileIntentImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ProfileIntentImpl.java
new file mode 100644
index 0000000000..cdab3bcda2
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/ProfileIntentImpl.java
@@ -0,0 +1,38 @@
+/*
+ * 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.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.ProfileIntent;
+
+/**
+ * Concrete implementation for Profile Intent
+ *
+ */
+public class ProfileIntentImpl extends IntentImpl implements ProfileIntent {
+ private List<Intent> requiredIntents = new ArrayList<Intent>();
+
+ public List<Intent> getRequiredIntents() {
+ return requiredIntents;
+ }
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/QualifiedIntentImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/QualifiedIntentImpl.java
new file mode 100644
index 0000000000..e418e399ca
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/QualifiedIntentImpl.java
@@ -0,0 +1,49 @@
+/*
+ * 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.impl;
+
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.QualifiedIntent;
+
+/**
+ * Models a concrete implementation of a Qualified Intent
+ *
+ */
+public class QualifiedIntentImpl extends IntentImpl implements QualifiedIntent {
+ private Intent qualifiableIntent = null;
+
+ public Intent getQualifiableIntent() {
+ return qualifiableIntent;
+ }
+
+ public void setQualifiableIntent(Intent qualifiableIntent) {
+ this.qualifiableIntent = qualifiableIntent;
+ }
+
+ @Override
+ public List<QName> getConstrains() {
+ return getQualifiableIntent().getConstrains();
+ }
+
+
+}
diff --git a/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/SCADefinitionsImpl.java b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/SCADefinitionsImpl.java
new file mode 100644
index 0000000000..f4d1f33fad
--- /dev/null
+++ b/sca-java-1.x/tags/0.99-incubating/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/SCADefinitionsImpl.java
@@ -0,0 +1,67 @@
+/*
+ * 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.impl;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentAttachPointType;
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.policy.SCADefinitions;
+
+/**
+ * Provides a concrete implementation for SCADefinitions
+ *
+ */
+public class SCADefinitionsImpl implements SCADefinitions {
+ private URI targetNamespace = null;
+ private List<Intent> policyIntents = new ArrayList<Intent>();
+ private List<PolicySet> policySets = new ArrayList<PolicySet>();
+ private List<IntentAttachPointType> bindingTypes = new ArrayList<IntentAttachPointType>();
+ private List<IntentAttachPointType> implementationTypes = new ArrayList<IntentAttachPointType>();
+
+
+ public List<IntentAttachPointType> getBindingTypes() {
+ return bindingTypes;
+ }
+
+ public List<IntentAttachPointType> getImplementationTypes() {
+ return implementationTypes;
+ }
+
+ public List<Intent> getPolicyIntents() {
+ return policyIntents;
+ }
+
+ public List<PolicySet> getPolicySets() {
+ return policySets;
+ }
+
+ public URI getTargetNamespace() {
+ return targetNamespace;
+ }
+
+ public void setTargetNamespace(URI ns) {
+ this.targetNamespace = ns;
+ }
+
+}