Class 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.
    Author:
    Matthew Wakeling
    • Field Detail

      • model

        protected Model model
      • 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
      • 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