com.force.sdk.jpa
Class ForceFetchFieldManager

java.lang.Object
  extended by org.datanucleus.store.fieldmanager.AbstractFieldManager
      extended by com.force.sdk.jpa.ForceFetchFieldManager
All Implemented Interfaces:
org.datanucleus.store.fieldmanager.FieldConsumer, org.datanucleus.store.fieldmanager.FieldManager, org.datanucleus.store.fieldmanager.FieldSupplier

public class ForceFetchFieldManager
extends org.datanucleus.store.fieldmanager.AbstractFieldManager

Field manager for retrieving records from Force.com. This class handles parsing the different field types that come back from SOQL requests and returning the proper objects to DataNucleus.

Author:
Fiaz Hossain

Constructor Summary
ForceFetchFieldManager(org.datanucleus.store.ExecutionContext ec, org.datanucleus.metadata.AbstractClassMetaData acmd, ForceStoreManager storeManager, ForceManagedConnection mconn, com.sforce.ws.bind.XmlObject sobject, org.datanucleus.store.query.Query query)
          Instantiate a fetch field manager with an sobject and execution context.
ForceFetchFieldManager(org.datanucleus.store.ObjectProvider objectProvider, ForceStoreManager storeManager, ForceManagedConnection mconn, Object pkValue, int[] fieldNumbers, org.datanucleus.store.query.Query query)
          Create a manager that will retrieve the specified field values of a particular entity with a known id.
ForceFetchFieldManager(org.datanucleus.store.ObjectProvider objectProvider, ForceStoreManager storeManager, ForceManagedConnection mconn, com.sforce.ws.bind.XmlObject sobject, org.datanucleus.store.query.Query query)
          Instantiate a fetch field manager with an sobject.
 
Method Summary
 boolean fetchBooleanField(int fieldNumber)
           
 byte fetchByteField(int fieldNumber)
           
 char fetchCharField(int fieldNumber)
           
 double fetchDoubleField(int fieldNumber)
           
 float fetchFloatField(int fieldNumber)
           
 int fetchIntField(int fieldNumber)
           
 long fetchLongField(int fieldNumber)
           
 Object fetchObjectField(org.datanucleus.metadata.AbstractMemberMetaData ammd, Object valueOverride)
          For fields containing objects rather than strings or primitive types this method will return the proper type of object depending on the field type.
 Object fetchObjectField(int fieldNumber)
           
 short fetchShortField(int fieldNumber)
           
 String fetchStringField(int fieldNumber)
          Fetch the field value from the sObject and return it as a string.
 
Methods inherited from class org.datanucleus.store.fieldmanager.AbstractFieldManager
storeBooleanField, storeByteField, storeCharField, storeDoubleField, storeFloatField, storeIntField, storeLongField, storeObjectField, storeShortField, storeStringField
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ForceFetchFieldManager

public ForceFetchFieldManager(org.datanucleus.store.ObjectProvider objectProvider,
                              ForceStoreManager storeManager,
                              ForceManagedConnection mconn,
                              Object pkValue,
                              int[] fieldNumbers,
                              org.datanucleus.store.query.Query query)
                       throws com.sforce.ws.ConnectionException
Create a manager that will retrieve the specified field values of a particular entity with a known id.

Parameters:
objectProvider - the object provider
storeManager - the store manager
mconn - the managed connection for Force.com API connections
pkValue - the id of the object we're fetching
fieldNumbers - the numbers of the fields we want to fetch
query - the query object
Throws:
com.sforce.ws.ConnectionException - thrown if the query to Force.com fails

ForceFetchFieldManager

public ForceFetchFieldManager(org.datanucleus.store.ObjectProvider objectProvider,
                              ForceStoreManager storeManager,
                              ForceManagedConnection mconn,
                              com.sforce.ws.bind.XmlObject sobject,
                              org.datanucleus.store.query.Query query)
Instantiate a fetch field manager with an sobject.

Parameters:
objectProvider - the object provider
storeManager - the store manager
mconn - the managed connection object with connections to the Force.com APIs
sobject - the sObject we're retrieving fields from
query - the query object

ForceFetchFieldManager

public ForceFetchFieldManager(org.datanucleus.store.ExecutionContext ec,
                              org.datanucleus.metadata.AbstractClassMetaData acmd,
                              ForceStoreManager storeManager,
                              ForceManagedConnection mconn,
                              com.sforce.ws.bind.XmlObject sobject,
                              org.datanucleus.store.query.Query query)
Instantiate a fetch field manager with an sobject and execution context.

Parameters:
ec - the execution context for this query
acmd - the class metadata object for the entity we're retrieving
storeManager - the store manager
mconn - the managed connection object with connections to the Force.com APIs
sobject - the sObject we're retrieving fields from
query - the query object
Method Detail

fetchBooleanField

public boolean fetchBooleanField(int fieldNumber)
Specified by:
fetchBooleanField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchBooleanField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchByteField

public byte fetchByteField(int fieldNumber)
Specified by:
fetchByteField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchByteField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchCharField

public char fetchCharField(int fieldNumber)
Specified by:
fetchCharField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchCharField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchDoubleField

public double fetchDoubleField(int fieldNumber)
Specified by:
fetchDoubleField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchDoubleField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchFloatField

public float fetchFloatField(int fieldNumber)
Specified by:
fetchFloatField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchFloatField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchIntField

public int fetchIntField(int fieldNumber)
Specified by:
fetchIntField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchIntField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchLongField

public long fetchLongField(int fieldNumber)
Specified by:
fetchLongField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchLongField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchObjectField

public Object fetchObjectField(int fieldNumber)
Specified by:
fetchObjectField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchObjectField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchShortField

public short fetchShortField(int fieldNumber)
Specified by:
fetchShortField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchShortField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchStringField

public String fetchStringField(int fieldNumber)
Fetch the field value from the sObject and return it as a string. Most of the fetch fields will delegate to this one and that parse it into the proper type (like an int or double)

Specified by:
fetchStringField in interface org.datanucleus.store.fieldmanager.FieldSupplier
Overrides:
fetchStringField in class org.datanucleus.store.fieldmanager.AbstractFieldManager

fetchObjectField

public Object fetchObjectField(org.datanucleus.metadata.AbstractMemberMetaData ammd,
                               Object valueOverride)
For fields containing objects rather than strings or primitive types this method will return the proper type of object depending on the field type. On occasion we use this method to fetch the proper objects for use in expressions and must override the actual value of the object, in that case use the override value instead of getting it from the sObject

Parameters:
ammd - the member metadata for the field/property holding the value
valueOverride - the value to use in case of an override where you don't want what's in the sObject (used for expressions)
Returns:
the value cast to it's proper object type


Copyright © 2011. All Rights Reserved.