All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sforce.soap.metadata.ActionLinkTemplate Maven / Gradle / Ivy

There is a newer version: 62.0.0
Show newest version
package com.sforce.soap.metadata;

/**
 * This is a generated class for the SObject Enterprise API.
 * Do not edit this file, as your changes will be lost.
 */
public class ActionLinkTemplate implements com.sforce.ws.bind.XMLizable {

    /**
     * Constructor
     */
    public ActionLinkTemplate() {}

    /* Cache the typeInfo instead of declaring static fields throughout*/
    private transient java.util.Map typeInfoCache = new java.util.HashMap();
    private com.sforce.ws.bind.TypeInfo _lookupTypeInfo(String fieldName, String namespace, String name, String typeNS, String type, int minOcc, int maxOcc, boolean elementForm) {
      com.sforce.ws.bind.TypeInfo typeInfo = typeInfoCache.get(fieldName);
      if (typeInfo == null) {
        typeInfo = new com.sforce.ws.bind.TypeInfo(namespace, name, typeNS, type, minOcc, maxOcc, elementForm);
        typeInfoCache.put(fieldName, typeInfo);
      }
      return typeInfo;
    }

    /**
     * element : actionUrl of type {http://www.w3.org/2001/XMLSchema}string
     * java type: java.lang.String
     */
    private boolean actionUrl__is_set = false;

    private java.lang.String actionUrl;

    public java.lang.String getActionUrl() {
      return actionUrl;
    }

    public void setActionUrl(java.lang.String actionUrl) {
      this.actionUrl = actionUrl;
      actionUrl__is_set = true;
    }

    protected void setActionUrl(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.verifyElement(__in, _lookupTypeInfo("actionUrl", "http://soap.sforce.com/2006/04/metadata","actionUrl","http://www.w3.org/2001/XMLSchema","string",1,1,true))) {
        setActionUrl(__typeMapper.readString(__in, _lookupTypeInfo("actionUrl", "http://soap.sforce.com/2006/04/metadata","actionUrl","http://www.w3.org/2001/XMLSchema","string",1,1,true), java.lang.String.class));
      }
    }

    private void writeFieldActionUrl(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("actionUrl", "http://soap.sforce.com/2006/04/metadata","actionUrl","http://www.w3.org/2001/XMLSchema","string",1,1,true), actionUrl, actionUrl__is_set);
    }

    /**
     * element : headers of type {http://www.w3.org/2001/XMLSchema}string
     * java type: java.lang.String
     */
    private boolean headers__is_set = false;

    private java.lang.String headers;

    public java.lang.String getHeaders() {
      return headers;
    }

    public void setHeaders(java.lang.String headers) {
      this.headers = headers;
      headers__is_set = true;
    }

    protected void setHeaders(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.isElement(__in, _lookupTypeInfo("headers", "http://soap.sforce.com/2006/04/metadata","headers","http://www.w3.org/2001/XMLSchema","string",0,1,true))) {
        setHeaders(__typeMapper.readString(__in, _lookupTypeInfo("headers", "http://soap.sforce.com/2006/04/metadata","headers","http://www.w3.org/2001/XMLSchema","string",0,1,true), java.lang.String.class));
      }
    }

    private void writeFieldHeaders(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("headers", "http://soap.sforce.com/2006/04/metadata","headers","http://www.w3.org/2001/XMLSchema","string",0,1,true), headers, headers__is_set);
    }

    /**
     * element : isConfirmationRequired of type {http://www.w3.org/2001/XMLSchema}boolean
     * java type: boolean
     */
    private boolean isConfirmationRequired__is_set = false;

    private boolean isConfirmationRequired;

    public boolean getIsConfirmationRequired() {
      return isConfirmationRequired;
    }

    public boolean isIsConfirmationRequired() {
      return isConfirmationRequired;
    }

    public void setIsConfirmationRequired(boolean isConfirmationRequired) {
      this.isConfirmationRequired = isConfirmationRequired;
      isConfirmationRequired__is_set = true;
    }

    protected void setIsConfirmationRequired(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.verifyElement(__in, _lookupTypeInfo("isConfirmationRequired", "http://soap.sforce.com/2006/04/metadata","isConfirmationRequired","http://www.w3.org/2001/XMLSchema","boolean",1,1,true))) {
        setIsConfirmationRequired(__typeMapper.readBoolean(__in, _lookupTypeInfo("isConfirmationRequired", "http://soap.sforce.com/2006/04/metadata","isConfirmationRequired","http://www.w3.org/2001/XMLSchema","boolean",1,1,true), boolean.class));
      }
    }

    private void writeFieldIsConfirmationRequired(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("isConfirmationRequired", "http://soap.sforce.com/2006/04/metadata","isConfirmationRequired","http://www.w3.org/2001/XMLSchema","boolean",1,1,true), isConfirmationRequired, isConfirmationRequired__is_set);
    }

    /**
     * element : isGroupDefault of type {http://www.w3.org/2001/XMLSchema}boolean
     * java type: boolean
     */
    private boolean isGroupDefault__is_set = false;

    private boolean isGroupDefault;

    public boolean getIsGroupDefault() {
      return isGroupDefault;
    }

    public boolean isIsGroupDefault() {
      return isGroupDefault;
    }

    public void setIsGroupDefault(boolean isGroupDefault) {
      this.isGroupDefault = isGroupDefault;
      isGroupDefault__is_set = true;
    }

    protected void setIsGroupDefault(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.verifyElement(__in, _lookupTypeInfo("isGroupDefault", "http://soap.sforce.com/2006/04/metadata","isGroupDefault","http://www.w3.org/2001/XMLSchema","boolean",1,1,true))) {
        setIsGroupDefault(__typeMapper.readBoolean(__in, _lookupTypeInfo("isGroupDefault", "http://soap.sforce.com/2006/04/metadata","isGroupDefault","http://www.w3.org/2001/XMLSchema","boolean",1,1,true), boolean.class));
      }
    }

    private void writeFieldIsGroupDefault(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("isGroupDefault", "http://soap.sforce.com/2006/04/metadata","isGroupDefault","http://www.w3.org/2001/XMLSchema","boolean",1,1,true), isGroupDefault, isGroupDefault__is_set);
    }

    /**
     * element : label of type {http://www.w3.org/2001/XMLSchema}string
     * java type: java.lang.String
     */
    private boolean label__is_set = false;

    private java.lang.String label;

    public java.lang.String getLabel() {
      return label;
    }

    public void setLabel(java.lang.String label) {
      this.label = label;
      label__is_set = true;
    }

    protected void setLabel(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.isElement(__in, _lookupTypeInfo("label", "http://soap.sforce.com/2006/04/metadata","label","http://www.w3.org/2001/XMLSchema","string",0,1,true))) {
        setLabel(__typeMapper.readString(__in, _lookupTypeInfo("label", "http://soap.sforce.com/2006/04/metadata","label","http://www.w3.org/2001/XMLSchema","string",0,1,true), java.lang.String.class));
      }
    }

    private void writeFieldLabel(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("label", "http://soap.sforce.com/2006/04/metadata","label","http://www.w3.org/2001/XMLSchema","string",0,1,true), label, label__is_set);
    }

    /**
     * element : labelKey of type {http://www.w3.org/2001/XMLSchema}string
     * java type: java.lang.String
     */
    private boolean labelKey__is_set = false;

    private java.lang.String labelKey;

    public java.lang.String getLabelKey() {
      return labelKey;
    }

    public void setLabelKey(java.lang.String labelKey) {
      this.labelKey = labelKey;
      labelKey__is_set = true;
    }

    protected void setLabelKey(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.verifyElement(__in, _lookupTypeInfo("labelKey", "http://soap.sforce.com/2006/04/metadata","labelKey","http://www.w3.org/2001/XMLSchema","string",1,1,true))) {
        setLabelKey(__typeMapper.readString(__in, _lookupTypeInfo("labelKey", "http://soap.sforce.com/2006/04/metadata","labelKey","http://www.w3.org/2001/XMLSchema","string",1,1,true), java.lang.String.class));
      }
    }

    private void writeFieldLabelKey(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("labelKey", "http://soap.sforce.com/2006/04/metadata","labelKey","http://www.w3.org/2001/XMLSchema","string",1,1,true), labelKey, labelKey__is_set);
    }

    /**
     * element : linkType of type {http://soap.sforce.com/2006/04/metadata}ActionLinkType
     * java type: com.sforce.soap.metadata.ActionLinkType
     */
    private boolean linkType__is_set = false;

    private com.sforce.soap.metadata.ActionLinkType linkType;

    public com.sforce.soap.metadata.ActionLinkType getLinkType() {
      return linkType;
    }

    public void setLinkType(com.sforce.soap.metadata.ActionLinkType linkType) {
      this.linkType = linkType;
      linkType__is_set = true;
    }

    protected void setLinkType(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.verifyElement(__in, _lookupTypeInfo("linkType", "http://soap.sforce.com/2006/04/metadata","linkType","http://soap.sforce.com/2006/04/metadata","ActionLinkType",1,1,true))) {
        setLinkType((com.sforce.soap.metadata.ActionLinkType)__typeMapper.readObject(__in, _lookupTypeInfo("linkType", "http://soap.sforce.com/2006/04/metadata","linkType","http://soap.sforce.com/2006/04/metadata","ActionLinkType",1,1,true), com.sforce.soap.metadata.ActionLinkType.class));
      }
    }

    private void writeFieldLinkType(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("linkType", "http://soap.sforce.com/2006/04/metadata","linkType","http://soap.sforce.com/2006/04/metadata","ActionLinkType",1,1,true), linkType, linkType__is_set);
    }

    /**
     * element : method of type {http://soap.sforce.com/2006/04/metadata}ActionLinkHttpMethod
     * java type: com.sforce.soap.metadata.ActionLinkHttpMethod
     */
    private boolean method__is_set = false;

    private com.sforce.soap.metadata.ActionLinkHttpMethod method;

    public com.sforce.soap.metadata.ActionLinkHttpMethod getMethod() {
      return method;
    }

    public void setMethod(com.sforce.soap.metadata.ActionLinkHttpMethod method) {
      this.method = method;
      method__is_set = true;
    }

    protected void setMethod(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.verifyElement(__in, _lookupTypeInfo("method", "http://soap.sforce.com/2006/04/metadata","method","http://soap.sforce.com/2006/04/metadata","ActionLinkHttpMethod",1,1,true))) {
        setMethod((com.sforce.soap.metadata.ActionLinkHttpMethod)__typeMapper.readObject(__in, _lookupTypeInfo("method", "http://soap.sforce.com/2006/04/metadata","method","http://soap.sforce.com/2006/04/metadata","ActionLinkHttpMethod",1,1,true), com.sforce.soap.metadata.ActionLinkHttpMethod.class));
      }
    }

    private void writeFieldMethod(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("method", "http://soap.sforce.com/2006/04/metadata","method","http://soap.sforce.com/2006/04/metadata","ActionLinkHttpMethod",1,1,true), method, method__is_set);
    }

    /**
     * element : position of type {http://www.w3.org/2001/XMLSchema}int
     * java type: int
     */
    private boolean position__is_set = false;

    private int position;

    public int getPosition() {
      return position;
    }

    public void setPosition(int position) {
      this.position = position;
      position__is_set = true;
    }

    protected void setPosition(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.verifyElement(__in, _lookupTypeInfo("position", "http://soap.sforce.com/2006/04/metadata","position","http://www.w3.org/2001/XMLSchema","int",1,1,true))) {
        setPosition((int)__typeMapper.readInt(__in, _lookupTypeInfo("position", "http://soap.sforce.com/2006/04/metadata","position","http://www.w3.org/2001/XMLSchema","int",1,1,true), int.class));
      }
    }

    private void writeFieldPosition(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("position", "http://soap.sforce.com/2006/04/metadata","position","http://www.w3.org/2001/XMLSchema","int",1,1,true), position, position__is_set);
    }

    /**
     * element : requestBody of type {http://www.w3.org/2001/XMLSchema}string
     * java type: java.lang.String
     */
    private boolean requestBody__is_set = false;

    private java.lang.String requestBody;

    public java.lang.String getRequestBody() {
      return requestBody;
    }

    public void setRequestBody(java.lang.String requestBody) {
      this.requestBody = requestBody;
      requestBody__is_set = true;
    }

    protected void setRequestBody(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.isElement(__in, _lookupTypeInfo("requestBody", "http://soap.sforce.com/2006/04/metadata","requestBody","http://www.w3.org/2001/XMLSchema","string",0,1,true))) {
        setRequestBody(__typeMapper.readString(__in, _lookupTypeInfo("requestBody", "http://soap.sforce.com/2006/04/metadata","requestBody","http://www.w3.org/2001/XMLSchema","string",0,1,true), java.lang.String.class));
      }
    }

    private void writeFieldRequestBody(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("requestBody", "http://soap.sforce.com/2006/04/metadata","requestBody","http://www.w3.org/2001/XMLSchema","string",0,1,true), requestBody, requestBody__is_set);
    }

    /**
     * element : userAlias of type {http://www.w3.org/2001/XMLSchema}string
     * java type: java.lang.String
     */
    private boolean userAlias__is_set = false;

    private java.lang.String userAlias;

    public java.lang.String getUserAlias() {
      return userAlias;
    }

    public void setUserAlias(java.lang.String userAlias) {
      this.userAlias = userAlias;
      userAlias__is_set = true;
    }

    protected void setUserAlias(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.isElement(__in, _lookupTypeInfo("userAlias", "http://soap.sforce.com/2006/04/metadata","userAlias","http://www.w3.org/2001/XMLSchema","string",0,1,true))) {
        setUserAlias(__typeMapper.readString(__in, _lookupTypeInfo("userAlias", "http://soap.sforce.com/2006/04/metadata","userAlias","http://www.w3.org/2001/XMLSchema","string",0,1,true), java.lang.String.class));
      }
    }

    private void writeFieldUserAlias(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("userAlias", "http://soap.sforce.com/2006/04/metadata","userAlias","http://www.w3.org/2001/XMLSchema","string",0,1,true), userAlias, userAlias__is_set);
    }

    /**
     * element : userVisibility of type {http://soap.sforce.com/2006/04/metadata}ActionLinkUserVisibility
     * java type: com.sforce.soap.metadata.ActionLinkUserVisibility
     */
    private boolean userVisibility__is_set = false;

    private com.sforce.soap.metadata.ActionLinkUserVisibility userVisibility;

    public com.sforce.soap.metadata.ActionLinkUserVisibility getUserVisibility() {
      return userVisibility;
    }

    public void setUserVisibility(com.sforce.soap.metadata.ActionLinkUserVisibility userVisibility) {
      this.userVisibility = userVisibility;
      userVisibility__is_set = true;
    }

    protected void setUserVisibility(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __in.peekTag();
      if (__typeMapper.verifyElement(__in, _lookupTypeInfo("userVisibility", "http://soap.sforce.com/2006/04/metadata","userVisibility","http://soap.sforce.com/2006/04/metadata","ActionLinkUserVisibility",1,1,true))) {
        setUserVisibility((com.sforce.soap.metadata.ActionLinkUserVisibility)__typeMapper.readObject(__in, _lookupTypeInfo("userVisibility", "http://soap.sforce.com/2006/04/metadata","userVisibility","http://soap.sforce.com/2006/04/metadata","ActionLinkUserVisibility",1,1,true), com.sforce.soap.metadata.ActionLinkUserVisibility.class));
      }
    }

    private void writeFieldUserVisibility(com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      __typeMapper.writeObject(__out, _lookupTypeInfo("userVisibility", "http://soap.sforce.com/2006/04/metadata","userVisibility","http://soap.sforce.com/2006/04/metadata","ActionLinkUserVisibility",1,1,true), userVisibility, userVisibility__is_set);
    }

    /**
     */
    @Override
    public void write(javax.xml.namespace.QName __element,
        com.sforce.ws.parser.XmlOutputStream __out, com.sforce.ws.bind.TypeMapper __typeMapper)
        throws java.io.IOException {
      __out.writeStartTag(__element.getNamespaceURI(), __element.getLocalPart());
      writeFields(__out, __typeMapper);
      __out.writeEndTag(__element.getNamespaceURI(), __element.getLocalPart());
    }

    protected void writeFields(com.sforce.ws.parser.XmlOutputStream __out,
         com.sforce.ws.bind.TypeMapper __typeMapper)
         throws java.io.IOException {
       writeFields1(__out, __typeMapper);
    }

    @Override
    public void load(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      __typeMapper.consumeStartTag(__in);
      loadFields(__in, __typeMapper);
      __typeMapper.consumeEndTag(__in);
    }

    protected void loadFields(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
        loadFields1(__in, __typeMapper);
    }

    @Override
    public String toString() {
      java.lang.StringBuilder sb = new java.lang.StringBuilder();
      sb.append("[ActionLinkTemplate ");
      toString1(sb);

      sb.append("]\n");
      return sb.toString();
    }

    private void toStringHelper(StringBuilder sb, String name, Object value) {
      sb.append(' ').append(name).append("='").append(com.sforce.ws.util.Verbose.toString(value)).append("'\n");
    }

    private void writeFields1(com.sforce.ws.parser.XmlOutputStream __out,
         com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException {
      writeFieldActionUrl(__out, __typeMapper);
      writeFieldHeaders(__out, __typeMapper);
      writeFieldIsConfirmationRequired(__out, __typeMapper);
      writeFieldIsGroupDefault(__out, __typeMapper);
      writeFieldLabel(__out, __typeMapper);
      writeFieldLabelKey(__out, __typeMapper);
      writeFieldLinkType(__out, __typeMapper);
      writeFieldMethod(__out, __typeMapper);
      writeFieldPosition(__out, __typeMapper);
      writeFieldRequestBody(__out, __typeMapper);
      writeFieldUserAlias(__out, __typeMapper);
      writeFieldUserVisibility(__out, __typeMapper);
    }

    private void loadFields1(com.sforce.ws.parser.XmlInputStream __in,
        com.sforce.ws.bind.TypeMapper __typeMapper) throws java.io.IOException, com.sforce.ws.ConnectionException {
      setActionUrl(__in, __typeMapper);
      setHeaders(__in, __typeMapper);
      setIsConfirmationRequired(__in, __typeMapper);
      setIsGroupDefault(__in, __typeMapper);
      setLabel(__in, __typeMapper);
      setLabelKey(__in, __typeMapper);
      setLinkType(__in, __typeMapper);
      setMethod(__in, __typeMapper);
      setPosition(__in, __typeMapper);
      setRequestBody(__in, __typeMapper);
      setUserAlias(__in, __typeMapper);
      setUserVisibility(__in, __typeMapper);
    }

    private void toString1(StringBuilder sb) {
      toStringHelper(sb, "actionUrl", actionUrl);
      toStringHelper(sb, "headers", headers);
      toStringHelper(sb, "isConfirmationRequired", isConfirmationRequired);
      toStringHelper(sb, "isGroupDefault", isGroupDefault);
      toStringHelper(sb, "label", label);
      toStringHelper(sb, "labelKey", labelKey);
      toStringHelper(sb, "linkType", linkType);
      toStringHelper(sb, "method", method);
      toStringHelper(sb, "position", position);
      toStringHelper(sb, "requestBody", requestBody);
      toStringHelper(sb, "userAlias", userAlias);
      toStringHelper(sb, "userVisibility", userVisibility);
    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy