com.moneydance.apps.md.model
Class OnlineService

java.lang.Object
  extended by com.moneydance.apps.md.model.OnlineService

public class OnlineService
extends java.lang.Object

This class describes one "service" that a user can connect to in order to do "stuff" online. Everything is stored in a StreamTable so that we can be as flexible as possible in future changes in online banking access.


Field Summary
static java.lang.String ACCT_TYPE_CHECKING
           
static java.lang.String ACCT_TYPE_CREDIT_CARD
           
static java.lang.String ACCT_TYPE_INVESTMENT
           
static java.lang.String ACCT_TYPE_LINE_OF_CREDIT
           
static java.lang.String ACCT_TYPE_MONEY_MKT
           
static java.lang.String ACCT_TYPE_SAVINGS
           
static java.lang.String DEFAULT_REQ_REALM
           
static int MESSAGE_TYPE_BANKING
           
static int MESSAGE_TYPE_BILLDIR
           
static int MESSAGE_TYPE_BILLPAY
           
static int MESSAGE_TYPE_CREDITCARD
           
static int MESSAGE_TYPE_EMAIL
           
static int MESSAGE_TYPE_INTERBANKXFR
           
static int MESSAGE_TYPE_INVESTMENT
           
static int MESSAGE_TYPE_PROF
           
static int MESSAGE_TYPE_SECLIST
           
static int MESSAGE_TYPE_SIGNON
           
static int MESSAGE_TYPE_SIGNUP
           
static int MESSAGE_TYPE_WIREXFR
           
static java.lang.String PASSWD_TYPE_FIXED
           
static java.lang.String PASSWD_TYPE_HWTOKEN
           
static java.lang.String PASSWD_TYPE_ONETIME
           
 
Constructor Summary
OnlineService(OnlineInfo info, StreamTable service)
           
 
Method Summary
 void cacheAuthentication(java.lang.String authKey, java.lang.Object authObj)
          Store an authentication object to be used later.
 void clearAuthenticationCache()
          Clear the cache of all authentication objects.
 void dumpInfo()
           
 java.lang.String getAppID(java.lang.String defaultVal)
          Return the application ID to use when connecting to this bank.
 java.lang.String getAppVersion(java.lang.String defaultVal)
          Return the application version to use when connecting to this bank.
 OnlineAccountInfo[] getAvailableAccounts()
           
 boolean getBankCanEmail()
           
 boolean getBankCanNotify()
           
 boolean getBankClosingAvail()
           
 boolean getBankXfrCanModifyModels()
           
 boolean getBankXfrCanModifyTransfers()
           
 boolean getBankXfrCanScheduleRecurring()
           
 boolean getBankXfrCanScheduleTransfers()
           
 int getBankXfrDaysWithdrawn()
           
 int getBankXfrDefaultDaysToPay()
           
 int getBankXfrModelWindow()
           
 boolean getBankXfrNeedsTAN()
           
 java.lang.String[] getBankXfrProcessingDaysOff()
           
 java.lang.String getBankXfrProcessingEndTime()
           
 boolean getBankXfrSupportsDTAvail()
           
 boolean getBillPayCanAddPayee()
           
 boolean getBillPayCanModPayments()
           
 int getBillPayDaysWithdrawn()
           
 int getBillPayDefaultDaysToPay()
           
 boolean getBillPayHasExtendedPmt()
           
 boolean getBillPayNeedsTANPayee()
           
 boolean getBillPayNeedsTANPayment()
           
 int getBillPayPostProcessingWindow()
           
 java.lang.String[] getBillPayProcessingDaysOff()
           
 java.lang.String getBillPayProcessingEndTime()
           
 boolean getBillPaySupportsDifftFirstPmt()
           
 boolean getBillPaySupportsDifftLastPmt()
           
 boolean getBillPaySupportsDtAvail()
           
 boolean getBillPaySupportsPmtByAddr()
           
 boolean getBillPaySupportsPmtByPayeeId()
           
 boolean getBillPaySupportsPmtByXfr()
           
 boolean getBillPaySupportsStatusModRs()
           
 int getBillPayXfrDaysWith()
           
 int getBillPayXfrDefaultDaysToPay()
           
 java.net.URL getBootstrapURL()
           
 java.lang.String getBootstrapURLString()
           
 java.lang.Object getCachedAuthentication(java.lang.String authKey)
          Retrieve the authentication object stored by the given key
 boolean getCreditCardClosingAvail()
           
 java.lang.String getCustServicePhone()
           
 java.lang.String getDateAvailAcctsUpdated()
           
 long getDateUpdated()
           
 boolean getEmailSupportsGeneric()
           
 boolean getEmailSupportsGetMime()
           
 java.lang.String getFIAddress1()
           
 java.lang.String getFIAddress2()
           
 java.lang.String getFIAddress3()
           
 java.lang.String getFICity()
           
 java.lang.String getFICountry()
           
 java.lang.String getFIEmail()
           
 java.lang.String getFIId()
           
 java.lang.String getFIName()
           
 java.lang.String getFIOrg()
           
 java.lang.String getFIState()
           
 java.lang.String getFIUrl()
           
 boolean getFIUrlIsRedirect()
           
 java.lang.String getFIZip()
           
 java.lang.String[] getInvalidAcctTypes()
           
 java.lang.String getInvstBrokerID()
          Gets the default Broker ID to use with this service, or an empty string if none is known.
 boolean getInvstCanDownloadBalances()
          Get whether or not the server can provide balances for accounts
 boolean getInvstCanDownloadOOs()
          Get whether or not the server can provide open orders
 boolean getInvstCanDownloadPositions()
          Get whether or not the server can provide positions on securities
 boolean getInvstCanDownloadTxns()
          Get whether or not the investment server can provide transactions
 boolean getInvstCanEmail()
          Get whether or not the server can exchange investment email messages
 java.lang.String getLastTransactionID()
          Returns a string indicating the last value stored in a call to setCurrentTransactionID(), or null if setLastTransactionID was never called.
 OnlineMailList getMail()
           
 OnlineMailList getMailForAccount(Account acct)
           
 java.lang.String getMailListSyncToken(OnlineAccountProxy account)
          Gets the synchronization token for the service-wide mail list
 int getMaxPasswdLength(java.lang.String realm)
           
 int getMinPasswdLength(java.lang.String realm)
           
 java.lang.String getMsgSetLanguage(int messageType)
           
 boolean getMsgSetRspnsFileErrors(int messageType)
           
 java.lang.String getMsgSetSecurity(int messageType)
           
 java.lang.String getMsgSetSignonRealm(int messageType)
           
 java.lang.String getMsgSetSyncMode(int messageType)
           
 boolean getMsgSetTransportSecure(int messageType)
           
 java.net.URL getMsgSetURL(int messageType)
           
 int getMsgSetVersion(int messageType)
           
 boolean getMustChngPINFirst(java.lang.String realm)
           
 boolean getPasswdCanHaveSpaces(java.lang.String realm)
           
 boolean getPasswdCanHaveSpecialChars(java.lang.String realm)
           
 boolean getPasswdCaseSensitive(java.lang.String realm)
           
 java.lang.String getPasswdCharType(java.lang.String realm)
           
 java.lang.String getPasswdType(java.lang.String realm)
           
 OnlinePayee getPayeeForPayment(OnlineAccountProxy account, OnlinePayment payment)
          Get the payee object that is associated with the given payment.
 java.lang.String getPayeeListSyncToken(OnlineAccountProxy account)
           
 OnlinePayeeList getPayees(OnlineAccountProxy account)
           
 java.lang.String getPaymentListSyncToken(OnlineAccountProxy account)
           
 OnlinePaymentList getPayments(OnlineAccountProxy account)
           
 java.lang.String[] getRealms()
           
 boolean getSecListCanDownloadSecurities()
          Get whether or not the server can provide securities
 java.lang.String getServiceId()
           
 java.lang.String getServiceType()
           
 boolean getSignupAcctsAvail()
           
 boolean getSignupCanActivateAcct()
           
 boolean getSignupCanChgUserInfo()
           
 boolean getSignupCanPreauth()
           
 boolean getSignupClientAcctNumReq()
          set whether or not an account number is required for client enrollment.
 boolean getSignupViaClient()
           
 boolean getSignupViaOther()
           
 java.lang.String getSignupViaOtherMsg()
           
 boolean getSignupViaWeb()
           
 java.lang.String getSignupViaWebUrl()
          get the url to be used for web-based enrollment.
 boolean getStopChkCanUseDescription()
           
 boolean getStopChkCanUseRange()
           
 java.lang.String getStopChkFee()
           
 java.lang.String[] getStopChkProcessingDaysOff()
           
 java.lang.String getStopChkProcessingEndTime()
           
 StreamTable getTable()
           
 java.lang.String getTechServicePhone()
           
 java.lang.String getUpdatedFIId()
           
 java.lang.String getUpdatedFIOrg()
           
 boolean getUseBPFileUIDs()
          Return true iff the OFX client should use the FILEUID mechanism for bill payment messages.
 boolean getUserCanChangePIN(java.lang.String realm)
           
 java.lang.String getUserId(java.lang.String realm, OnlineAccountProxy account)
          Get the best user ID to use with the given realm and account.
 boolean isSameAs(OnlineService otherSvc)
           
 boolean isSameAs(java.lang.String serviceId)
           
 void mergeDataTables(StreamTable table)
          This replaces any keys in the built-in service information with the keys and values from the given table.
 boolean needsFIProfileCheck()
          Returns true if the service information needs to be checked.
 void notifyModified()
           
 void resetRealmInfo()
          Removes references to all of the current realms.
 void setAvailableAccounts(OnlineAccountInfo[] newAccts)
           
 void setBankCanEmail(boolean val)
           
 void setBankCanNotify(boolean val)
           
 void setBankClosingAvail(boolean val)
           
 void setBankXfrCanModifyModels(boolean val)
           
 void setBankXfrCanModifyTransfers(boolean val)
           
 void setBankXfrCanScheduleRecurring(boolean val)
           
 void setBankXfrCanScheduleTransfers(boolean val)
           
 void setBankXfrDaysWithdrawn(int days)
           
 void setBankXfrDefaultDaysToPay(int days)
           
 void setBankXfrModelWindow(int days)
           
 void setBankXfrNeedsTAN(boolean val)
           
 void setBankXfrProcessingDaysOff(java.lang.String[] vals)
           
 void setBankXfrProcessingEndTime(java.lang.String val)
           
 void setBankXfrSupportsDTAvail(boolean val)
           
 void setBillPayCanAddPayee(boolean val)
           
 boolean setBillPayCanModModels()
           
 void setBillPayCanModModels(boolean val)
           
 void setBillPayCanModPayments(boolean val)
           
 void setBillPayDaysWithdrawn(int val)
           
 void setBillPayDefaultDaysToPay(int val)
           
 void setBillPayHasExtendedPmt(boolean val)
           
 int setBillPayModelWindow()
           
 void setBillPayModelWindow(int val)
           
 void setBillPayNeedsTANPayee(boolean val)
           
 void setBillPayNeedsTANPayment(boolean val)
           
 void setBillPayPostProcessingWindow(int val)
           
 void setBillPayProcessingDaysOff(java.lang.String[] vals)
           
 void setBillPayProcessingEndTime(java.lang.String val)
           
 void setBillPaySupportsDifftFirstPmt(boolean val)
           
 void setBillPaySupportsDifftLastPmt(boolean val)
           
 void setBillPaySupportsDtAvail(boolean val)
           
 void setBillPaySupportsPmtByAddr(boolean val)
           
 void setBillPaySupportsPmtByPayeeId(boolean val)
           
 void setBillPaySupportsPmtByXfr(boolean val)
           
 void setBillPaySupportsStatusModRs(boolean val)
           
 void setBillPayXfrDaysWith(int val)
           
 void setBillPayXfrDefaultDaysToPay(int val)
           
 void setBootstrapURL(java.net.URL bootstrapURL)
           
 void setCreditCardClosingAvail(boolean val)
           
 void setCustServicePhone(java.lang.String val)
           
 void setDateAvailAcctsUpdated(java.lang.String newVal)
           
 void setDateUpdated(long dateUpdated)
           
 void setEmailSupportsGeneric(boolean val)
           
 void setEmailSupportsGetMime(boolean val)
           
 void setFIAddress1(java.lang.String addr1)
           
 void setFIAddress2(java.lang.String addr2)
           
 void setFIAddress3(java.lang.String addr3)
           
 void setFICity(java.lang.String city)
           
 void setFICountry(java.lang.String country)
           
 void setFIEmail(java.lang.String val)
           
 void setFIId(java.lang.String newFIID)
           
 void setFIName(java.lang.String name)
           
 void setFIOrg(java.lang.String newFIOrg)
           
 void setFIState(java.lang.String state)
           
 void setFIUrl(java.lang.String url)
           
 void setFIUrlIsRedirect(boolean val)
           
 void setFIZip(java.lang.String zip)
           
 void setInvalidAcctTypes(java.lang.String[] vals)
           
 void setInvstBrokerID(java.lang.String brokerID)
          Sets a default Broker ID to use with this service.
 void setInvstCanDownloadBalances(boolean val)
          Set whether or not the server can provide balances for accounts
 void setInvstCanDownloadOOs(boolean val)
          Set whether or not the server can provide open orders
 void setInvstCanDownloadPositions(boolean val)
          Set whether or not the server can provide positions on securities
 void setInvstCanDownloadTxns(boolean val)
          Set whether or not the investment server can provide transactions
 void setInvstCanEmail(boolean val)
          Set whether or not the server can exchange investment email messages
 void setLastTransactionID(java.lang.String txnID)
          Sets the last transaction ID used.
 void setMailListSyncToken(OnlineAccountProxy account, java.lang.String syncToken)
          Sets the synchronization token for the service-wide mail list
 void setMaxPasswdLength(java.lang.String realm, int val)
           
 void setMinPasswdLength(java.lang.String realm, int val)
           
 void setMsgSetLanguage(int messageType, java.lang.String newVal)
           
 void setMsgSetRspnsFileErrors(int messageType, boolean newVal)
           
 void setMsgSetSecurity(int messageType, java.lang.String newVal)
           
 void setMsgSetSignonRealm(int messageType, java.lang.String newVal)
           
 void setMsgSetSyncMode(int messageType, java.lang.String newVal)
           
 void setMsgSetTransportSecure(int messageType, boolean newVal)
           
 void setMsgSetURL(int messageType, java.net.URL newVal)
           
 void setMsgSetVersion(int messageType, int newVal)
           
 void setMustChngPINFirst(java.lang.String realm, boolean val)
           
 void setPasswdCanHaveSpaces(java.lang.String realm, boolean val)
           
 void setPasswdCanHaveSpecialChars(java.lang.String realm, boolean val)
           
 void setPasswdCaseSensitive(java.lang.String realm, boolean val)
           
 void setPasswdCharType(java.lang.String realm, java.lang.String val)
           
 void setPasswdType(java.lang.String realm, java.lang.String val)
           
 void setPayeeListSyncToken(OnlineAccountProxy account, java.lang.String token)
           
 void setPaymentListSyncToken(OnlineAccountProxy account, java.lang.String token)
           
 void setProfileUpdateNeeded()
          Sets a flag indicating that the service profile should be re-fetched
 void setSecListCanDownloadSecurities(boolean val)
          Set whether or not the server can provide securities
 void setSignupAcctsAvail(boolean val)
           
 void setSignupCanActivateAcct(boolean val)
           
 void setSignupCanChgUserInfo(boolean val)
           
 void setSignupCanPreauth(boolean val)
           
 void setSignupClientAcctNumReq(boolean val)
          returns true if an account number is required for client enrollment.
 void setSignupViaClient(boolean val)
           
 void setSignupViaOther(boolean val)
           
 void setSignupViaOtherMsg(java.lang.String msg)
           
 void setSignupViaWeb(boolean val)
           
 void setSignupViaWebUrl(java.lang.String url)
          set the url to be used for web-based enrollment.
 void setStopChkCanUseDescription(boolean val)
           
 void setStopChkCanUseRange(boolean val)
           
 void setStopChkFee(java.lang.String feeStr)
           
 void setStopChkProcessingDaysOff(java.lang.String[] vals)
           
 void setStopChkProcessingEndTime(java.lang.String val)
           
 void setTechServicePhone(java.lang.String val)
           
 void setUpdatedProfile()
          Sets the flag indicating the time that the service information was checked
 void setUserCanChangePIN(java.lang.String realm, boolean val)
           
 void setUserId(java.lang.String realm, OnlineAccountProxy account, java.lang.String userId)
           
 void setUsesFITag(boolean usesFITag)
          Sets whether or not this service is identified by an FI tag (ORG and ID)
 boolean supportsMsgSet(int messageType)
           
 java.lang.String toString()
           
 boolean usesBillPayExtendedAcctTo()
           
 boolean usesFITag()
          Returns true if this service is identified by an FI tag (ORG and ID) or not
 boolean usesPTTAcctIDField()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_REQ_REALM

public static final java.lang.String DEFAULT_REQ_REALM
See Also:
Constant Field Values

MESSAGE_TYPE_PROF

public static final int MESSAGE_TYPE_PROF
See Also:
Constant Field Values

MESSAGE_TYPE_SIGNON

public static final int MESSAGE_TYPE_SIGNON
See Also:
Constant Field Values

MESSAGE_TYPE_SIGNUP

public static final int MESSAGE_TYPE_SIGNUP
See Also:
Constant Field Values

MESSAGE_TYPE_BANKING

public static final int MESSAGE_TYPE_BANKING
See Also:
Constant Field Values

MESSAGE_TYPE_CREDITCARD

public static final int MESSAGE_TYPE_CREDITCARD
See Also:
Constant Field Values

MESSAGE_TYPE_INVESTMENT

public static final int MESSAGE_TYPE_INVESTMENT
See Also:
Constant Field Values

MESSAGE_TYPE_INTERBANKXFR

public static final int MESSAGE_TYPE_INTERBANKXFR
See Also:
Constant Field Values

MESSAGE_TYPE_WIREXFR

public static final int MESSAGE_TYPE_WIREXFR
See Also:
Constant Field Values

MESSAGE_TYPE_BILLPAY

public static final int MESSAGE_TYPE_BILLPAY
See Also:
Constant Field Values

MESSAGE_TYPE_EMAIL

public static final int MESSAGE_TYPE_EMAIL
See Also:
Constant Field Values

MESSAGE_TYPE_SECLIST

public static final int MESSAGE_TYPE_SECLIST
See Also:
Constant Field Values

MESSAGE_TYPE_BILLDIR

public static final int MESSAGE_TYPE_BILLDIR
See Also:
Constant Field Values

PASSWD_TYPE_ONETIME

public static final java.lang.String PASSWD_TYPE_ONETIME
See Also:
Constant Field Values

PASSWD_TYPE_HWTOKEN

public static final java.lang.String PASSWD_TYPE_HWTOKEN
See Also:
Constant Field Values

PASSWD_TYPE_FIXED

public static final java.lang.String PASSWD_TYPE_FIXED
See Also:
Constant Field Values

ACCT_TYPE_CHECKING

public static final java.lang.String ACCT_TYPE_CHECKING
See Also:
Constant Field Values

ACCT_TYPE_SAVINGS

public static final java.lang.String ACCT_TYPE_SAVINGS
See Also:
Constant Field Values

ACCT_TYPE_MONEY_MKT

public static final java.lang.String ACCT_TYPE_MONEY_MKT
See Also:
Constant Field Values

ACCT_TYPE_LINE_OF_CREDIT

public static final java.lang.String ACCT_TYPE_LINE_OF_CREDIT
See Also:
Constant Field Values

ACCT_TYPE_CREDIT_CARD

public static final java.lang.String ACCT_TYPE_CREDIT_CARD
See Also:
Constant Field Values

ACCT_TYPE_INVESTMENT

public static final java.lang.String ACCT_TYPE_INVESTMENT
See Also:
Constant Field Values
Constructor Detail

OnlineService

public OnlineService(OnlineInfo info,
                     StreamTable service)
Method Detail

getTable

public StreamTable getTable()

cacheAuthentication

public void cacheAuthentication(java.lang.String authKey,
                                java.lang.Object authObj)
Store an authentication object to be used later. If the given authObj is null, then it unsets the authentication.


getCachedAuthentication

public java.lang.Object getCachedAuthentication(java.lang.String authKey)
Retrieve the authentication object stored by the given key


clearAuthenticationCache

public void clearAuthenticationCache()
Clear the cache of all authentication objects.


getUseBPFileUIDs

public boolean getUseBPFileUIDs()
Return true iff the OFX client should use the FILEUID mechanism for bill payment messages.


getPayeeForPayment

public OnlinePayee getPayeeForPayment(OnlineAccountProxy account,
                                      OnlinePayment payment)
Get the payee object that is associated with the given payment. The payment object must have a payee list ID for this to work.


needsFIProfileCheck

public boolean needsFIProfileCheck()
Returns true if the service information needs to be checked.


getAppID

public java.lang.String getAppID(java.lang.String defaultVal)
Return the application ID to use when connecting to this bank.


getAppVersion

public java.lang.String getAppVersion(java.lang.String defaultVal)
Return the application version to use when connecting to this bank.


usesFITag

public boolean usesFITag()
Returns true if this service is identified by an FI tag (ORG and ID) or not


setUsesFITag

public void setUsesFITag(boolean usesFITag)
Sets whether or not this service is identified by an FI tag (ORG and ID)


setUpdatedProfile

public void setUpdatedProfile()
Sets the flag indicating the time that the service information was checked


setProfileUpdateNeeded

public void setProfileUpdateNeeded()
Sets a flag indicating that the service profile should be re-fetched


isSameAs

public boolean isSameAs(java.lang.String serviceId)

isSameAs

public boolean isSameAs(OnlineService otherSvc)

getServiceId

public java.lang.String getServiceId()

getLastTransactionID

public java.lang.String getLastTransactionID()
Returns a string indicating the last value stored in a call to setCurrentTransactionID(), or null if setLastTransactionID was never called.


setLastTransactionID

public void setLastTransactionID(java.lang.String txnID)
Sets the last transaction ID used. This can be used to calculate the next transaction ID.


getPayees

public OnlinePayeeList getPayees(OnlineAccountProxy account)

getMail

public OnlineMailList getMail()

getMailForAccount

public OnlineMailList getMailForAccount(Account acct)

getPayments

public OnlinePaymentList getPayments(OnlineAccountProxy account)

mergeDataTables

public void mergeDataTables(StreamTable table)
This replaces any keys in the built-in service information with the keys and values from the given table.


getAvailableAccounts

public OnlineAccountInfo[] getAvailableAccounts()

setAvailableAccounts

public void setAvailableAccounts(