com.judoscript
Class StmtSendMail

java.lang.Object
  extended by com.judoscript.StmtBase
      extended by com.judoscript.StmtSendMail
All Implemented Interfaces:
Consts, Stmt, XMLDumpable, java.io.Serializable

public final class StmtSendMail
extends StmtBase

The mail::send feature is supported completely here, except for the syntax.

mail::embed().

See Also:
Serialized Form

Nested Class Summary
static class StmtSendMail.HtmlEmailPatch
           
static class StmtSendMail.MultiPartEmailPatch
           
static class StmtSendMail.SimpleEmailPatch
           
 
Field Summary
static int FLD_ATTACH
           
static int FLD_BCC
           
static int FLD_BODY
           
static int FLD_CC
           
static int FLD_FROM
           
static int FLD_HTMLBODY
           
static int FLD_SUBJECT
           
static int FLD_TO
           
 
Fields inherited from interface com.judoscript.Stmt
NoOp
 
Fields inherited from interface com.judoscript.Consts
ADAPTER_PREFIX, ANNOTATION_NAME, ANY_TAG_SYMBOL, ANY_TEXT_SYMBOL, ARGS_NAME, BSF_NAME, CONTEXT_NAME, DEFAULT_CONNECTION_NAME, DEFAULT_HIBERNATE_NAME, DEFAULT_NS_SYMBOL, DYNAMIC_EVAL, DYNAMIC_EVALEXTERNAL, DYNAMIC_EVALFILE, FOREVER, FS_ADD_TO_CLASSPATH, FS_COPY, FS_DO, FS_LIST, FS_LIST_BY_DATE, FS_LIST_BY_EXT, FS_LIST_BY_NAME, FS_LIST_BY_NONE, FS_LIST_BY_SIZE, FS_LIST_COMPRESSED_SIZE, FS_LIST_COUNT, FS_LIST_COUNTLINES, FS_LIST_COUNTWORDS, FS_LIST_PER_FILE, FS_LIST_PER_NONE, FS_LIST_SIZE, FS_MAKEDIR, FS_MOVE, FS_NONE, FS_REMOVE, FS_REMOVEDIR, FS_RESULT_NAME, FS_SETFILETIME, FS_SETREADONLY, FS_SETREADWRITE, HTTP_GET, HTTP_HEAD, HTTP_POST, IO_GZIPPED_INPUTFILE, IO_GZIPPED_OUTPUTFILE, IO_GZIPPED_TEXTINPUTFILE, IO_GZIPPED_TEXTOUTPUTFILE, IO_INPUTSTREAM, IO_OUTPUTSTREAM, IO_RANDOMACCESS, IO_TEXTINPUTFILE, IO_TEXTOUTPUTFILE, ISSUE_LEVEL_DEBUG, ISSUE_LEVEL_ERROR, ISSUE_LEVEL_IGNORE, ISSUE_LEVEL_INFO, ISSUE_LEVEL_WARN, JAVA_ANY, JAVA_ANY_I, JAVA_BOOLEAN, JAVA_BOOLEAN_I, JAVA_BOOLEAN_O, JAVA_BYTE, JAVA_BYTE_I, JAVA_BYTE_O, JAVA_CHAR, JAVA_CHAR_I, JAVA_CHAR_O, JAVA_CURRENCY, JAVA_CURRENCY_I, JAVA_DATE_O, JAVA_DOUBLE, JAVA_DOUBLE_I, JAVA_DOUBLE_O, JAVA_FLOAT, JAVA_FLOAT_I, JAVA_FLOAT_O, JAVA_INT, JAVA_INT_I, JAVA_INT_O, JAVA_LONG, JAVA_LONG_I, JAVA_LONG_O, JAVA_SHORT, JAVA_SHORT_I, JAVA_SHORT_O, JAVA_SQL_DATE_O, JAVA_SQL_TIME_O, JAVA_SQL_TIMESTAMP_O, JAVA_STRING, JAVA_STRING_I, LABEL_SCHEDULE, LAMBDA_PREFIX, LOCAL_NAME, LOCALTEXT_NAME, MAX_READ_FILE_LENGTH, NODE_PREFIX, OP_AND, OP_AND_ASSIGN, OP_ASSIGN, OP_COMPLEMENT, OP_CONCAT, OP_CONCAT_ASSIGN, OP_COPY, OP_DIV, OP_DIV_ASSIGN, OP_EQ, OP_GE, OP_GT, OP_LE, OP_LOGIC_AND_ASSIGN, OP_LOGIC_OR_ASSIGN, OP_LSHIFT, OP_LSHIFT_ASSIGN, OP_LT, OP_MINUS, OP_MINUS_ASSIGN, OP_MOD, OP_MOD_ASSIGN, OP_MUL, OP_MUL_ASSIGN, OP_NE, OP_NOT, OP_OR, OP_OR_ASSIGN, OP_PLUS, OP_PLUS_ASSIGN, OP_RSHIFT, OP_RSHIFT_ASSIGN, OP_RUSHIFT, OP_RUSHIFT_ASSIGN, OP_XOR, OP_XOR_ASSIGN, OPTION_JDBC_PASSWORD, OPTION_JDBC_URL, OPTION_JDBC_USERNAME, ORACLE_BFILE, ORACLE_CURSOR, ORACLE_FIXED_CHAR, ORACLE_NUMBER, ORACLE_PLSQL_INDEX_TABLE, ORACLE_RAW, ORACLE_ROWID, PARENT_NAME, PARSER_NAME, PRAGMA_ASSERTION, PRAGMA_CRYPTOCLASS, PRAGMA_GUILISTENER, PRAGMA_INCLUDEPATH, PRAGMA_JAVACOMPILER, PRAGMA_JDBCDRIVER, pragma_names, PRAGMA_UNKNOWN, PREPARED_STMT_CALL, PRINT_ERR, PRINT_LOG, PRINT_OUT, PRINT_PIPE, PRINT_USER, RTERR_ASSERTION_FAILURE, RTERR_BAD_PRINT_TARGET, RTERR_CONSTANT_NOT_DEFINED, RTERR_CONSTANT_REDEFINITION, RTERR_EMBEDDED_JAVA_COMPILE_FAILED, RTERR_ENVIRONMENT_ERROR, RTERR_EVALUATION_FAILED, RTERR_FS_COPY_MOVE_FAILED, RTERR_FS_CREATE_DIR_FAILED, RTERR_FS_REMOVE_DIR_FAILED, RTERR_FUNCTION_ALREADY_DEFINED, RTERR_ILLEGAL_ACCESS, RTERR_ILLEGAL_ARGUMENTS, RTERR_ILLEGAL_INDEXED_ACCESS, RTERR_ILLEGAL_JUMP, RTERR_ILLEGAL_STATEMENT, RTERR_ILLEGAL_VALUE_SETTING, RTERR_INTERNAL_ERROR, RTERR_INVALID_ARRAY_ACCESS, RTERR_INVALID_JAVA_VERSION, RTERR_INVALID_MEMBER_ACCESS, RTERR_INVALID_NUMBER_FORMAT, RTERR_INVALID_VARIABLE_NAME, RTERR_IO_FAILURE, RTERR_IO_FILE_OPEN_FAILURE, RTERR_JAVA_COMPILE_FAILED, RTERR_JAVA_EXCEPTION, RTERR_JAVA_METHOD_CALL, RTERR_JAVA_OBJECT_CREATION, RTERR_JDBC_DRIVER_NOT_FOUND, RTERR_JDBC_FAILURE, RTERR_JDBC_INVALID_COLUMN, RTERR_JDBC_WARNING, RTERR_MAIL_MISSING_FIELD, RTERR_MAILSERVER_NOT_CONNECTED, RTERR_METHOD_NOT_FOUND, rterr_names, RTERR_NO_SUCH_VALUE, RTERR_OBJECT_INIT, RTERR_TIMER_ALREADY_EXISTS, RTERR_UNDEFINED_GUI_EVENT, RTERR_UNDEFINED_OBJECT_TYPE, RTERR_USER_EXCEPTION, RTERR_XML_PARSING_ERROR, RULEENGINE_MAX_ITERATIONS, SYS_NAME, TEMPVAR_PREFIX, TEXT_PREFIX, THIS_NAME, THREAD_PREFIX, TIMER_NAME, TYPE_ARRAY, TYPE_CALLABLE, TYPE_COM, TYPE_COMPLEX, TYPE_CONTEXT, TYPE_DATE, TYPE_DOUBLE, TYPE_FUNCTION, TYPE_INT, TYPE_INTERNAL, TYPE_JAVA, TYPE_NAN, TYPE_NIL, TYPE_OBJECT, TYPE_QUEUE, TYPE_SET, TYPE_STACK, TYPE_STRING, TYPE_STRUCT, TYPE_UNDEFINED, TYPE_UNKNOWN, TYPE_WS, TYPE1_SYMBOL, TYPE2_SYMBOL, TYPE3_SYMBOL, XML_EVENT_PREFIX
 
Constructor Summary
StmtSendMail(int lineNum)
           
 
Method Summary
 void dump(XMLWriter out)
           
 void exec()
           
static java.lang.String[] getNamedValue(java.lang.String s, boolean isFile)
          Takes a string of "xyz" or "abcd <attribute>".
 boolean hasExpr(int type)
           
 void setAdhoc(BlockSimple blk)
           
 void setExpr(int type, Expr expr, Expr extra)
           
 void setHeaders(AssociateList headers)
           
 void setPassword(Expr ex)
           
 void setServer(Expr ex)
           
 void setUsername(Expr ex)
           
 
Methods inherited from class com.judoscript.StmtBase
dumpArguments, getFileIndex, getLineNumber, optimizeStmt, popFrame, pushNewFrame, setFileIndex, setLineNumber
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FLD_FROM

public static final int FLD_FROM
See Also:
Constant Field Values

FLD_TO

public static final int FLD_TO
See Also:
Constant Field Values

FLD_CC

public static final int FLD_CC
See Also:
Constant Field Values

FLD_BCC

public static final int FLD_BCC
See Also:
Constant Field Values

FLD_SUBJECT

public static final int FLD_SUBJECT
See Also:
Constant Field Values

FLD_ATTACH

public static final int FLD_ATTACH
See Also:
Constant Field Values

FLD_BODY

public static final int FLD_BODY
See Also:
Constant Field Values

FLD_HTMLBODY

public static final int FLD_HTMLBODY
See Also:
Constant Field Values
Constructor Detail

StmtSendMail

public StmtSendMail(int lineNum)
Method Detail

setServer

public void setServer(Expr ex)

setUsername

public void setUsername(Expr ex)

setPassword

public void setPassword(Expr ex)

setExpr

public void setExpr(int type,
                    Expr expr,
                    Expr extra)
             throws java.lang.Exception
Throws:
java.lang.Exception

hasExpr

public boolean hasExpr(int type)

setHeaders

public void setHeaders(AssociateList headers)

setAdhoc

public void setAdhoc(BlockSimple blk)

exec

public void exec()
          throws java.lang.Throwable
Throws:
java.lang.Throwable

getNamedValue

public static java.lang.String[] getNamedValue(java.lang.String s,
                                               boolean isFile)
Takes a string of "xyz" or "abcd <attribute>". This is used for two scenarios:
  1. Email address (isFile is false) — E.g. James Huang <judoscript@hotmail.com> returns: { "James Huang", "judoscript@hotmail.com" }. E.g. judoscript@hotmail.com returns: { null, "judoscript@hotmail.com" }.
  2. Attachment (isFile is false) — E.g. "picture.jpg", <c:/pictures/james.jpg> returns: { "picture.jpg", "c:/pictures/james.jpg" }. E.g. c:/pictures/james.jpg returns: { "james.jpg", "c:/pictures/james.jpg" }.

Parameters:
isFile - if true, the attribute represents a file path or URL, if no attribute specified, use the file name part as name.
Returns:
ret[0] is the name, ret[1] is the value.

dump

public void dump(XMLWriter out)