You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openaz.apache.org by pd...@apache.org on 2015/05/13 18:03:06 UTC
[44/56] [abbrv] [partial] incubator-openaz git commit: Merging
re-factoring with PMD work
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp-rest/src/main/java/org/apache/openaz/xacml/rest/impl/XACMLPdpPIPFinderFactory.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp-rest/src/main/java/org/apache/openaz/xacml/rest/impl/XACMLPdpPIPFinderFactory.java
index 14f0696,0000000..5639a74
mode 100644,000000..100644
--- a/openaz-xacml-pdp-rest/src/main/java/org/apache/openaz/xacml/rest/impl/XACMLPdpPIPFinderFactory.java
+++ b/openaz-xacml-pdp-rest/src/main/java/org/apache/openaz/xacml/rest/impl/XACMLPdpPIPFinderFactory.java
@@@ -1,94 -1,0 +1,94 @@@
+/*
+ * 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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2014 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+package org.apache.openaz.xacml.rest.impl;
+
+import java.util.Properties;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.openaz.xacml.api.pip.PIPException;
+import org.apache.openaz.xacml.api.pip.PIPFinder;
+import org.apache.openaz.xacml.api.pip.PIPFinderFactory;
+import org.apache.openaz.xacml.std.pip.finders.ConfigurableEngineFinder;
+import org.apache.openaz.xacml.util.XACMLProperties;
+
+public class XACMLPdpPIPFinderFactory extends PIPFinderFactory {
+ private ConfigurableEngineFinder pipFinder;
+
- private static Log logger = LogFactory.getLog(XACMLPdpPIPFinderFactory.class);
++ private static Log logger = LogFactory.getLog(XACMLPdpPIPFinderFactory.class);
+
+ public XACMLPdpPIPFinderFactory() {
+ }
+
- public XACMLPdpPIPFinderFactory(Properties properties) {
++ public XACMLPdpPIPFinderFactory(Properties properties) { //NOPMD
+ }
+
+ @Override
+ public PIPFinder getFinder() throws PIPException {
+ if (pipFinder == null) {
- synchronized(this) {
++ synchronized (this) {
+ if (pipFinder == null) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Creating default configurable engine finder");
+ }
- pipFinder = new ConfigurableEngineFinder();
- Properties xacmlProperties = null;
++ pipFinder = new ConfigurableEngineFinder();
++ Properties xacmlProperties = null;
+ try {
- xacmlProperties = XACMLProperties.getProperties();
++ xacmlProperties = XACMLProperties.getProperties();
+ } catch (Exception ex) {
+ logger.error("Exception getting XACML properties: " + ex.getMessage(), ex);
+ return null;
+ }
+ if (xacmlProperties != null) {
- ((ConfigurableEngineFinder)pipFinder).configure(xacmlProperties);
++ pipFinder.configure(xacmlProperties);
+ }
+ }
+ }
+ }
+ return pipFinder;
+ }
+
+ @Override
+ public PIPFinder getFinder(Properties properties) throws PIPException {
+ if (pipFinder == null) {
- synchronized(this) {
++ synchronized (this) {
+ if (pipFinder == null) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Creating configurable engine finder using: " + properties);
+ }
- pipFinder = new ConfigurableEngineFinder();
- ((ConfigurableEngineFinder)pipFinder).configure(properties);
++ pipFinder = new ConfigurableEngineFinder();
++ pipFinder.configure(properties);
+ }
+ }
+ }
+ return this.pipFinder;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp-rest/src/main/java/org/apache/openaz/xacml/rest/impl/XACMLPdpPolicyFinderFactory.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp-rest/src/main/java/org/apache/openaz/xacml/rest/impl/XACMLPdpPolicyFinderFactory.java
index 6163226,0000000..8a0dd97
mode 100644,000000..100644
--- a/openaz-xacml-pdp-rest/src/main/java/org/apache/openaz/xacml/rest/impl/XACMLPdpPolicyFinderFactory.java
+++ b/openaz-xacml-pdp-rest/src/main/java/org/apache/openaz/xacml/rest/impl/XACMLPdpPolicyFinderFactory.java
@@@ -1,217 -1,0 +1,229 @@@
+/*
+ * 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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2014 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+package org.apache.openaz.xacml.rest.impl;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.openaz.xacml.pdp.policy.Policy;
+import org.apache.openaz.xacml.pdp.policy.PolicyDef;
+import org.apache.openaz.xacml.pdp.policy.PolicyFinder;
+import org.apache.openaz.xacml.pdp.policy.PolicyFinderFactory;
+import org.apache.openaz.xacml.pdp.policy.dom.DOMPolicyDef;
+import org.apache.openaz.xacml.pdp.std.StdPolicyFinder;
+import org.apache.openaz.xacml.std.StdStatusCode;
+import org.apache.openaz.xacml.std.dom.DOMStructureException;
+import org.apache.openaz.xacml.util.FactoryException;
+import org.apache.openaz.xacml.util.XACMLProperties;
+
+import com.google.common.base.Splitter;
+
+public class XACMLPdpPolicyFinderFactory extends PolicyFinderFactory {
- public static final String PROP_FILE = ".file";
- public static final String PROP_URL = ".url";
++ public static final String PROP_FILE = ".file";
++ public static final String PROP_URL = ".url";
+
- private static Log logger = LogFactory.getLog(XACMLPdpPolicyFinderFactory.class);
++ private static Log logger = LogFactory.getLog(XACMLPdpPolicyFinderFactory.class);
+ private List<PolicyDef> rootPolicies;
+ private List<PolicyDef> referencedPolicies;
- private boolean needsInit = true;
++ private boolean needsInit = true;
+
+ private Properties properties = null;
+
+ public XACMLPdpPolicyFinderFactory() {
+ //
+ // Here we differ from the StdPolicyFinderFactory in that we initialize right away.
+ // We do not wait for a policy request to happen to look for and load policies.
+ //
+ this.init();
+ }
+
+ public XACMLPdpPolicyFinderFactory(Properties properties) {
+ //
+ // Save our properties
+ //
+ this.properties = properties;
+ //
+ // Here we differ from the StdPolicyFinderFactory in that we initialize right away.
+ // We do not wait for a policy request to happen to look for and load policies.
+ //
+ this.init();
+ }
+
+ /**
- * Loads the <code>PolicyDef</code> for the given <code>String</code> identifier by looking first
- * for a ".file" property associated with the ID and using that to load from a <code>File</code> and
- * looking for a ".url" property associated with the ID and using that to load from a <code>URL</code>.
++ * Loads the <code>PolicyDef</code> for the given <code>String</code> identifier by looking first for a
++ * ".file" property associated with the ID and using that to load from a <code>File</code> and looking for
++ * a ".url" property associated with the ID and using that to load from a <code>URL</code>.
+ *
+ * @param policyId the <code>String</code> identifier for the policy
+ * @return a <code>PolicyDef</code> loaded from the given identifier
+ */
+ protected PolicyDef loadPolicyDef(String policyId) {
+ String propLocation = null;
+ if (this.properties == null) {
- propLocation = XACMLProperties.getProperty(policyId + PROP_FILE);
++ propLocation = XACMLProperties.getProperty(policyId + PROP_FILE);
+ } else {
- propLocation = this.properties.getProperty(policyId + PROP_FILE);
++ propLocation = this.properties.getProperty(policyId + PROP_FILE);
+ }
+ if (propLocation != null) {
- File fileLocation = new File(propLocation);
++ File fileLocation = new File(propLocation);
+ if (!fileLocation.exists()) {
- XACMLPdpPolicyFinderFactory.logger.error("Policy file " + fileLocation.getAbsolutePath() + " does not exist.");
++ XACMLPdpPolicyFinderFactory.logger.error("Policy file " + fileLocation.getAbsolutePath()
++ + " does not exist.");
+ } else if (!fileLocation.canRead()) {
- XACMLPdpPolicyFinderFactory.logger.error("Policy file " + fileLocation.getAbsolutePath() + " cannot be read.");
++ XACMLPdpPolicyFinderFactory.logger.error("Policy file " + fileLocation.getAbsolutePath()
++ + " cannot be read.");
+ } else {
+ try {
+ XACMLPdpPolicyFinderFactory.logger.info("Loading policy file " + fileLocation);
- PolicyDef policyDef = DOMPolicyDef.load(fileLocation);
++ PolicyDef policyDef = DOMPolicyDef.load(fileLocation);
+ if (policyDef != null) {
+ return policyDef;
+ }
+ } catch (DOMStructureException ex) {
- XACMLPdpPolicyFinderFactory.logger.error("Error loading policy file " + fileLocation.getAbsolutePath() + ": " + ex.getMessage(), ex);
++ XACMLPdpPolicyFinderFactory.logger.error("Error loading policy file "
++ + fileLocation.getAbsolutePath() + ": "
++ + ex.getMessage(), ex);
+ return new Policy(StdStatusCode.STATUS_CODE_SYNTAX_ERROR, ex.getMessage());
+ }
+ }
+ }
+ if (this.properties == null) {
+ propLocation = XACMLProperties.getProperty(policyId + PROP_URL);
+ } else {
+ propLocation = this.properties.getProperty(policyId + PROP_URL);
+ }
+ if (propLocation != null) {
+ InputStream is = null;
+ try {
- URL url = new URL(propLocation);
- URLConnection urlConnection = url.openConnection();
++ URL url = new URL(propLocation);
++ URLConnection urlConnection = url.openConnection();
+ XACMLPdpPolicyFinderFactory.logger.info("Loading policy file " + url.toString());
+ is = urlConnection.getInputStream();
- PolicyDef policyDef = DOMPolicyDef.load(is);
++ PolicyDef policyDef = DOMPolicyDef.load(is);
+ if (policyDef != null) {
+ return policyDef;
+ }
+ } catch (MalformedURLException ex) {
- XACMLPdpPolicyFinderFactory.logger.error("Invalid URL " + propLocation + ": " + ex.getMessage(), ex);
++ XACMLPdpPolicyFinderFactory.logger.error("Invalid URL " + propLocation + ": "
++ + ex.getMessage(), ex);
+ } catch (IOException ex) {
- XACMLPdpPolicyFinderFactory.logger.error("IOException opening URL " + propLocation + ": " + ex.getMessage(), ex);
++ XACMLPdpPolicyFinderFactory.logger.error("IOException opening URL " + propLocation + ": "
++ + ex.getMessage(), ex);
+ } catch (DOMStructureException ex) {
- XACMLPdpPolicyFinderFactory.logger.error("Invalid Policy " + propLocation + ": " + ex.getMessage(), ex);
++ XACMLPdpPolicyFinderFactory.logger.error("Invalid Policy " + propLocation + ": "
++ + ex.getMessage(), ex);
+ return new Policy(StdStatusCode.STATUS_CODE_SYNTAX_ERROR, ex.getMessage());
+ } finally {
+ if (is != null) {
+ try {
+ is.close();
+ } catch (IOException e) {
- XACMLPdpPolicyFinderFactory.logger.error("Exception closing InputStream for GET of url " + propLocation + " : " + e.getMessage() + " (May be memory leak)", e);
++ XACMLPdpPolicyFinderFactory.logger
++ .error("Exception closing InputStream for GET of url " + propLocation + " : "
++ + e.getMessage() + " (May be memory leak)", e);
+ }
+ }
+ }
+ }
+
+ XACMLPdpPolicyFinderFactory.logger.error("No known location for Policy " + policyId);
+ return null;
+ }
+
+ /**
+ * Finds the identifiers for all of the policies referenced by the given property name in the
+ * <code>XACMLProperties</code> and loads them using the requested loading method.
+ *
- * @param propertyName the <code>String</code> name of the property containing the list of policy identifiers
++ * @param propertyName the <code>String</code> name of the property containing the list of policy
++ * identifiers
+ * @return a <code>List</code> of <code>PolicyDef</code>s loaded from the given property name
+ */
+ protected List<PolicyDef> getPolicyDefs(String propertyName) {
- String policyIds = XACMLProperties.getProperty(propertyName);
++ String policyIds = XACMLProperties.getProperty(propertyName);
+ if (policyIds == null || policyIds.length() == 0) {
+ return null;
+ }
+
- Iterable<String> policyIdArray = Splitter.on(',').trimResults().omitEmptyStrings().split(policyIds);
++ Iterable<String> policyIdArray = Splitter.on(',').trimResults().omitEmptyStrings().split(policyIds);
+ if (policyIdArray == null) {
+ return null;
+ }
+
- List<PolicyDef> listPolicyDefs = new ArrayList<PolicyDef>();
++ List<PolicyDef> listPolicyDefs = new ArrayList<PolicyDef>();
+ for (String policyId : policyIdArray) {
- PolicyDef policyDef = this.loadPolicyDef(policyId);
++ PolicyDef policyDef = this.loadPolicyDef(policyId);
+ if (policyDef != null) {
+ listPolicyDefs.add(policyDef);
+ }
+ }
+ return listPolicyDefs;
+ }
+
+ protected synchronized void init() {
+ if (this.needsInit) {
+ if (XACMLPdpPolicyFinderFactory.logger.isDebugEnabled()) {
+ XACMLPdpPolicyFinderFactory.logger.debug("Initializing");
+ }
- this.rootPolicies = this.getPolicyDefs(XACMLProperties.PROP_ROOTPOLICIES);
- this.referencedPolicies = this.getPolicyDefs(XACMLProperties.PROP_REFERENCEDPOLICIES);
++ this.rootPolicies = this.getPolicyDefs(XACMLProperties.PROP_ROOTPOLICIES);
++ this.referencedPolicies = this.getPolicyDefs(XACMLProperties.PROP_REFERENCEDPOLICIES);
+ if (XACMLPdpPolicyFinderFactory.logger.isDebugEnabled()) {
+ XACMLPdpPolicyFinderFactory.logger.debug("Root Policies: " + this.rootPolicies);
+ XACMLPdpPolicyFinderFactory.logger.debug("Referenced Policies: " + this.referencedPolicies);
+ }
- this.needsInit = false;
++ this.needsInit = false;
+ }
+ }
+
+ @Override
+ public PolicyFinder getPolicyFinder() throws FactoryException {
+ //
+ // Force using any properties that were passed upon construction
+ //
- return new StdPolicyFinder(this.rootPolicies, this.referencedPolicies, this.properties);
++ // TODO properties are not used in StdPolicyFinder
++ return new StdPolicyFinder(this.rootPolicies, this.referencedPolicies);
+ }
+
+ @Override
+ public PolicyFinder getPolicyFinder(Properties properties) throws FactoryException {
- return new StdPolicyFinder(this.rootPolicies, this.referencedPolicies, properties);
++ // TODO properties are not used in StdPolicyFinder
++ return new StdPolicyFinder(this.rootPolicies, this.referencedPolicies);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/ATTPDPEngine.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/ATTPDPEngine.java
index c432ca0,0000000..9cf37ed
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/ATTPDPEngine.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/ATTPDPEngine.java
@@@ -1,272 -1,0 +1,300 @@@
+/*
+ * 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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+package org.apache.openaz.xacml.pdp;
+
+import java.net.URI;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.openaz.xacml.api.AttributeCategory;
+import org.apache.openaz.xacml.api.Decision;
+import org.apache.openaz.xacml.api.Request;
+import org.apache.openaz.xacml.api.Response;
+import org.apache.openaz.xacml.api.Result;
+import org.apache.openaz.xacml.api.Status;
+import org.apache.openaz.xacml.api.XACML3;
+import org.apache.openaz.xacml.api.pdp.PDPEngine;
+import org.apache.openaz.xacml.api.pdp.PDPException;
+import org.apache.openaz.xacml.api.pdp.ScopeResolver;
+import org.apache.openaz.xacml.api.trace.TraceEngine;
+import org.apache.openaz.xacml.api.trace.TraceEngineFactory;
+import org.apache.openaz.xacml.api.trace.Traceable;
+import org.apache.openaz.xacml.pdp.eval.EvaluationContext;
+import org.apache.openaz.xacml.pdp.eval.EvaluationContextFactory;
+import org.apache.openaz.xacml.pdp.eval.EvaluationException;
+import org.apache.openaz.xacml.pdp.policy.PolicyDef;
+import org.apache.openaz.xacml.pdp.policy.PolicyFinderResult;
+import org.apache.openaz.xacml.std.StdIndividualDecisionRequestGenerator;
+import org.apache.openaz.xacml.std.StdMutableResponse;
+import org.apache.openaz.xacml.std.StdMutableResult;
+import org.apache.openaz.xacml.std.StdResult;
+import org.apache.openaz.xacml.std.StdStatus;
+import org.apache.openaz.xacml.std.StdStatusCode;
+import org.apache.openaz.xacml.std.trace.StdTraceEvent;
+import org.apache.openaz.xacml.util.FactoryException;
+
+/**
- * ATTPDPEngine implements the {@link org.apache.openaz.xacml.api.pdp.PDPEngine} interface using the XACML 3.0 specification.
- *
++ * ATTPDPEngine implements the {@link com.att.research.xacml.api.pdp.PDPEngine} interface using the XACML 3.0
++ * specification.
+ */
+public class ATTPDPEngine implements PDPEngine, Traceable {
- private static final Status STATUS_ADVICE_NA = new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Advice not allowed in combined decision");
- private static final Status STATUS_OBLIGATIONS_NA = new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Obligations not allowed in combined decision");
- private static final Status STATUS_COMBINE_FAILED = new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Individual decisions do not match");
- private static final Result RESULT_ECTX_NULL = new StdMutableResult(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Null EvaluationContext"));
++ private static final Status STATUS_ADVICE_NA = new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR,
++ "Advice not allowed in combined decision");
++ private static final Status STATUS_OBLIGATIONS_NA = new StdStatus(
++ StdStatusCode.STATUS_CODE_PROCESSING_ERROR,
++ "Obligations not allowed in combined decision");
++ private static final Status STATUS_COMBINE_FAILED = new StdStatus(
++ StdStatusCode.STATUS_CODE_PROCESSING_ERROR,
++ "Individual decisions do not match");
++ private static final Result RESULT_ECTX_NULL = new StdMutableResult(
++ new StdStatus(
++ StdStatusCode.STATUS_CODE_PROCESSING_ERROR,
++ "Null EvaluationContext"));
+
+ /*
+ * These are the profiles that this reference implementation of the PDP engine supports
+ */
- private static final Set<URI> PROFILES = new HashSet<URI>();
++ private static final Set<URI> PROFILES = new HashSet<URI>();
+ static {
+ PROFILES.add(XACML3.ID_PROFILE_MULTIPLE_COMBINED_DECISION.getUri());
+ PROFILES.add(XACML3.ID_PROFILE_MULTIPLE_REFERENCE.getUri());
+ PROFILES.add(XACML3.ID_PROFILE_MULTIPLE_REPEATED_ATTRIBUTE_CATEGORIES.getUri());
+ PROFILES.add(XACML3.ID_PROFILE_MULTIPLE_SCOPE.getUri());
+ PROFILES.add(XACML3.ID_PROFILE_MULTIPLE_XPATH_EXPRESSION.getUri());
+ }
+
+ private EvaluationContextFactory evaluationContextFactory;
- private Decision defaultDecision = Decision.INDETERMINATE;
++ private Decision defaultDecision = Decision.INDETERMINATE;
+ private ScopeResolver scopeResolver;
+ private TraceEngine traceEngine;
- private Log logger = LogFactory.getLog(this.getClass());
++ private Log logger = LogFactory.getLog(this.getClass());
+
+ protected TraceEngine getTraceEngine() {
+ if (this.traceEngine == null) {
- synchronized(this) {
++ synchronized (this) {
+ if (this.traceEngine == null) {
+ try {
- this.traceEngine = TraceEngineFactory.newInstance().getTraceEngine();
++ this.traceEngine = TraceEngineFactory.newInstance().getTraceEngine();
+ } catch (FactoryException ex) {
- this.logger.error("FactoryException creating TraceEngine instance: " + ex.toString(), ex);
++ this.logger.error("FactoryException creating TraceEngine instance: " + ex.toString(),
++ ex);
+ throw new IllegalStateException("FactoryException creating TraceEngine instance", ex);
+ }
+ }
+ }
+ }
+ return this.traceEngine;
+ }
+
+ public ATTPDPEngine(EvaluationContextFactory evaluationContextFactoryIn, ScopeResolver scopeResolverIn) {
- this.evaluationContextFactory = evaluationContextFactoryIn;
- this.scopeResolver = scopeResolverIn;
++ this.evaluationContextFactory = evaluationContextFactoryIn;
++ this.scopeResolver = scopeResolverIn;
+ }
+
- public ATTPDPEngine(EvaluationContextFactory evaluationContextFactoryIn, Decision defaultDecisionIn, ScopeResolver scopeResolverIn) {
++ public ATTPDPEngine(EvaluationContextFactory evaluationContextFactoryIn, Decision defaultDecisionIn,
++ ScopeResolver scopeResolverIn) {
+ this(evaluationContextFactoryIn, scopeResolverIn);
- this.defaultDecision = defaultDecisionIn;
++ this.defaultDecision = defaultDecisionIn;
+ }
+
- public ATTPDPEngine(EvaluationContextFactory evaluationContextFactoryIn, Decision defaultDecisionIn, ScopeResolver scopeResolverIn, Properties properties) {
++ public ATTPDPEngine(EvaluationContextFactory evaluationContextFactoryIn, Decision defaultDecisionIn,
++ ScopeResolver scopeResolverIn, Properties properties) {
+ this(evaluationContextFactoryIn, defaultDecisionIn, scopeResolverIn);
+ }
+
+ protected Result processRequest(EvaluationContext evaluationContext) {
+ try {
- PolicyFinderResult<PolicyDef> policyFinderResult = evaluationContext.getRootPolicyDef();
++ PolicyFinderResult<PolicyDef> policyFinderResult = evaluationContext.getRootPolicyDef();
+ if (policyFinderResult.getStatus() != null && !policyFinderResult.getStatus().isOk()) {
+ return new StdMutableResult(policyFinderResult.getStatus());
+ }
- PolicyDef policyDefRoot = policyFinderResult.getPolicyDef();
++ PolicyDef policyDefRoot = policyFinderResult.getPolicyDef();
+ if (policyDefRoot == null) {
- switch(this.defaultDecision) {
++ switch (this.defaultDecision) {
+ case DENY:
+ case NOTAPPLICABLE:
+ case PERMIT:
- return new StdMutableResult(this.defaultDecision, new StdStatus(StdStatusCode.STATUS_CODE_OK, "No applicable policy"));
++ return new StdMutableResult(this.defaultDecision,
++ new StdStatus(StdStatusCode.STATUS_CODE_OK,
++ "No applicable policy"));
+ case INDETERMINATE:
+ case INDETERMINATE_DENY:
+ case INDETERMINATE_DENYPERMIT:
+ case INDETERMINATE_PERMIT:
- return new StdMutableResult(this.defaultDecision, new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "No applicable policy"));
++ return new StdMutableResult(this.defaultDecision,
++ new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR,
++ "No applicable policy"));
+ }
+ }
- Result result = policyDefRoot.evaluate(evaluationContext);
++ Result result = policyDefRoot.evaluate(evaluationContext);
+ if (result.getStatus().isOk()) {
- Collection<AttributeCategory> listRequestAttributesIncludeInResult = evaluationContext.getRequest().getRequestAttributesIncludedInResult();
- if (listRequestAttributesIncludeInResult != null && listRequestAttributesIncludeInResult.size() > 0) {
- StdMutableResult stdMutableResult = new StdMutableResult(result);
++ Collection<AttributeCategory> listRequestAttributesIncludeInResult = evaluationContext
++ .getRequest().getRequestAttributesIncludedInResult();
++ if (listRequestAttributesIncludeInResult != null
++ && listRequestAttributesIncludeInResult.size() > 0) {
++ StdMutableResult stdMutableResult = new StdMutableResult(result);
+ stdMutableResult.addAttributeCategories(listRequestAttributesIncludeInResult);
- result = new StdResult(stdMutableResult);
++ result = new StdResult(stdMutableResult);
+ }
+ }
+ return result;
+ } catch (EvaluationException ex) {
- return new StdMutableResult(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, ex.getMessage()));
++ return new StdMutableResult(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR,
++ ex.getMessage()));
+ }
+ }
+
+ @Override
+ public Response decide(Request pepRequest) throws PDPException {
+ /*
+ * Validate the request
+ */
- TraceEngine traceEngineThis = this.getTraceEngine();
++ TraceEngine traceEngineThis = this.getTraceEngine();
+ if (traceEngineThis.isTracing()) {
+ traceEngineThis.trace(new StdTraceEvent<Request>("Input Request", this, pepRequest));
+ }
- Status statusRequest = pepRequest.getStatus();
++ Status statusRequest = pepRequest.getStatus();
+ if (statusRequest != null && !statusRequest.isOk()) {
+ return new StdMutableResponse(statusRequest);
+ }
+
+ /*
+ * Split the original request up into individual decision requests
+ */
- StdIndividualDecisionRequestGenerator stdIndividualDecisionRequestGenerator = new StdIndividualDecisionRequestGenerator(this.scopeResolver, pepRequest);
++ StdIndividualDecisionRequestGenerator stdIndividualDecisionRequestGenerator = new StdIndividualDecisionRequestGenerator(
++ this.scopeResolver,
++ pepRequest);
+ /*
+ * Determine if we are combining multiple results into a single result
+ */
- boolean bCombineResults = pepRequest.getCombinedDecision();
- StdMutableResult stdResultCombined = null;
++ boolean bCombineResults = pepRequest.getCombinedDecision();
++ StdMutableResult stdResultCombined = null;
+
+ /*
- * Iterate over all of the individual decision requests and process them, combining them into the final response
++ * Iterate over all of the individual decision requests and process them, combining them into the
++ * final response
+ */
- StdMutableResponse stdResponse = new StdMutableResponse();
- Iterator<Request> iterRequestsIndividualDecision = stdIndividualDecisionRequestGenerator.getIndividualDecisionRequests();
++ StdMutableResponse stdResponse = new StdMutableResponse();
++ Iterator<Request> iterRequestsIndividualDecision = stdIndividualDecisionRequestGenerator
++ .getIndividualDecisionRequests();
+ if (iterRequestsIndividualDecision == null || !iterRequestsIndividualDecision.hasNext()) {
- return new StdMutableResponse(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "No individual decision requests"));
++ return new StdMutableResponse(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR,
++ "No individual decision requests"));
+ }
+
+ while (iterRequestsIndividualDecision.hasNext()) {
- Request requestIndividualDecision = iterRequestsIndividualDecision.next();
++ Request requestIndividualDecision = iterRequestsIndividualDecision.next();
+ if (traceEngineThis.isTracing()) {
- traceEngineThis.trace(new StdTraceEvent<Request>("Individual Request", this, requestIndividualDecision));
++ traceEngineThis.trace(new StdTraceEvent<Request>("Individual Request", this,
++ requestIndividualDecision));
+ }
- Result resultIndividualDecision = null;
- if (requestIndividualDecision.getStatus() != null && !requestIndividualDecision.getStatus().isOk()) {
- resultIndividualDecision = new StdMutableResult(requestIndividualDecision.getStatus());
++ Result resultIndividualDecision = null;
++ if (requestIndividualDecision.getStatus() != null
++ && !requestIndividualDecision.getStatus().isOk()) {
++ resultIndividualDecision = new StdMutableResult(requestIndividualDecision.getStatus());
+ } else {
- EvaluationContext evaluationContext = this.evaluationContextFactory.getEvaluationContext(requestIndividualDecision);
++ EvaluationContext evaluationContext = this.evaluationContextFactory
++ .getEvaluationContext(requestIndividualDecision);
+ if (evaluationContext == null) {
- resultIndividualDecision = RESULT_ECTX_NULL;
++ resultIndividualDecision = RESULT_ECTX_NULL;
+ } else {
- resultIndividualDecision = this.processRequest(evaluationContext);
++ resultIndividualDecision = this.processRequest(evaluationContext);
+ }
+ }
+
- assert(resultIndividualDecision != null);
++ assert resultIndividualDecision != null;
+ if (traceEngineThis.isTracing()) {
- traceEngineThis.trace(new StdTraceEvent<Result>("Individual Result", this, resultIndividualDecision));
++ traceEngineThis.trace(new StdTraceEvent<Result>("Individual Result", this,
++ resultIndividualDecision));
+ }
+ if (bCombineResults) {
- Decision decision = resultIndividualDecision.getDecision();
- Status status = resultIndividualDecision.getStatus();
++ Decision decision = resultIndividualDecision.getDecision();
++ Status status = resultIndividualDecision.getStatus();
+ if (resultIndividualDecision.getAssociatedAdvice().size() > 0) {
- decision = Decision.INDETERMINATE;
- status = STATUS_ADVICE_NA;
++ decision = Decision.INDETERMINATE;
++ status = STATUS_ADVICE_NA;
+ } else if (resultIndividualDecision.getObligations().size() > 0) {
- decision = Decision.INDETERMINATE;
- status = STATUS_OBLIGATIONS_NA;
++ decision = Decision.INDETERMINATE;
++ status = STATUS_OBLIGATIONS_NA;
+ }
+
+ if (stdResultCombined == null) {
- stdResultCombined = new StdMutableResult(decision, status);
++ stdResultCombined = new StdMutableResult(decision, status);
+ } else {
+ if (stdResultCombined.getDecision() != resultIndividualDecision.getDecision()) {
+ stdResultCombined.setDecision(Decision.INDETERMINATE);
+ stdResultCombined.setStatus(STATUS_COMBINE_FAILED);
+ }
+ }
+ stdResultCombined.addPolicyIdentifiers(resultIndividualDecision.getPolicyIdentifiers());
+ stdResultCombined.addPolicySetIdentifiers(resultIndividualDecision.getPolicySetIdentifiers());
+ stdResultCombined.addAttributeCategories(resultIndividualDecision.getAttributes());
+ if (traceEngineThis.isTracing()) {
- traceEngineThis.trace(new StdTraceEvent<Result>("Combined result", this, stdResultCombined));
++ traceEngineThis.trace(new StdTraceEvent<Result>("Combined result", this,
++ stdResultCombined));
+ }
+ } else {
+ stdResponse.add(resultIndividualDecision);
+ }
+ }
+
+ if (bCombineResults) {
+ stdResponse.add(stdResultCombined);
+ }
+ return stdResponse;
+ }
+
+ @Override
+ public Collection<URI> getProfiles() {
+ return Collections.unmodifiableCollection(PROFILES);
+ }
+
+ @Override
+ public boolean hasProfile(URI uriProfile) {
+ return PROFILES.contains(uriProfile);
+ }
+
+ @Override
+ public String getTraceId() {
+ return this.getClass().getCanonicalName();
+ }
+
+ @Override
+ public Traceable getCause() {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/ATTPDPEngineFactory.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/ATTPDPEngineFactory.java
index 69428b4,0000000..0b59898
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/ATTPDPEngineFactory.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/ATTPDPEngineFactory.java
@@@ -1,73 -1,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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+package org.apache.openaz.xacml.pdp;
+
+import java.util.Properties;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.openaz.xacml.api.pdp.PDPEngine;
+import org.apache.openaz.xacml.api.pdp.PDPEngineFactory;
+import org.apache.openaz.xacml.pdp.eval.EvaluationContextFactory;
+import org.apache.openaz.xacml.util.FactoryException;
+
+/**
- * ATTPDPEngineFactory extends {@link org.apache.openaz.xacml.api.pdp.PDPEngineFactory} by implementing the abstract
- * <code>newEngine</code> method to create a {@link ATTPDPEngine} instance and initialize it
- * with policies and PIP instances based on configuration information provided to the factory.
- *
++ * ATTPDPEngineFactory extends {@link com.att.research.xacml.api.pdp.PDPEngineFactory} by implementing the
++ * abstract <code>newEngine</code> method to create a {@link ATTPDPEngine} instance and initialize it with
++ * policies and PIP instances based on configuration information provided to the factory.
+ */
+public class ATTPDPEngineFactory extends PDPEngineFactory {
- private Log logger = LogFactory.getLog(this.getClass());
++ private Log logger = LogFactory.getLog(this.getClass());
+
+ public ATTPDPEngineFactory() {
+ }
+
+ @Override
+ public PDPEngine newEngine() throws FactoryException {
- EvaluationContextFactory evaluationContextFactory = EvaluationContextFactory.newInstance();
++ EvaluationContextFactory evaluationContextFactory = EvaluationContextFactory.newInstance();
+ if (evaluationContextFactory == null) {
+ this.logger.error("Null EvaluationContextFactory");
+ throw new FactoryException("Null EvaluationContextFactory");
+ }
+ return new ATTPDPEngine(evaluationContextFactory, this.getDefaultBehavior(), this.getScopeResolver());
+ }
+
+ @Override
+ public PDPEngine newEngine(Properties properties) throws FactoryException {
- EvaluationContextFactory evaluationContextFactory = EvaluationContextFactory.newInstance(properties);
++ EvaluationContextFactory evaluationContextFactory = EvaluationContextFactory.newInstance(properties);
+ if (evaluationContextFactory == null) {
+ this.logger.error("Null EvaluationContextFactory");
+ throw new FactoryException("Null EvaluationContextFactory");
+ }
- return new ATTPDPEngine(evaluationContextFactory, this.getDefaultBehavior(), this.getScopeResolver(), properties);
++ return new ATTPDPEngine(evaluationContextFactory, this.getDefaultBehavior(), this.getScopeResolver(),
++ properties);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/Evaluatable.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/Evaluatable.java
index 7c698e4,0000000..8173eec
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/Evaluatable.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/Evaluatable.java
@@@ -1,41 -1,0 +1,41 @@@
+/*
+ * 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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+
+package org.apache.openaz.xacml.pdp.eval;
+
+/**
- * Evaluatable is the interface objects implement to indicate they can be evaluated with an {@link org.apache.openaz.xacml.pdp.eval.EvaluationContext}
- * and return an {@link org.apache.openaz.xacml.pdp.eval.EvaluationResult}.
- *
++ * Evaluatable is the interface objects implement to indicate they can be evaluated with an
++ * {@link com.att.research.xacmlatt.pdp.eval.EvaluationContext} and return an
++ * {@link com.att.research.xacmlatt.pdp.eval.EvaluationResult}.
+ */
+public interface Evaluatable {
- public EvaluationResult evaluate(EvaluationContext evaluationContext) throws EvaluationException;
++ EvaluationResult evaluate(EvaluationContext evaluationContext) throws EvaluationException;
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContext.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContext.java
index 7dc4683,0000000..985a3a5
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContext.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContext.java
@@@ -1,91 -1,0 +1,98 @@@
+/*
+ * 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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+package org.apache.openaz.xacml.pdp.eval;
+
+import org.apache.openaz.xacml.api.IdReferenceMatch;
+import org.apache.openaz.xacml.api.Request;
+import org.apache.openaz.xacml.api.pip.PIPException;
+import org.apache.openaz.xacml.api.pip.PIPFinder;
+import org.apache.openaz.xacml.api.pip.PIPRequest;
+import org.apache.openaz.xacml.api.pip.PIPResponse;
+import org.apache.openaz.xacml.api.trace.TraceEngine;
+import org.apache.openaz.xacml.pdp.policy.Policy;
+import org.apache.openaz.xacml.pdp.policy.PolicyDef;
+import org.apache.openaz.xacml.pdp.policy.PolicyFinderResult;
+import org.apache.openaz.xacml.pdp.policy.PolicySet;
+
+/**
- * EvaluationContext provides the interface that the PDP uses to evaluate its set of Policies and PolicySets against
- * a {@link org.apache.openaz.xacml.api.Request}.
- *
++ * EvaluationContext provides the interface that the PDP uses to evaluate its set of Policies and PolicySets
++ * against a {@link com.att.research.xacml.api.Request}.
+ */
+public interface EvaluationContext extends PIPFinder, TraceEngine {
+ /**
- * Gets the original <code>Request</code> provided to the <code>ATTPDPEngine</code>'s <code>decide</code> method.
++ * Gets the original <code>Request</code> provided to the <code>ATTPDPEngine</code>'s <code>decide</code>
++ * method.
+ *
- * @return the <code>Request</code> provided to the <code>ATTPDPEngine</code>'s <code>decide</code> method.
++ * @return the <code>Request</code> provided to the <code>ATTPDPEngine</code>'s <code>decide</code>
++ * method.
+ */
- public Request getRequest();
++ Request getRequest();
+
+ /**
- * Gets the root {@link org.apache.openaz.xacml.pdp.policy.PolicyDef} from the policy store
- * configured by the particular implementation of the <code>PolicyFinderFactory</code> class.
++ * Gets the root {@link com.att.research.xacmlatt.pdp.policy.PolicyDef} from the policy store configured
++ * by the particular implementation of the <code>PolicyFinderFactory</code> class.
+ *
+ * @return a <code>PolicyFinderResult</code> with the root <code>PolicyDef</code>
+ */
- public abstract PolicyFinderResult<PolicyDef> getRootPolicyDef();
++ PolicyFinderResult<PolicyDef> getRootPolicyDef();
+
+ /**
- * Gets the {@link org.apache.openaz.xacml.pdp.policy.Policy} that matches the given {@link org.apache.openaz.xacml.api.IdReferenceMatch}.
++ * Gets the {@link com.att.research.xacmlatt.pdp.policy.Policy} that matches the given
++ * {@link com.att.research.xacml.api.IdReferenceMatch}.
+ *
+ * @param idReferenceMatch the <code>IdReferenceMatch</code> to search for
- * @return a <code>PolicyFinderResult</code> with the <code>Policy</code> matching the given <code>IdReferenceMatch</code>
++ * @return a <code>PolicyFinderResult</code> with the <code>Policy</code> matching the given
++ * <code>IdReferenceMatch</code>
+ */
- public abstract PolicyFinderResult<Policy> getPolicy(IdReferenceMatch idReferenceMatch);
++ PolicyFinderResult<Policy> getPolicy(IdReferenceMatch idReferenceMatch);
+
+ /**
- * Gets the {@link org.apache.openaz.xacml.pdp.policy.PolicySet} that matches the given {@link org.apache.openaz.xacml.api.IdReferenceMatch}.
++ * Gets the {@link com.att.research.xacmlatt.pdp.policy.PolicySet} that matches the given
++ * {@link com.att.research.xacml.api.IdReferenceMatch}.
+ *
+ * @param idReferenceMatch the <code>IdReferenceMatch</code> to search for
- * @return a <code>PolicyFinderResult</code> with the <code>PolicySet</code> matching the given <code>IdReferenceMatch</code>.
++ * @return a <code>PolicyFinderResult</code> with the <code>PolicySet</code> matching the given
++ * <code>IdReferenceMatch</code>.
+ */
- public abstract PolicyFinderResult<PolicySet> getPolicySet(IdReferenceMatch idReferenceMatch);
++ PolicyFinderResult<PolicySet> getPolicySet(IdReferenceMatch idReferenceMatch);
+
+ /**
- * Gets the {@link org.apache.openaz.xacml.api.pip.PIPResponse} containing {@link org.apache.openaz.xacml.api.Attribute}s that
- * match the given {@link org.apache.openaz.xacml.api.pip.PIPRequest} from this <code>EvaluationContext</code>.
++ * Gets the {@link com.att.research.xacml.api.pip.PIPResponse} containing
++ * {@link com.att.research.xacml.api.Attribute}s that match the given
++ * {@link com.att.research.xacml.api.pip.PIPRequest} from this <code>EvaluationContext</code>.
+ *
+ * @param pipRequest the <code>PIPRequest</code> specifying which <code>Attribute</code>s to retrieve
- * @return the <code>PIPResponse</code> containing the {@link org.apache.openaz.xacml.api.Status} and <code>Attribute</code>s
++ * @return the <code>PIPResponse</code> containing the {@link com.att.research.xacml.api.Status} and
++ * <code>Attribute</code>s
+ * @throws EvaluationException if there is an error retrieving the <code>Attribute</code>s
+ */
- public PIPResponse getAttributes(PIPRequest pipRequest) throws PIPException;
++ PIPResponse getAttributes(PIPRequest pipRequest) throws PIPException;
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContextException.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContextException.java
index 3c1316c,0000000..13529d1
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContextException.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContextException.java
@@@ -1,60 -1,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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+package org.apache.openaz.xacml.pdp.eval;
+
+/**
- * EvaluationContextException extends <code>Exception</code> to represent errors thrown by
- * methods in the {@link EvaluationContext} and {@link EvaluationContextFactory}.
- *
++ * EvaluationContextException extends <code>Exception</code> to represent errors thrown by methods in the
++ * {@link EvaluationContext} and {@link EvaluationContextFactory}.
+ */
+public class EvaluationContextException extends Exception {
+ private static final long serialVersionUID = -8270506903118536839L;
+
+ public EvaluationContextException() {
+ }
+
+ public EvaluationContextException(String message) {
+ super(message);
+ }
+
+ public EvaluationContextException(Throwable cause) {
+ super(cause);
+ }
+
+ public EvaluationContextException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
- public EvaluationContextException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
++ public EvaluationContextException(String message, Throwable cause, boolean enableSuppression,
++ boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContextFactory.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContextFactory.java
index ca8c942,0000000..81c267e
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContextFactory.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationContextFactory.java
@@@ -1,97 -1,0 +1,102 @@@
+/*
+ * 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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+package org.apache.openaz.xacml.pdp.eval;
+
+import java.util.Properties;
+
+import org.apache.openaz.xacml.api.Request;
+import org.apache.openaz.xacml.api.pip.PIPFinder;
+import org.apache.openaz.xacml.pdp.policy.PolicyFinder;
+import org.apache.openaz.xacml.pdp.util.OpenAZPDPProperties;
+import org.apache.openaz.xacml.util.FactoryException;
+import org.apache.openaz.xacml.util.FactoryFinder;
+
+/**
- * EvaluationContextFactory provides methods for creating {@link EvaluationContext} objects
- * based on configuration information found in standard places. (TODO: Detail what these are)
- *
++ * EvaluationContextFactory provides methods for creating {@link EvaluationContext} objects based on
++ * configuration information found in standard places. (TODO: Detail what these are)
+ */
+public abstract class EvaluationContextFactory {
- private static final String FACTORYID = OpenAZPDPProperties.PROP_EVALUATIONCONTEXTFACTORY;
- private static final String DEFAULT_FACTORY_CLASSNAME = "org.apache.openaz.xacml.pdp.std.StdEvaluationContextFactory";
++ private static final String FACTORYID = OpenAZPDPProperties.PROP_EVALUATIONCONTEXTFACTORY;
++ private static final String DEFAULT_FACTORY_CLASSNAME = "org.apache.openaz.xacml.pdp.std.StdEvaluationContextFactory";
+
+ protected EvaluationContextFactory() {
+ }
+
+ protected EvaluationContextFactory(Properties properties) {
+ }
+
+ public static EvaluationContextFactory newInstance() throws FactoryException {
+ return FactoryFinder.find(FACTORYID, DEFAULT_FACTORY_CLASSNAME, EvaluationContextFactory.class);
+ }
+
+ public static EvaluationContextFactory newInstance(Properties properties) throws FactoryException {
- return FactoryFinder.find(FACTORYID, DEFAULT_FACTORY_CLASSNAME, EvaluationContextFactory.class, properties);
++ return FactoryFinder.find(FACTORYID, DEFAULT_FACTORY_CLASSNAME, EvaluationContextFactory.class,
++ properties);
+ }
+
- public static EvaluationContextFactory newInstance(String className, ClassLoader classLoader) throws FactoryException {
++ public static EvaluationContextFactory newInstance(String className, ClassLoader classLoader)
++ throws FactoryException {
+ return FactoryFinder.newInstance(className, EvaluationContextFactory.class, classLoader, false);
+ }
+
+ public static EvaluationContextFactory newInstance(String className) throws FactoryException {
+ return FactoryFinder.newInstance(className, EvaluationContextFactory.class, null, true);
+ }
+
+ /**
- * Gets a new {@link com.att.research.xacml.pdp.eval.EvaluationContext} for the given {@link org.apache.openaz.xacml.api.Request}.
++ * Gets a new {@link com.att.research.xacml.pdp.eval.EvaluationContext} for the given
++ * {@link com.att.research.xacml.api.Request}.
+ *
+ * @param request the <code>Request</code> for the new <code>EvaluationContext</code>
+ * @return a new <code>EvaluationContext</code> for the given <code>Request</code>
+ */
+ public abstract EvaluationContext getEvaluationContext(Request request);
+
+ /**
- * Sets the {@link org.apache.openaz.xacml.pdp.policy.PolicyFinder} for this <code>EvaluationContextFactory</code> to an
- * explicit instance instead of the default or configured value.
++ * Sets the {@link com.att.research.xacmlatt.pdp.policy.PolicyFinder} for this
++ * <code>EvaluationContextFactory</code> to an explicit instance instead of the default or configured
++ * value.
+ *
- * @param policyFinder the <code>PolicyFinder</code> to use in creating new <code>EvaluationContext</code>s.
++ * @param policyFinder the <code>PolicyFinder</code> to use in creating new <code>EvaluationContext</code>
++ * s.
+ */
+ public abstract void setPolicyFinder(PolicyFinder policyFinder);
+
+ /**
- * Sets the {@link org.apache.openaz.xacml.api.pip.PIPFinder} for this <code>EvaluationContextFactory</code> to an
- * explicit instance instaed of the default or configured value.
++ * Sets the {@link com.att.research.xacml.api.pip.PIPFinder} for this
++ * <code>EvaluationContextFactory</code> to an explicit instance instaed of the default or configured
++ * value.
+ *
+ * @param pipFinder the <code>PIPFinder</code> to use in creating new <code>EvaluationContext</code>s.
+ */
+ public abstract void setPIPFinder(PIPFinder pipFinder);
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationException.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationException.java
index 3c9f04f,0000000..7d78ce3
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationException.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationException.java
@@@ -1,61 -1,0 +1,61 @@@
+/*
+ * 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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+
+package org.apache.openaz.xacml.pdp.eval;
+
+/**
+ * EvaluationException extends <code>Exception</code> to represent errors returned by methods of the
+ * {@link Evaluatable} interface and the {@link Matchable} interface.
- *
+ */
+public class EvaluationException extends Exception {
+ private static final long serialVersionUID = 302250127793947492L;
+
+ public EvaluationException() {
+ }
+
+ public EvaluationException(String message) {
+ super(message);
+ }
+
+ public EvaluationException(Throwable cause) {
+ super(cause);
+ }
+
+ public EvaluationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
- public EvaluationException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
++ public EvaluationException(String message, Throwable cause, boolean enableSuppression,
++ boolean writableStackTrace) {
+ super(message, cause, enableSuppression, writableStackTrace);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationResult.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationResult.java
index abb8fc3,0000000..208cc14
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationResult.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/EvaluationResult.java
@@@ -1,98 -1,0 +1,97 @@@
+/*
+ * 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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+
+package org.apache.openaz.xacml.pdp.eval;
+
+import java.util.Collection;
+
+import org.apache.openaz.xacml.api.Advice;
+import org.apache.openaz.xacml.api.AttributeCategory;
+import org.apache.openaz.xacml.api.Decision;
+import org.apache.openaz.xacml.api.IdReference;
+import org.apache.openaz.xacml.api.Obligation;
+import org.apache.openaz.xacml.api.Status;
+import org.apache.openaz.xacml.std.StdMutableResult;
+
+/**
- * EvaluationResult extends {@link org.apache.openaz.xacml.std.StdMutableResult} with methods useful within a PDP implementation
- *
++ * EvaluationResult extends {@link com.att.research.xacml.std.StdMutableResult} with methods useful within a
++ * PDP implementation
+ */
+public class EvaluationResult extends StdMutableResult {
+ public EvaluationResult() {
+ super();
+ }
+
+ public EvaluationResult(Decision decisionIn, Status statusIn) {
+ super(decisionIn, statusIn);
+ }
+
+ public EvaluationResult(Status statusIn) {
+ super(statusIn);
+ }
+
+ public EvaluationResult(Decision decisionIn) {
+ super(decisionIn);
+ }
+
- public EvaluationResult(Decision decisionIn,
- Collection<Obligation> obligationsIn,
- Collection<Advice> adviceIn,
- Collection<AttributeCategory> attributesIn,
++ public EvaluationResult(Decision decisionIn, Collection<Obligation> obligationsIn,
++ Collection<Advice> adviceIn, Collection<AttributeCategory> attributesIn,
+ Collection<IdReference> policyIdentifiersIn,
+ Collection<IdReference> policySetIdentifiersIn) {
+ super(decisionIn, obligationsIn, adviceIn, attributesIn, policyIdentifiersIn, policySetIdentifiersIn);
+ }
+
+ /**
- * Creates an <code>EvaluationResult</code> generally from a {@link org.apache.openaz.xacml.pdp.policy.Rule} <code>evaluation</code>
- * call.
++ * Creates an <code>EvaluationResult</code> generally from a
++ * {@link com.att.research.xacmlatt.pdp.policy.Rule} <code>evaluation</code> call.
+ *
+ * @param decisionIn the <code>Decision</code>
+ * @param obligationsIn the <code>Collection</code> of <code>Obligation</code>s
+ * @param adviceIn the <code>Collection</code> of <code>Advice</code> objects
+ */
- public EvaluationResult(Decision decisionIn, Collection<Obligation> obligationsIn, Collection<Advice> adviceIn) {
++ public EvaluationResult(Decision decisionIn, Collection<Obligation> obligationsIn,
++ Collection<Advice> adviceIn) {
+ super(decisionIn, obligationsIn, adviceIn, null, null, null);
+ }
+
+ public void merge(EvaluationResult evaluationResult) {
+ if (this.getStatus() == null) {
+ this.setStatus(evaluationResult.getStatus());
+ } else {
+ this.getStatus().merge(evaluationResult.getStatus());
+ }
+ this.addObligations(evaluationResult.getObligations());
+ this.addAdvice(evaluationResult.getAssociatedAdvice());
+ this.addAttributeCategories(evaluationResult.getAttributes());
+ this.addPolicyIdentifiers(evaluationResult.getPolicyIdentifiers());
+ this.addPolicySetIdentifiers(evaluationResult.getPolicySetIdentifiers());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/MatchResult.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/MatchResult.java
index 242a109,0000000..d846672
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/MatchResult.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/MatchResult.java
@@@ -1,89 -1,0 +1,88 @@@
+/*
+ * 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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+
+package org.apache.openaz.xacml.pdp.eval;
+
+import org.apache.openaz.xacml.api.Status;
+import org.apache.openaz.xacml.std.StdStatus;
+
+/**
+ * MatchResult is the value returned by the {@link Matchable} interface.
- *
+ */
+public class MatchResult {
+ public static enum MatchCode {
+ INDETERMINATE,
+ MATCH,
+ NOMATCH
+ }
+
- public static MatchResult MM_MATCH = new MatchResult(MatchCode.MATCH);
- public static MatchResult MM_NOMATCH = new MatchResult(MatchCode.NOMATCH);
++ public static MatchResult MM_MATCH = new MatchResult(MatchCode.MATCH);
++ public static MatchResult MM_NOMATCH = new MatchResult(MatchCode.NOMATCH);
+
- private MatchCode matchCode;
- private Status status;
++ private MatchCode matchCode;
++ private Status status;
+
+ public MatchResult(MatchCode matchCodeIn, Status statusIn) {
- this.matchCode = matchCodeIn;
- this.status = statusIn;
++ this.matchCode = matchCodeIn;
++ this.status = statusIn;
+ }
+
+ public MatchResult(MatchCode matchCodeIn) {
+ this(matchCodeIn, StdStatus.STATUS_OK);
+ }
+
+ public MatchResult(Status statusIn) {
+ this(MatchCode.INDETERMINATE, statusIn);
+ }
+
+ public MatchCode getMatchCode() {
+ return this.matchCode;
+ }
+
+ public Status getStatus() {
+ return this.status;
+ }
+
+ @Override
+ public String toString() {
- StringBuilder stringBuilder = new StringBuilder("{");
++ StringBuilder stringBuilder = new StringBuilder("{");
+
+ stringBuilder.append("matchCode=");
+ stringBuilder.append(this.getMatchCode());
- Status thisStatus = this.getStatus();
++ Status thisStatus = this.getStatus();
+ if (thisStatus != null) {
+ stringBuilder.append(", status=");
+ stringBuilder.append(thisStatus.toString());
+ }
+ stringBuilder.append('}');
+ return stringBuilder.toString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-openaz/blob/cfbe399c/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/Matchable.java
----------------------------------------------------------------------
diff --cc openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/Matchable.java
index 40f5194,0000000..53831d7
mode 100644,000000..100644
--- a/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/Matchable.java
+++ b/openaz-xacml-pdp/src/main/java/org/apache/openaz/xacml/pdp/eval/Matchable.java
@@@ -1,48 -1,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.
+ *
+ */
+
+/*
+ * AT&T - PROPRIETARY
+ * THIS FILE CONTAINS PROPRIETARY INFORMATION OF
+ * AT&T AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN
+ * ACCORDANCE WITH APPLICABLE AGREEMENTS.
+ *
+ * Copyright (c) 2013 AT&T Knowledge Ventures
+ * Unpublished and Not for Publication
+ * All Rights Reserved
+ */
+
+package org.apache.openaz.xacml.pdp.eval;
+
+/**
+ * Matchable is the interface objects implement to indicate they are part of a XACML Target matching tree.
- *
+ */
+public interface Matchable {
+ /**
- * Matches this <code>Matchable</code> in the given {@link org.apache.openaz.xacml.pdp.eval.EvaluationContext} and
- * returns a {@link org.apache.openaz.xacml.pdp.eval.MatchResult}.
++ * Matches this <code>Matchable</code> in the given
++ * {@link com.att.research.xacmlatt.pdp.eval.EvaluationContext} and returns a
++ * {@link com.att.research.xacmlatt.pdp.eval.MatchResult}.
+ *
+ * @param evaluationContext the <code>EvaluationContext</code> to use in matching
- * @return a <code>MatchResult</code> indicating whether this <code>Matchable</code> matches against the given <code>EvaluationContext</code>.
++ * @return a <code>MatchResult</code> indicating whether this <code>Matchable</code> matches against the
++ * given <code>EvaluationContext</code>.
+ * @throws EvaluationException if there is an error testing the match.
+ */
- public MatchResult match(EvaluationContext evaluationContext) throws EvaluationException;
++ MatchResult match(EvaluationContext evaluationContext) throws EvaluationException;
+}