<?xml version="1.0" encoding="UTF-8"?><umlet_diagram><element><type>com.umlet.element.base.Class</type><coordinates><x>10</x><y>780</y><w>350</w><h>100</h></coordinates><panel_attributes>thunderforce.sforce::Cache
--
-writeBackEnabled: boolean
--
+Cache(backingStore: BidirectionalAPI)
+setWriteBackEnabled(enabled: boolean)
+isWriteBackEnabled(): boolean</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>500</x><y>950</y><w>170</w><h>90</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>20;70;150;70;150;20</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>10</x><y>980</y><w>510</w><h>120</h></coordinates><panel_attributes>thunderforce.sforce::BidirectionalAPIEventManager
--
-listeners: array&lt;function&gt;
--
+addDataChangeListener(listener: function): void
+removeDataChangeListener(listener: function): void
+getDataChangeListeners(): array&lt;function&gt;
+fireDataChangedEvent(change: integer, old: sOjbect, new: sObject): void</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>390</x><y>780</y><w>500</w><h>190</h></coordinates><panel_attributes>thunderforce.sforce::BidirectionalAPIPoller
--
-entityRefreshIntervals: array&lt;EntityRefreshInterval&gt;
-backgroundRefreshEnabled: boolean
--
+PollingBidirectionalAPI(backingStore: API)
+refreshEntity(entityName: string): boolean
+refreshAllEntities(): boolean
+setEntityRefreshIntervals(invervals: array&lt;EntityRefreshInterval&gt;): void
+getEntityRefreshIntervals(): array&lt;EntityRefreshInterval&gt;
+setBackgroundRefreshEnabled(enabled: boolean): void
+isBackgroundRefreshEnabled(): boolean</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>650</x><y>410</y><w>160</w><h>140</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>20;20;140;20;140;120</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>680</x><y>530</y><w>220</w><h>80</h></coordinates><panel_attributes>thunderforce.sforce::Salesforce
--
-sessionId: string
--
+Salesforce()
+getSessionId(): String</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>310</x><y>700</y><w>290</w><h>100</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>270;20;270;60;20;60;20;80</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>10</x><y>630</y><w>510</w><h>100</h></coordinates><panel_attributes>&lt;&lt; interface &gt;&gt;
thunderforce.sforce::BidirectionalAPI
--
+addDataChangeListener(listener: function): void
+removeDataChangeListener(listener: function): void
+getDataChangeListeners(): array&lt;function&gt;</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>10</x><y>20</y><w>660</w><h>560</h></coordinates><panel_attributes>&lt;&lt; interface &gt;&gt;
thunderforce.sforce::API
--
+getBatchSize(): integer
+getOrganizationId(): string
+getServerUrl(): string
+setAssignmentRuleHeader(rule: string): void
+setBatchSize(size: integer): void
+setDebuggingHeader(debug: string): void
+setEmailHeader(header: string): void
+setServerUrl(url: string): void
+setTransferToUserId(userid: string): void
+setUpdateMru(enable: boolean): void
+login(username: string, password: string): LoginResult
+describeSObject(type: string): DescribeSObjectResult
+describeSObjects(types: array&lt;string&gt;): DescribeSObjectResult
+describeGlobal(): DescribeGlobalResult
+describeTabs(): DescribeTabSetResult
+create(sobjects: array&lt;sObject&gt;): array&lt;SaveResult&gt;
+update(sobjects: array&lt;sObject&gt;): array&lt;SaveResult&gt;
+upsert(externalIDFieldName: string, sobjects: array&lt;sObject&gt;): array&lt;UpsertResult&gt;
+deleteIds(ids: array&lt;string&gt;): array&lt;DeleteResult&gt;
+query(queryString: string): QueryResult
+queryAll(queryString: string): QueryResult
+queryMore(queryLocator: string): QueryResult
+retrieve(fieldList: string, sObjectType: string, ids: array&lt;string&gt;): array&lt;sObject&gt;
+setPassword(userId: string, password: string): SetPasswordResult
+search(searchString: string): SearchResult
+getDeleted(sObjectType: string, startDate: string, endDate: string): GetDeletedResult
+getUpdated(sObjectType: string, startDate: string, endDate: string): array&lt;GetUpdatedResult&gt;
+getServerTimestamp(): GetServerTimestampResult
+undelete(ids: array&lt;string&gt;): array&lt;UndeleteResult&gt;
+sendEmail(messages: array&lt;BaseEmail&gt;): SendEmailResult
</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>710</x><y>700</y><w>40</w><h>100</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>20;20;20;80</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>350</x><y>710</y><w>60</w><h>150</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>20;20;20;130;40;130</additional_attributes></element><element><type>com.umlet.element.base.Class</type><coordinates><x>530</x><y>640</y><w>270</w><h>80</h></coordinates><panel_attributes>thunderforce.sforce::APIDelegator
--
#delegate: API
--
+Delegator(delegate: API)
+getDelegate(): API</panel_attributes><additional_attributes></additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>190</x><y>710</y><w>40</w><h>90</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>20;20;20;70</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>190</x><y>860</y><w>40</w><h>140</h></coordinates><panel_attributes>lt=&lt;-</panel_attributes><additional_attributes>20;120;20;20</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>640</x><y>560</y><w>40</w><h>100</h></coordinates><panel_attributes>lt=&lt;&lt;.</panel_attributes><additional_attributes>20;20;20;80</additional_attributes></element><element><type>com.umlet.element.base.Relation</type><coordinates><x>230</x><y>560</y><w>40</w><h>90</h></coordinates><panel_attributes>lt=&lt;&lt;-</panel_attributes><additional_attributes>20;20;20;70</additional_attributes></element></umlet_diagram>