Package com.ibm.sbt.services.client.connections.activities

Source Code of com.ibm.sbt.services.client.connections.activities.Field

/*
* © Copyright IBM Corp. 2014
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.ibm.sbt.services.client.connections.activities;

import org.w3c.dom.Node;

import com.ibm.commons.xml.NamespaceContext;
import com.ibm.commons.xml.xpath.XPathExpression;
import com.ibm.sbt.services.client.base.BaseEntity;
import com.ibm.sbt.services.client.base.BaseService;
import com.ibm.sbt.services.client.base.ConnectionsConstants;
import com.ibm.sbt.services.client.base.datahandlers.FieldEntry;
import com.ibm.sbt.services.client.base.datahandlers.XmlDataHandler;
import com.ibm.sbt.services.client.connections.common.Link;
import com.ibm.sbt.services.client.connections.common.Person;

/**
* @author mwallace
*
*/
public class Field extends BaseEntity {

  /*
   * Defines the field type. The following values are supported:
   */
  static final public String DATE = "date"; //$NON-NLS-1$
  static final public String FILE = "file"; //$NON-NLS-1$
  static final public String LINK = "link"; //$NON-NLS-1$
  static final public String PERSON = "person"; //$NON-NLS-1$
  static final public String TEXT = "text"; //$NON-NLS-1$
 
  /**
   * Default constructor
   */
  public Field() {
  }

  /**
   * Construct Field based on the specified node
   *
   * @param service
   * @param node
   * @param namespaceCtx
   * @param xpathExpression
   */
  public Field(BaseService service, Node node, NamespaceContext namespaceCtx, XPathExpression xpathExpression) {
    super(service, new XmlDataHandler(node, namespaceCtx, xpathExpression));
  }
 
  /**
   * Unique identifier of the field.
   * This identifier is assigned by Activities. You do not need to provide a value for this attribute
   * if you are creating a field, but you must specify a value for this field if you are updating,
   * replacing, or deleting a field.
   * Required when updating, not posting.
   *
   * @return fid
   */
  public String getFid() {
    return getAsString(ActivityXPath.field_fid);
  }
 
  /**
   * Return true if the field is hidden.
   *
   * @return hidden
   */
  public boolean isHidden() {
    if (fields.containsKey(ActivityXPath.field_hidden.getName())){
      return (Boolean)fields.get(ActivityXPath.field_hidden.getName());
    }
    return exists(ActivityXPath.field_hidden);
  }
 
  /**
   * Set the hidden state for this field.
   *
   * @param hidden
   */
  public void setHidden(boolean hidden) {
    setAsBoolean(ActivityXPath.field_hidden, hidden);
  }
 
  /**
   * This name is displayed in the entry as the field label, similar to the Title or Description field
   * labels that are included in the entry by default. Limited to 64 bytes.
   *
   * @return name
   */
  public String getName() {
    return getAsString(ActivityXPath.field_name);
  }
 
  /**
   * Set the name for this field.
   *
   * @param name
   */
  public void setName(String name) {
    setAsString(ActivityXPath.field_name, name);
  }
 
  public boolean hasPosition() {
    return getAsLong(ActivityXPath.field_position) != null;
  }
 
  /**
   * Position of the field in the containing Activity entry's array of fields.
   * Use numbers separated by large increments to allow for repositioning.
   * For example, use 1000, 2000, 3000, and so on.
   *
   * @return
   */
  public long getPosition() {
    return getAsLong(ActivityXPath.field_position);
  }
 
  /**
   * Set the position for this field.
   *
   * @param position
   */
  public void setPosition(long position) {
    setAsLong(ActivityXPath.field_position, position);
  }
 
  /**
   * Defines the field type. The following values are supported:
   *    date
   *    file
   *    link
   *    person
   *    text
   *
   * @return
   */
  public String getType() {
    return getAsString(ActivityXPath.field_type);
  }

  /**
   * Create a person from the specified node
   */
  public Person createPerson(Node node, FieldEntry fieldEntry) {
    return new Person(getService(), new XmlDataHandler(node, ConnectionsConstants.nameSpaceCtx, (XPathExpression)fieldEntry.getPath()));
  }
   
  /**
   * Create a link to from the specified node
   */
  protected Link createLink(Node node, FieldEntry fieldEntry) {
    XmlDataHandler dataHandler = new XmlDataHandler(node, ConnectionsConstants.nameSpaceCtx, (XPathExpression)fieldEntry.getPath());
    if (dataHandler.getData() != null) {
      return new Link(getService(), dataHandler);
    }
    return null;
  }
 
}
TOP

Related Classes of com.ibm.sbt.services.client.connections.activities.Field

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.