org.intermine.dataloader
Class BaseEquivalentObjectFetcher

java.lang.Object
  extended by org.intermine.dataloader.BaseEquivalentObjectFetcher
All Implemented Interfaces:
EquivalentObjectFetcher
Direct Known Subclasses:
HintingFetcher

public class BaseEquivalentObjectFetcher
extends java.lang.Object
implements EquivalentObjectFetcher

Class providing methods to look up equivalent objects by primary key in a production objectstore.


Field Summary
protected  IntToIntMap idMap
           
protected  ObjectStore lookupOs
           
protected  Model model
           
protected  java.util.Map<java.lang.Class<? extends InterMineObject>,java.lang.Integer> summaryCallCounts
           
protected  java.util.Map<java.lang.Class<? extends InterMineObject>,java.lang.Integer> summaryCounts
           
protected  java.util.Map<java.lang.Class<? extends InterMineObject>,java.lang.Long> summaryTimes
           
 
Constructor Summary
BaseEquivalentObjectFetcher(Model model, IntToIntMap idMap, ObjectStore lookupOs)
          Constructor for this EquivalentObjectFetcher.
 
Method Summary
 void close(Source source)
          Close method - prints out summary data.
 java.util.Set<Query> createPKQueriesForClass(InterMineObject obj, Source source, boolean queryNulls, ClassDescriptor cld)
          Generates a query that searches for all objects in the database equivalent to a given example object, considering only one of it's classes.
 Query createPKQuery(InterMineObject obj, Source source, boolean queryNulls)
          Generates a query that searches for all objects in the database equivalent to a given example object according to the primary keys defined for the given source.
 void createPKQueryForPK(InterMineObject obj, boolean queryNulls, ClassDescriptor cld, PrimaryKey pk, Source source, java.util.Set<Query> returnSet)
          Adds a Query to handle a primary key to a Set.
 IntToIntMap getIdMap()
          Returns the IdMap used.
 ObjectStore getLookupOs()
          Returns the objectstore that contains the equivalent objects.
 Model getModel()
          Returns the Model used.
protected  java.lang.StringBuffer getSummary(Source source)
          Returns a StringBuffer containing summary information.
 java.util.Set<InterMineObject> queryEquivalentObjects(InterMineObject obj, Source source)
          Returns a Set of objects that are equivalent to the given object, according to the primary keys defined by the given Source.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

model

protected Model model

idMap

protected IntToIntMap idMap

lookupOs

protected ObjectStore lookupOs

summaryTimes

protected java.util.Map<java.lang.Class<? extends InterMineObject>,java.lang.Long> summaryTimes

summaryCounts

protected java.util.Map<java.lang.Class<? extends InterMineObject>,java.lang.Integer> summaryCounts

summaryCallCounts

protected java.util.Map<java.lang.Class<? extends InterMineObject>,java.lang.Integer> summaryCallCounts
Constructor Detail

BaseEquivalentObjectFetcher

public BaseEquivalentObjectFetcher(Model model,
                                   IntToIntMap idMap,
                                   ObjectStore lookupOs)
Constructor for this EquivalentObjectFetcher.

Parameters:
model - a Model
idMap - an IntToIntMap from source IDs to destination IDs
lookupOs - an ObjectStore for the production database
Method Detail

getModel

public Model getModel()
Returns the Model used.

Returns:
a Model

getIdMap

public IntToIntMap getIdMap()
Returns the IdMap used.

Returns:
an IntToIntMap

getLookupOs

public ObjectStore getLookupOs()
Returns the objectstore that contains the equivalent objects.

Returns:
an ObjectStore

close

public void close(Source source)
Close method - prints out summary data.

Parameters:
source - the Source used

getSummary

protected java.lang.StringBuffer getSummary(Source source)
Returns a StringBuffer containing summary information.

Parameters:
source - the Source used
Returns:
a StringBuffer

queryEquivalentObjects

public java.util.Set<InterMineObject> queryEquivalentObjects(InterMineObject obj,
                                                             Source source)
                                                      throws ObjectStoreException
Returns a Set of objects that are equivalent to the given object, according to the primary keys defined by the given Source.

Specified by:
queryEquivalentObjects in interface EquivalentObjectFetcher
Parameters:
obj - the Object to look for
source - the data Source
Returns:
a Set of InterMineObjects
Throws:
ObjectStoreException - if an error occurs

createPKQuery

public Query createPKQuery(InterMineObject obj,
                           Source source,
                           boolean queryNulls)
                    throws MetaDataException
Generates a query that searches for all objects in the database equivalent to a given example object according to the primary keys defined for the given source.

Specified by:
createPKQuery in interface EquivalentObjectFetcher
Parameters:
obj - the Object to take as an example
source - the Source database
queryNulls - if true allow primary keys to contain null values if the template obj has nulls. If false the Query will constrain only those keys that have a value in the template obj
Returns:
a new Query (or null if all the primary keys from obj contain a null)
Throws:
MetaDataException - if anything goes wrong

createPKQueriesForClass

public java.util.Set<Query> createPKQueriesForClass(InterMineObject obj,
                                                    Source source,
                                                    boolean queryNulls,
                                                    ClassDescriptor cld)
                                             throws MetaDataException
Generates a query that searches for all objects in the database equivalent to a given example object, considering only one of it's classes.

Specified by:
createPKQueriesForClass in interface EquivalentObjectFetcher
Parameters:
obj - the Object to take as an example
source - the Source database
queryNulls - if true allow primary keys to contain null values if the template obj has nulls. If false the Query will constrain only those keys that have a value in the template obj
cld - one of the classes that obj is. Only primary keys for this classes will be considered
Returns:
a new Query (or null if all the primary keys from obj contain a null)
Throws:
MetaDataException - if anything goes wrong

createPKQueryForPK

public void createPKQueryForPK(InterMineObject obj,
                               boolean queryNulls,
                               ClassDescriptor cld,
                               PrimaryKey pk,
                               Source source,
                               java.util.Set<Query> returnSet)
                        throws MetaDataException
Adds a Query to handle a primary key to a Set.

Parameters:
obj - an InterMineObject
queryNulls - true to make null a valid value, false to make null ignore the key
cld - the ClassDescriptor for the key
pk - the PrimaryKey
source - the Source of the object
returnSet - the Set to which the Query will be added
Throws:
MetaDataException - if something goes wrong