@@ -0,0 +1,1732 @@
+package edu.northwestern.bioinformatics.studycalendar.dataproviders.api;%0A%0Aimport edu.northwestern.bioinformatics.studycalendar.domain.Study;%0A%0Aimport java.util.List;%0A%0A/**%0A * @author Rhett Sutphin%0A */%0Apublic interface StudyProvider %7B%0A    /**%0A     * Retrieve and return new %7B@link Study%7D instances which match the identities%0A     * associated with the input studies.%0A     * The instances must be returned in the same order as the input set.%0A     * If the provider doesn't know about one, it must return null in its position%0A     * in the list.%0A     * %3Cp%3E%0A     * Particular care must be taken with the assignedIdentifier field in the%0A     * returned %3Ctt%3EStudy%3C/tt%3E.  This field may be modified by users of PSC,%0A     * so an implementation should not store a crucial value there.  Use%0A     * %7B@link edu.northwestern.bioinformatics.studycalendar.domain.Study#getSecondaryIdentifiers()%7D%0A     * instead.%0A     * %3Cp%3E%0A     * Implementors must not modify the input studies -- they should return new,%0A     * clean instances which contain whatever information this provider offers.%0A     * %3Cp%3E%0A     * Implementors may never return null from this method and must always return%0A     * a list of the same length as the input list.%0A     */%0A    List%3CStudy%3E getStudies(List%3CStudy%3E parameters);%0A%0A    /**%0A     * Perform a search of the %7B@link Study%7D instances available from this provider.%0A     * @param partialName A substring of the desired name%0A     */%0A    List%3CStudy%3E search(String partialName);%0A%0A    /**%0A     * A unique string that will be used to distinguish instances obtained from this provider%0A     * from instances created locally or obtained from other providers.  Must be less than%0A     * 250 characters.%0A     */%0A    String providerToken();%0A%7D%0A

Define StudyProvider API. #771.