wt.workflow.robots
Class WfURLRobot

java.lang.Object
  extended bywt.fc.WTObject
      extended bywt.enterprise.Simple
          extended bywt.workflow.engine.WfExecutionObject
              extended bywt.workflow.engine.WfActivity
                  extended bywt.workflow.robots.WfRobotActivity
                      extended bywt.workflow.robots.WfURLRobot
All Implemented Interfaces:
AccessControlled, BusinessInformation, DisplayIdentification, DomainAdministered, Externalizable, NetFactor, Notifiable, ObjectMappable, Persistable, RecentlyVisited, Serializable, WfNode, WTContained

public class WfURLRobot
extends WfRobotActivity
implements Externalizable

Runtime execution of the URl is performed here.

Use the newWfURLRobot static factory method(s), not the WfURLRobot constructor, to construct instances of this class. Instances must be constructed using the static factory(s), in order to ensure proper initialization of the instance.



Supported API: false

Extendable: false

See Also:
Serialized Form

Nested Class Summary
(package private)  class WfURLRobot.GetError
          Runnable class that implements the consumption of the error (stderr) from the application.
(package private)  class WfURLRobot.GetOutput
          Runnable class that implements the consumption of the output (stdout) from the application.
 
Field Summary
private static boolean ADD_BASE_HREF
           
private static String CLASSNAME
           
private static String encoding
           
private static char END_VARIABLE
           
private  String errorMsg
           
private static char ESCAPE_CHARACTER
           
static String EXEC_URL
          Label for the attribute.
private static int EXEC_URL_UPPER_LIMIT
           
private  String execURL
           
static long EXTERNALIZATION_VERSION_UID
           
private static char FILE_SEPARATOR
           
private static int HTTP_CONTINUE
           
private static int HTTP_SWITCHING_PROTOCOLS
           
static String HTTPRESPONSE_CODE
          Label for the attribute.
static String HTTPRESPONSE_MESSAGE
          Label for the attribute.
private static int HTTPRESPONSE_MESSAGE_UPPER_LIMIT
           
private  int HTTPResponseCode
           
private  String HTTPResponseMessage
           
private static String LOCAL_HOST
           
private static int MESSAGE_SIZE
           
private static int NRETRIES
           
protected static long OLD_FORMAT_VERSION_UID
           
private  String outputMsg
           
private  WfProcess process
           
private static String RESOURCE
           
(package private) static long serialVersionUID
           
private static int SLEEPTIME
           
private static char START_VARIABLE
           
private  Properties system_properties
           
private  String taskResponseVariable
           
private  WfURLRobotTemplate template
           
private static boolean VERBOSE
           
 
Fields inherited from class wt.workflow.engine.WfActivity
INPUT_VARIABLE_MAP, OUTPUT_VARIABLE_MAP, ROUTER_TYPE, TRIP_COUNT, USER_EVENT_LIST
 
Fields inherited from class wt.workflow.engine.WfExecutionObject
AD_SQEN, ALERT_TIME, CHANGE_STATE_TIME, CONTAINER, CONTEXT, D_SQEN, DEADLINE, DEADLINE_DURATION, DESCRIPTION, END_TIME, EVENT_CONFIGURATION, EXCEPTION_MESSAGE, KEY, NAME, PD_SQEN, PRIORITY, START_TIME, STATE, SUSPEND_TIME, TEMPLATE, TIME_PAST_DEADLINE, TIME_TO_DEADLINE, TIME_TO_START
 
Fields inherited from class wt.enterprise.Simple
 
Fields inherited from class wt.fc.WTObject
CREATE_TIMESTAMP, MODIFY_TIMESTAMP
 
Fields inherited from interface wt.workflow.engine.WfNode
PARENT_PROCESS_REF
 
Fields inherited from interface wt.inf.container.WTContained
CONTAINER_ID, CONTAINER_NAME, CONTAINER_REFERENCE
 
Fields inherited from interface wt.fc.Persistable
IDENTITY, PERSIST_INFO, TYPE
 
Fields inherited from interface wt.admin.DomainAdministered
DOMAIN_REF, INHERITED_DOMAIN
 
Fields inherited from interface wt.fc.BusinessInformation
BUSINESS_TYPE, IDENTITY
 
Fields inherited from interface wt.notify.Notifiable
EVENT_SET
 
Fields inherited from interface wt.identity.DisplayIdentification
DISPLAY_IDENTIFIER, DISPLAY_IDENTITY, DISPLAY_TYPE
 
Constructor Summary
WfURLRobot()
           
 
Method Summary
 String dispatchURL(URL url)
          

Supported API: false
 void dispenseResponse(String http_response)
          

Supported API: false
 boolean equals(Object obj)
          Indicates whether the given object is equal to this object from a persistence perspective, by comparing the two objects ObjectIdentifiers.
private  void execURLValidate(String a_ExecURL)
           
 String expandURLVariables(String url)
          Produce an URL from the String representation, taskURL, from our template.
 String getConceptualClassname()
          Deprecated.  
 ProcessData getContext()
          Returns the parent process' variables.
protected  String getEncoding()
           
 String getExecURL()
          Gets the value of the attribute: EXEC_URL.
 int getHTTPResponseCode()
          Gets the value of the attribute: HTTPRESPONSE_CODE.
 String getHTTPResponseMessage()
          Gets the value of the attribute: HTTPRESPONSE_MESSAGE.
private  String getMessage(InputStream stream)
          Returns message from input stream passed as argument
private  String getStringRepresentation(Object value)
          Constructs a String representation of the object passed as parameter.
 int hashCode()
          Returns a hash code for this object based upon its ObjectIdentifier.
private  void HTTPResponseMessageValidate(String a_HTTPResponseMessage)
           
static WfURLRobot newWfURLRobot(WfContainer container)
          Constructs an URL robot in a a given container.
 void readExternal(ObjectInput input)
          Reads the non-transient fields of this class from an external source.
 void readExternal(PersistentRetrieveIfc input)
          Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.
private  boolean readOldVersion(ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source, which is not the current version.
protected  boolean readVersion(WfURLRobot thisObject, ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source.
private  WfURLRobot refreshRobot()
          Refreshes robot.
 void run()
          

Supported API: false
 void setExecURL(String a_ExecURL)
          Sets the value of the attribute: EXEC_URL.
 void setHTTPResponseCode(int a_HTTPResponseCode)
          Sets the value of the attribute: HTTPRESPONSE_CODE.
 void setHTTPResponseMessage(String a_HTTPResponseMessage)
          Sets the value of the attribute: HTTPRESPONSE_MESSAGE.
 String toString()
          Returns a string representation of the execution object.
 void writeExternal(ObjectOutput output)
          Writes the non-transient fields of this class to an external source.
 void writeExternal(PersistentStoreIfc output)
          Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.
 
Methods inherited from class wt.workflow.robots.WfRobotActivity
changeState, readVersion
 
Methods inherited from class wt.workflow.engine.WfActivity
changeState, changeState, checkSuspendedProcess, complete, computeDeadline, computeDeadline, computeTimeToStart, deleteActivity, doAbortTransition, doCompleteTransition, doDisableTransition, doEnableTransition, doResetTransition, doResumeTransition, doSkipTransition, doStartTransition, doSuspendTransition, doTerminateTransition, doWork, evaluateRouterExpression, getInputVariableMap, getOutputVariableMap, getParentProcess, getParentProcessReadOnly, getParentProcessRef, getRouterEvent, getRouterType, getTemplateReference, getTripCount, getUserEventList, getWfException, hasRouterExpression, initialize, propagateEvent, readValues, readVersion, registerEvent, setInputVariableMap, setOutputVariableMap, setParentProcessRef, setRouterType, setTripCount, setUserEventList, updateWfAssigneeNotification, updateWfDueDate, updateWfDuration, writeValues
 
Methods inherited from class wt.workflow.engine.WfExecutionObject
calculateTimePastDeadline, calculateTimeToDeadline, changeDeadline, changeStateAttributes, computeTimePastDeadline, computeTimeToDeadline, evaluateExpression, getAdSQEN, getAlertTime, getChangeStateTime, getContainer, getContainerName, getContainerReference, getDeadline, getDeadlineDuration, getDescription, getDSQEN, getEndTime, getEventConfiguration, getIdentity, getKey, getName, getPdSQEN, getPriority, getStartTime, getState, getSuspendTime, getTemplate, getTimePastDeadline, getTimeToDeadline, getTimeToStart, getVarDueDate, getVarDuration, getVarNotification, initialize, initialize, isOverdue, readVersion, removeDeadlineQueueEntries, resetValues, setAdSQEN, setAlertTime, setChangeStateTime, setContainer, setContainerReference, setContext, setDeadline, setDeadlineDuration, setDescription, setDSQEN, setEndTime, setEventConfiguration, setKey, setName, setPdSQEN, setPriority, setStartTime, setState, setSuspendTime, setTemplate, setTimePastDeadline, setTimeToDeadline, setTimeToStart, validTransitions
 
Methods inherited from class wt.enterprise.Simple
getBusinessType, getDomainRef, getEventSet, isInheritedDomain, readVersion, setDomainRef, setEventSet, setInheritedDomain
 
Methods inherited from class wt.fc.WTObject
checkAttributes, duplicate, finalize, getClassInfo, getCreateTimestamp, getDisplayIdentifier, getDisplayIdentity, getDisplayType, getModifyTimestamp, getPersistInfo, getType, readVersion, setPersistInfo
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface wt.fc.Persistable
checkAttributes, getPersistInfo, getType, setPersistInfo
 
Methods inherited from interface wt.fc.NetFactor
getClassInfo
 

Field Detail

RESOURCE

private static final String RESOURCE
See Also:
Constant Field Values

CLASSNAME

private static final String CLASSNAME

HTTPRESPONSE_CODE

public static final String HTTPRESPONSE_CODE
Label for the attribute.

Supported API: false

See Also:
Constant Field Values

HTTPResponseCode

private int HTTPResponseCode

HTTPRESPONSE_MESSAGE

public static final String HTTPRESPONSE_MESSAGE
Label for the attribute.

Supported API: false

See Also:
Constant Field Values

HTTPRESPONSE_MESSAGE_UPPER_LIMIT

private static int HTTPRESPONSE_MESSAGE_UPPER_LIMIT

HTTPResponseMessage

private String HTTPResponseMessage

EXEC_URL

public static final String EXEC_URL
Label for the attribute.

Supported API: false

See Also:
Constant Field Values

EXEC_URL_UPPER_LIMIT

private static int EXEC_URL_UPPER_LIMIT

execURL

private String execURL

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

EXTERNALIZATION_VERSION_UID

public static final long EXTERNALIZATION_VERSION_UID
See Also:
Constant Field Values

OLD_FORMAT_VERSION_UID

protected static final long OLD_FORMAT_VERSION_UID
See Also:
Constant Field Values

MESSAGE_SIZE

private static final int MESSAGE_SIZE
See Also:
Constant Field Values

START_VARIABLE

private static final char START_VARIABLE
See Also:
Constant Field Values

END_VARIABLE

private static final char END_VARIABLE
See Also:
Constant Field Values

ESCAPE_CHARACTER

private static final char ESCAPE_CHARACTER
See Also:
Constant Field Values

FILE_SEPARATOR

private static final char FILE_SEPARATOR
See Also:
Constant Field Values

VERBOSE

private static boolean VERBOSE

encoding

private static final String encoding
See Also:
Constant Field Values

errorMsg

private transient String errorMsg

outputMsg

private transient String outputMsg

system_properties

private transient Properties system_properties

HTTP_CONTINUE

private static final int HTTP_CONTINUE
See Also:
Constant Field Values

HTTP_SWITCHING_PROTOCOLS

private static final int HTTP_SWITCHING_PROTOCOLS
See Also:
Constant Field Values

ADD_BASE_HREF

private static boolean ADD_BASE_HREF

LOCAL_HOST

private static String LOCAL_HOST

process

private transient WfProcess process

template

private transient WfURLRobotTemplate template

taskResponseVariable

private transient String taskResponseVariable

NRETRIES

private static final int NRETRIES
See Also:
Constant Field Values

SLEEPTIME

private static final int SLEEPTIME
See Also:
Constant Field Values
Constructor Detail

WfURLRobot

public WfURLRobot()
Method Detail

writeExternal

public void writeExternal(ObjectOutput output)
                   throws IOException
Writes the non-transient fields of this class to an external source.

Supported API: false

Specified by:
writeExternal in interface Externalizable
Overrides:
writeExternal in class WfRobotActivity
Parameters:
output -
Throws:
IOException

readExternal

public void readExternal(ObjectInput input)
                  throws IOException,
                         ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Specified by:
readExternal in interface Externalizable
Overrides:
readExternal in class WfRobotActivity
Parameters:
input -
Throws:
IOException
ClassNotFoundException

readVersion

protected boolean readVersion(WfURLRobot thisObject,
                              ObjectInput input,
                              long readSerialVersionUID,
                              boolean passThrough,
                              boolean superDone)
                       throws IOException,
                              ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Parameters:
thisObject -
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

readOldVersion

private boolean readOldVersion(ObjectInput input,
                               long readSerialVersionUID,
                               boolean passThrough,
                               boolean superDone)
                        throws IOException,
                               ClassNotFoundException
Reads the non-transient fields of this class from an external source, which is not the current version.

Parameters:
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

writeExternal

public void writeExternal(PersistentStoreIfc output)
                   throws SQLException,
                          DatastoreException
Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
writeExternal in interface ObjectMappable
Overrides:
writeExternal in class WfRobotActivity
Parameters:
output -
Throws:
SQLException
DatastoreException

readExternal

public void readExternal(PersistentRetrieveIfc input)
                  throws SQLException,
                         DatastoreException
Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
readExternal in interface ObjectMappable
Overrides:
readExternal in class WfRobotActivity
Parameters:
input -
Throws:
SQLException
DatastoreException

getConceptualClassname

public String getConceptualClassname()
Deprecated.  

Returns the conceptual (modeled) name for the class.

Supported API: false

Specified by:
getConceptualClassname in interface NetFactor
Returns:
String

getHTTPResponseCode

public int getHTTPResponseCode()
Gets the value of the attribute: HTTPRESPONSE_CODE.

Supported API: false

Returns:
int

setHTTPResponseCode

public void setHTTPResponseCode(int a_HTTPResponseCode)
                         throws WTPropertyVetoException
Sets the value of the attribute: HTTPRESPONSE_CODE.

Supported API: false

Parameters:
a_HTTPResponseCode -
Throws:
WTPropertyVetoException

getHTTPResponseMessage

public String getHTTPResponseMessage()
Gets the value of the attribute: HTTPRESPONSE_MESSAGE.

Supported API: false

Returns:
String

setHTTPResponseMessage

public void setHTTPResponseMessage(String a_HTTPResponseMessage)
                            throws WTPropertyVetoException
Sets the value of the attribute: HTTPRESPONSE_MESSAGE.

Supported API: false

Parameters:
a_HTTPResponseMessage -
Throws:
WTPropertyVetoException

HTTPResponseMessageValidate

private void HTTPResponseMessageValidate(String a_HTTPResponseMessage)
                                  throws WTPropertyVetoException
Parameters:
a_HTTPResponseMessage -
Throws:
WTPropertyVetoException

getExecURL

public String getExecURL()
Gets the value of the attribute: EXEC_URL.

Supported API: false

Returns:
String

setExecURL

public void setExecURL(String a_ExecURL)
                throws WTPropertyVetoException
Sets the value of the attribute: EXEC_URL.

Supported API: false

Parameters:
a_ExecURL -
Throws:
WTPropertyVetoException

execURLValidate

private void execURLValidate(String a_ExecURL)
                      throws WTPropertyVetoException
Parameters:
a_ExecURL -
Throws:
WTPropertyVetoException

run

public void run()
         throws WTException


Supported API: false

Specified by:
run in class WfRobotActivity
Throws:
WTException

toString

public String toString()
Returns a string representation of the execution object. Used mostly for debugging purposes: not appropriate for GUI use.

Supported API: false

Overrides:
toString in class WfRobotActivity
Returns:
String

expandURLVariables

public String expandURLVariables(String url)
Produce an URL from the String representation, taskURL, from our template. The taskURL may contain references to variables to be expanded and replaced in the URL. These variable names must be surrounded by a pair of curly backets ('{' and '}').

Supported API: false

Parameters:
url -
Returns:
String

dispatchURL

public String dispatchURL(URL url)


Supported API: false

Parameters:
url -
Returns:
String

dispenseResponse

public void dispenseResponse(String http_response)


Supported API: false

Parameters:
http_response -

getContext

public ProcessData getContext()
Returns the parent process' variables.

Supported API: false

Overrides:
getContext in class WfExecutionObject
Returns:
ProcessData

newWfURLRobot

public static WfURLRobot newWfURLRobot(WfContainer container)
                                throws WTException
Constructs an URL robot in a a given container.

Supported API: false

Parameters:
container -
Returns:
WfURLRobot
Throws:
WTException

equals

public boolean equals(Object obj)
Indicates whether the given object is equal to this object from a persistence perspective, by comparing the two objects ObjectIdentifiers. Changed or stale copies are still considered equal by this method. Delegates to PersistenceHelper.equals(Persistable,Object).

Warning: Certain core Windchill operations may depend upon equals being ObjectIdentifier-based. Changes to the default implementation should be done with care, if at all.

Supported API: false

Overrides:
equals in class WfRobotActivity
Parameters:
obj -
Returns:
boolean

hashCode

public int hashCode()
Returns a hash code for this object based upon its ObjectIdentifier. Delegates to PersistenceHelper.hashCode(Persistable).

Warning: Certain core Windchill operations may depend upon hashCode being ObjectIdentifier-based. Changes to the default implementation should be done with care, if at all.

Supported API: false

Overrides:
hashCode in class WfRobotActivity
Returns:
int

getMessage

private String getMessage(InputStream stream)
                   throws IOException
Returns message from input stream passed as argument

Throws:
IOException

refreshRobot

private WfURLRobot refreshRobot()
                         throws WTException
Refreshes robot.

Throws:
WTException

getStringRepresentation

private String getStringRepresentation(Object value)
Constructs a String representation of the object passed as parameter.

If the value is not a WTObject, calls 'toString()'; otherwise produces the object's identity.

Parameters:
value - object passed as parameter
Returns:
String Windchill's string representation of the object

getEncoding

protected String getEncoding()