Interface BibRefSupport

  • public interface BibRefSupport

    This interface defines supporting utilities for working with bibliographic repositories.

    The fundamental part of this interface deals with the controlled vocabularies. However, the BibRefSupport interface is here just a gateway to other Java interfaces defined in a separate package org.biojava.utils.candy.

    The controlled vocabularies are used in order to find names of all available attributes of the given bibliographic repository, to find all possible values of some attributes, and to specify availability of the ordering and searching criteria. Here belong methods getVocabularyFinder, getSupportedValues, and getSupportedCriteria.

    The other raison d'etre for the BibRefSupport interface is to have a place where some common constants can be put in. The constants specify common vocabulary names (examples are RESOURCE_TYPES or JOURNAL_TITLES, explicitly defined bibliographic resource types (for example, TYPE_BOOK or TYPE_ARTICLE), and few other things.

    And finally, there are some methods allowing to improve an efficient access to the supporting resources by calling explicitly connect and disconnect.

    It was an intention to separate completely methods dealing with bibliographic repositories (as defined in interface BibRefQuery) and methods helping with other things (as defined here). This box of bricks approach helps to use different communication protocols for bibliographic and supporting repositories. For example, the performance can be sometimes improved when the client loads separately all controlled vocabularies and use them locally while the access to the bibliographic repository is still remote.

    The implementation is advised to used the following constructor

        public NameOfAnImplementation (String[] args, Hashtable props) {...}
    where both args and props contain implementation specific parameters and properties. However, some properties are more probable to be used - the suggested names for them are defined also in this interface (e.g. INIT_PROP_LOG).

    The use of this constructor makes easier to load dynamically different supporting implementations.

    Martin Senger, Matthew Pocock