diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java index e7ba384284df73d511fa0ee7bbe54b9b77d0a39c..0a274073be1970fb9543c613dc89f687539344ca 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/api/v1/GeneralInformationService.java @@ -203,7 +203,7 @@ public class GeneralInformationService extends AbstractServer<IGeneralInformatio public int getMinorVersion() { - return 16; + return 17; } private Map<String, List<RoleAssignmentPE>> getRoleAssignmentsPerSpace() diff --git a/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/IGeneralInformationService.java b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/IGeneralInformationService.java index e5aa1890fc6d14fbd077f544386145ee9cbcf948..af737119ac5b5d561418d1ec8ab474231e2c6248 100644 --- a/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/IGeneralInformationService.java +++ b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/IGeneralInformationService.java @@ -102,11 +102,28 @@ public interface IGeneralInformationService extends IRpcService public List<Sample> searchForSamples(String sessionToken, SearchCriteria searchCriteria); /** - * Return all samples that match the search criteria. Available since minor version 16. + * Return all samples that match the search criteria. Available since minor version 17. + * <p> + * The fetch options set is interpreted by the following rules. + * <ul> + * <li>If it does not contain {@link SampleFetchOption#PROPERTIES} only the basic attributes are + * returned for all samples including possible ancestors and descendants. + * <li>{@link SampleFetchOption#CHILDREN} will be ignored if + * {@link SampleFetchOption#DESCENDANTS} is in the set. + * <li>{@link SampleFetchOption#PARENTS} will be ignored if {@link SampleFetchOption#ANCESTORS} + * is in the set. + * <li>It is possible to combine {@link SampleFetchOption#CHILDREN}/ + * {@link SampleFetchOption#DESCENDANTS} with {@link SampleFetchOption#PARENTS}/ + * {@link SampleFetchOption#ANCESTORS}. + * </ul> + * The samples of the returned list also contain appropriated fetch options sets which tells + * whether one can expect properties, children, or parents. Note, that only the top-level + * samples can have both children or samples. For descendants and ancestors navigation is + * possible only in one direction. * * @param searchCriteria The sample metadata values to be matched against. * @param fetchOptions Options that control which parts of the samples are fetched. - * @since 1.16 + * @since 1.17 */ public List<Sample> searchForSamples(String sessionToken, SearchCriteria searchCriteria, EnumSet<SampleFetchOption> fetchOptions); diff --git a/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SampleFetchOption.java b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SampleFetchOption.java index d9ad36c364d092ed09a40c9497c1c772ebabe90d..d519d6dfd6690f8d393b1ea2498e36add26ba9e0 100644 --- a/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SampleFetchOption.java +++ b/openbis_api/source/java/ch/systemsx/cisd/openbis/generic/shared/api/v1/dto/SampleFetchOption.java @@ -16,13 +16,42 @@ package ch.systemsx.cisd.openbis.generic.shared.api.v1.dto; +import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.FetchOption; /** - * @author pkupczyk + * Fetch options for + * {@link IGeneralInformationService#searchForSamples(String, SearchCriteria, java.util.EnumSet)}. + * The {@link Sample} objects return by the search method also contain a fetch option ( + * {@link Sample#getRetrievedFetchOptions()}) which tells which attributes are filled and which not. + * + * @author Franz-Josef Elmer */ public enum SampleFetchOption implements FetchOption { - - BASIC, PROPERTIES, PARENTS, CHILDREN, ANCESTORS, DESCENDANTS + /** + * Samples will only basic attributes (id, code, type, space code, experiment identifier, + * registrator, registration date, modification date) but no properties. + */ + BASIC, + /** + * Samples contain basic attributes and all properties. + */ + PROPERTIES, + /** + * Samples contain also their parent samples. + */ + PARENTS, + /** + * Samples contain also their children samples. + */ + CHILDREN, + /** + * Ask for all ancestors. + */ + ANCESTORS, + /** + * Ask for all descendants. + */ + DESCENDANTS }