Commit 7836010f authored by Stanley Clark's avatar Stanley Clark
Browse files

Added XACML generation to policy-gen project

parent 1586e033
......@@ -3,7 +3,7 @@ COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean package
FROM openjdk:latest
FROM openjdk:14
COPY --from=build /home/app/target/ /home/app/target/
COPY policies.csv /home/app/policies.csv
ENTRYPOINT ["java","-jar","/home/app/target/policy-gen-1.0.0.jar"]
......@@ -3,5 +3,8 @@
To build and run the project:
```shell
docker build -t policy-gen .
docker run --rm -it -v "$(pwd)/../comparison":/home/comparison policy-gen:latest
docker run --rm -it \
-v "$(pwd)/../comparison":/home/comparison \
-v "$(pwd)/../experiments/src/main/resources/policies":/home/experiments/src/main/resources/policies \
policy-gen:latest
```
......@@ -8,14 +8,12 @@
<artifactId>policy-gen</artifactId>
<version>1.0.0</version>
<!-- Explicitly set desired encoding-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<!-- Compile this project using JDK 14 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
......@@ -41,6 +39,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
......@@ -50,6 +49,23 @@
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<clearOutputDir>false</clearOutputDir>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
......@@ -70,5 +86,20 @@
<artifactId>jsqlparser</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>2.3.3</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bindings version="2.1" xmlns="http://java.sun.com/xml/ns/jaxb">
<!--
This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.2
See <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
Any modifications to this file will be lost upon recompilation of the source schema.
Generated on: 2021.03.31 at 09:07:09 AM CEST
-->
<bindings scd="x-schema::tns" xmlns:tns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17">
<schemaBindings map="false">
<package name="oasis.names.tc.xacml._3_0.core.schema.wd_17"/>
</schemaBindings>
<bindings scd="~tns:RequestType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RequestType"/>
</bindings>
<bindings scd="~tns:RequestDefaultsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RequestDefaultsType"/>
</bindings>
<bindings scd="~tns:ResponseType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ResponseType"/>
</bindings>
<bindings scd="~tns:ContentType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ContentType"/>
</bindings>
<bindings scd="~tns:ResultType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ResultType"/>
</bindings>
<bindings scd="~tns:PolicyIdentifierListType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyIdentifierListType"/>
</bindings>
<bindings scd="~tns:StatusType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.StatusType"/>
</bindings>
<bindings scd="~tns:StatusCodeType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.StatusCodeType"/>
</bindings>
<bindings scd="~tns:StatusDetailType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.StatusDetailType"/>
</bindings>
<bindings scd="~tns:MissingAttributeDetailType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.MissingAttributeDetailType"/>
</bindings>
<bindings scd="~tns:AttributesType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributesType"/>
</bindings>
<bindings scd="~tns:AttributeType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeType"/>
</bindings>
<bindings scd="~tns:MultiRequestsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.MultiRequestsType"/>
</bindings>
<bindings scd="~tns:RequestReferenceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RequestReferenceType"/>
</bindings>
<bindings scd="~tns:AttributesReferenceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributesReferenceType"/>
</bindings>
<bindings scd="~tns:ObligationsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationsType"/>
</bindings>
<bindings scd="~tns:AssociatedAdviceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AssociatedAdviceType"/>
</bindings>
<bindings scd="~tns:ObligationType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationType"/>
</bindings>
<bindings scd="~tns:AdviceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceType"/>
</bindings>
<bindings scd="~tns:AttributeAssignmentType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentType"/>
</bindings>
<bindings scd="~tns:ObligationExpressionsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionsType"/>
</bindings>
<bindings scd="~tns:AdviceExpressionsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType"/>
</bindings>
<bindings scd="~tns:ObligationExpressionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionType"/>
</bindings>
<bindings scd="~tns:AdviceExpressionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType"/>
</bindings>
<bindings scd="~tns:AttributeAssignmentExpressionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType"/>
</bindings>
<bindings scd="~tns:PolicySetType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType"/>
</bindings>
<bindings scd="~tns:PolicyIssuerType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyIssuerType"/>
</bindings>
<bindings scd="~tns:CombinerParametersType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.CombinerParametersType"/>
</bindings>
<bindings scd="~tns:CombinerParameterType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.CombinerParameterType"/>
</bindings>
<bindings scd="~tns:RuleCombinerParametersType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleCombinerParametersType"/>
</bindings>
<bindings scd="~tns:PolicyCombinerParametersType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyCombinerParametersType"/>
</bindings>
<bindings scd="~tns:PolicySetCombinerParametersType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetCombinerParametersType"/>
</bindings>
<bindings scd="~tns:IdReferenceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.IdReferenceType"/>
</bindings>
<bindings scd="~tns:DefaultsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.DefaultsType"/>
</bindings>
<bindings scd="~tns:PolicyType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType"/>
</bindings>
<bindings scd="~tns:RuleType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType"/>
</bindings>
<bindings scd="~tns:TargetType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType"/>
</bindings>
<bindings scd="~tns:AnyOfType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType"/>
</bindings>
<bindings scd="~tns:AllOfType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType"/>
</bindings>
<bindings scd="~tns:MatchType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType"/>
</bindings>
<bindings scd="~tns:VariableDefinitionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableDefinitionType"/>
</bindings>
<bindings scd="~tns:ExpressionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ExpressionType"/>
</bindings>
<bindings scd="~tns:VariableReferenceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableReferenceType"/>
</bindings>
<bindings scd="~tns:AttributeSelectorType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeSelectorType"/>
</bindings>
<bindings scd="~tns:AttributeDesignatorType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType"/>
</bindings>
<bindings scd="~tns:AttributeValueType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType"/>
</bindings>
<bindings scd="~tns:FunctionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.FunctionType"/>
</bindings>
<bindings scd="~tns:ConditionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ConditionType"/>
</bindings>
<bindings scd="~tns:ApplyType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ApplyType"/>
</bindings>
<bindings scd="~tns:DecisionType">
<typesafeEnumClass ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.DecisionType"/>
</bindings>
<bindings scd="~tns:EffectType">
<typesafeEnumClass ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.EffectType"/>
</bindings>
</bindings>
</bindings>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bindings version="2.1" xmlns="http://java.sun.com/xml/ns/jaxb">
<!--
This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.2
See <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
Any modifications to this file will be lost upon recompilation of the source schema.
Generated on: 2021.03.31 at 09:29:26 AM CEST
-->
<bindings scd="x-schema::tns" xmlns:tns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17">
<schemaBindings map="false">
<package name="oasis.names.tc.xacml._3_0.core.schema.wd_17"/>
</schemaBindings>
<bindings scd="~tns:RequestType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RequestType"/>
</bindings>
<bindings scd="~tns:RequestDefaultsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RequestDefaultsType"/>
</bindings>
<bindings scd="~tns:ResponseType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ResponseType"/>
</bindings>
<bindings scd="~tns:ContentType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ContentType"/>
</bindings>
<bindings scd="~tns:ResultType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ResultType"/>
</bindings>
<bindings scd="~tns:PolicyIdentifierListType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyIdentifierListType"/>
</bindings>
<bindings scd="~tns:StatusType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.StatusType"/>
</bindings>
<bindings scd="~tns:StatusCodeType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.StatusCodeType"/>
</bindings>
<bindings scd="~tns:StatusDetailType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.StatusDetailType"/>
</bindings>
<bindings scd="~tns:MissingAttributeDetailType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.MissingAttributeDetailType"/>
</bindings>
<bindings scd="~tns:AttributesType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributesType"/>
</bindings>
<bindings scd="~tns:AttributeType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeType"/>
</bindings>
<bindings scd="~tns:MultiRequestsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.MultiRequestsType"/>
</bindings>
<bindings scd="~tns:RequestReferenceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RequestReferenceType"/>
</bindings>
<bindings scd="~tns:AttributesReferenceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributesReferenceType"/>
</bindings>
<bindings scd="~tns:ObligationsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationsType"/>
</bindings>
<bindings scd="~tns:AssociatedAdviceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AssociatedAdviceType"/>
</bindings>
<bindings scd="~tns:ObligationType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationType"/>
</bindings>
<bindings scd="~tns:AdviceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceType"/>
</bindings>
<bindings scd="~tns:AttributeAssignmentType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentType"/>
</bindings>
<bindings scd="~tns:ObligationExpressionsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionsType"/>
</bindings>
<bindings scd="~tns:AdviceExpressionsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType"/>
</bindings>
<bindings scd="~tns:ObligationExpressionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ObligationExpressionType"/>
</bindings>
<bindings scd="~tns:AdviceExpressionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType"/>
</bindings>
<bindings scd="~tns:AttributeAssignmentExpressionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType"/>
</bindings>
<bindings scd="~tns:PolicySetType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType"/>
</bindings>
<bindings scd="~tns:PolicyIssuerType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyIssuerType"/>
</bindings>
<bindings scd="~tns:CombinerParametersType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.CombinerParametersType"/>
</bindings>
<bindings scd="~tns:CombinerParameterType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.CombinerParameterType"/>
</bindings>
<bindings scd="~tns:RuleCombinerParametersType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleCombinerParametersType"/>
</bindings>
<bindings scd="~tns:PolicyCombinerParametersType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyCombinerParametersType"/>
</bindings>
<bindings scd="~tns:PolicySetCombinerParametersType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetCombinerParametersType"/>
</bindings>
<bindings scd="~tns:IdReferenceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.IdReferenceType"/>
</bindings>
<bindings scd="~tns:DefaultsType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.DefaultsType"/>
</bindings>
<bindings scd="~tns:PolicyType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType"/>
</bindings>
<bindings scd="~tns:RuleType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType"/>
</bindings>
<bindings scd="~tns:TargetType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType"/>
</bindings>
<bindings scd="~tns:AnyOfType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType"/>
</bindings>
<bindings scd="~tns:AllOfType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType"/>
</bindings>
<bindings scd="~tns:MatchType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.MatchType"/>
</bindings>
<bindings scd="~tns:VariableDefinitionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableDefinitionType"/>
</bindings>
<bindings scd="~tns:ExpressionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ExpressionType"/>
</bindings>
<bindings scd="~tns:VariableReferenceType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.VariableReferenceType"/>
</bindings>
<bindings scd="~tns:AttributeSelectorType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeSelectorType"/>
</bindings>
<bindings scd="~tns:AttributeDesignatorType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType"/>
</bindings>
<bindings scd="~tns:AttributeValueType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType"/>
</bindings>
<bindings scd="~tns:FunctionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.FunctionType"/>
</bindings>
<bindings scd="~tns:ConditionType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ConditionType"/>
</bindings>
<bindings scd="~tns:ApplyType">
<class ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.ApplyType"/>
</bindings>
<bindings scd="~tns:DecisionType">
<typesafeEnumClass ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.DecisionType"/>
</bindings>
<bindings scd="~tns:EffectType">
<typesafeEnumClass ref="oasis.names.tc.xacml._3_0.core.schema.wd_17.EffectType"/>
</bindings>
</bindings>
</bindings>
import java.io.IOException;
import javax.xml.bind.JAXBException;
import net.sf.jsqlparser.JSQLParserException;
import xacmlgen.XacmlGen;
public class PolicyGen {
public static void main(String[] args) throws IOException, JSQLParserException {
public static void main(String[] args) throws IOException, JSQLParserException, JAXBException {
genSAQP();
genIBM();
genOracle();
}
private static void genSAQP() throws IOException, JAXBException {
XacmlGen xg = new XacmlGen("../experiments/src/main/resources/policies");
xg.genPolicies();
}
private static void genIBM() throws IOException, JSQLParserException {
String ibmPolicyFile = "../comparison/ibm/sql/policies.sql";
String oraclePolicyFile = "../comparison/oracle/sql/policies.sql";
DB2Policies db2Policies = new DB2Policies(ibmPolicyFile);
OraclePolicies oraclePolicies = new OraclePolicies(oraclePolicyFile);
db2Policies.parse();
}
private static void genOracle() throws IOException, JSQLParserException {
String oraclePolicyFile = "../comparison/oracle/sql/policies.sql";
OraclePolicies oraclePolicies = new OraclePolicies(oraclePolicyFile);
oraclePolicies.parse();
}
}
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.3.2
// See <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2021.03.31 at 09:29:26 AM CEST
//
package oasis.names.tc.xacml._3_0.core.schema.wd_17;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
/**
* <p>Java class for AdviceExpressionType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* &lt;complexType name="AdviceExpressionType"&gt;
* &lt;complexContent&gt;
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
* &lt;sequence&gt;
* &lt;element ref="{urn:oasis:names:tc:xacml:3.0:core:schema:wd-17}AttributeAssignmentExpression" maxOccurs="unbounded" minOccurs="0"/&gt;
* &lt;/sequence&gt;
* &lt;attribute name="AdviceId" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /&gt;
* &lt;attribute name="AppliesTo" use="required" type="{urn:oasis:names:tc:xacml:3.0:core:schema:wd-17}EffectType" /&gt;
* &lt;/restriction&gt;
* &lt;/complexContent&gt;
* &lt;/complexType&gt;
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AdviceExpressionType", propOrder = {
"attributeAssignmentExpression"
})
public class AdviceExpressionType {
@XmlElement(name = "AttributeAssignmentExpression")
protected List<AttributeAssignmentExpressionType> attributeAssignmentExpression;
@XmlAttribute(name = "AdviceId", required = true)
@XmlSchemaType(name = "anyURI")
protected String adviceId;
@XmlAttribute(name = "AppliesTo", required = true)
protected EffectType appliesTo;
/**
* Gets the value of the attributeAssignmentExpression property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the attributeAssignmentExpression property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAttributeAssignmentExpression().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link AttributeAssignmentExpressionType }
*
*
*/
public List<AttributeAssignmentExpressionType> getAttributeAssignmentExpression() {
if (attributeAssignmentExpression == null) {
attributeAssignmentExpression = new ArrayList<AttributeAssignmentExpressionType>();
}
return this.attributeAssignmentExpression;
}
/**
* Gets the value of the adviceId property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAdviceId() {
return adviceId;
}
/**
* Sets the value of the adviceId property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAdviceId(String value) {
this.adviceId = value;
}
/**
* Gets the value of the appliesTo property.
*
* @return
* possible object is
* {@link EffectType }
*
*/
public EffectType getAppliesTo() {
return appliesTo;
}
/**
* Sets the value of the appliesTo property.
*
* @param value
* allowed object is
* {@link EffectType }
*
*/
public void setAppliesTo(EffectType value) {
this.appliesTo = value;
}