Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,18 @@ public class BrAPIGermplasmDAO {

private final ProgramDAO programDAO;
private final ImportDAO importDAO;
private final BrAPIDAOUtil brAPIDAOUtil;

@Property(name = "brapi.server.reference-source")
private String referenceSource;

ProgramCache<String, BrAPIGermplasm> programGermplasmCache;

@Inject
public BrAPIGermplasmDAO(ProgramDAO programDAO, ImportDAO importDAO) {
public BrAPIGermplasmDAO(ProgramDAO programDAO, ImportDAO importDAO, BrAPIDAOUtil brAPIDAOUtil) {
this.programDAO = programDAO;
this.importDAO = importDAO;
this.brAPIDAOUtil = brAPIDAOUtil;
}

@PostConstruct
Expand Down Expand Up @@ -119,7 +121,7 @@ private Map<String, BrAPIGermplasm> fetchProgramGermplasm(UUID programId) throws
BrAPIGermplasmSearchRequest germplasmSearch = new BrAPIGermplasmSearchRequest();
germplasmSearch.externalReferenceIDs(List.of(programId.toString()));
germplasmSearch.externalReferenceSources(List.of(String.format("%s/programs", referenceSource)));
return processGermplasmForDisplay(BrAPIDAOUtil.search(
return processGermplasmForDisplay(brAPIDAOUtil.search(
api::searchGermplasmPost,
api::searchGermplasmSearchResultsDbIdGet,
germplasmSearch
Expand Down Expand Up @@ -211,7 +213,7 @@ private Map<String,BrAPIGermplasm> processGermplasmForDisplay(List<BrAPIGermplas
public List<BrAPIGermplasm> importBrAPIGermplasm(List<BrAPIGermplasm> brAPIGermplasmList, UUID programId, ImportUpload upload) throws ApiException {
GermplasmApi api = new GermplasmApi(programDAO.getCoreClient(programId));
try {
Callable<List<BrAPIGermplasm>> postFunction = () -> BrAPIDAOUtil.post(brAPIGermplasmList, upload, api::germplasmPost, importDAO::update);
Callable<List<BrAPIGermplasm>> postFunction = () -> brAPIDAOUtil.post(brAPIGermplasmList, upload, api::germplasmPost, importDAO::update);
return programGermplasmCache.post(programId, postFunction);
} catch (ApiException e) {
throw e;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,16 @@
public class BrAPICrossDAO {

private BrAPIProvider brAPIProvider;
private final BrAPIDAOUtil brAPIDAOUtil;

@Inject
public BrAPICrossDAO(BrAPIProvider brAPIProvider) {
public BrAPICrossDAO(BrAPIProvider brAPIProvider, BrAPIDAOUtil brAPIDAOUtil) {
this.brAPIProvider = brAPIProvider;
this.brAPIDAOUtil = brAPIDAOUtil;
}

public List<BrAPICross> createBrAPICrosses(List<BrAPICross> brAPICrossList) throws ApiException {
CrossesApi api = brAPIProvider.getCrossesApi(BrAPIClientType.CORE);
return BrAPIDAOUtil.post(brAPICrossList, api::crossesPost);
return brAPIDAOUtil.post(brAPICrossList, api::crossesPost);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,20 @@ public class BrAPIListDAO {

private ProgramDAO programDAO;
private ImportDAO importDAO;
private final BrAPIDAOUtil brAPIDAOUtil;

@Inject
public BrAPIListDAO(ProgramDAO programDAO, ImportDAO importDAO) {
public BrAPIListDAO(ProgramDAO programDAO, ImportDAO importDAO, BrAPIDAOUtil brAPIDAOUtil) {
this.programDAO = programDAO;
this.importDAO = importDAO;
this.brAPIDAOUtil = brAPIDAOUtil;
}

public List<BrAPIListSummary> getListByName(List<String> listNames, UUID programId) throws ApiException {
BrAPIListSearchRequest listSearch = new BrAPIListSearchRequest();
listSearch.listNames(listNames);
ListsApi api = new ListsApi(programDAO.getCoreClient(programId));
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchListsPost,
api::searchListsSearchResultsDbIdGet,
listSearch
Expand All @@ -61,7 +63,7 @@ public List<BrAPIListSummary> getListByTypeAndExternalRef(BrAPIListTypes listTyp
.listType(listType);

ListsApi api = new ListsApi(programDAO.getCoreClient(programId));
return processListsForProgram(BrAPIDAOUtil.search(
return processListsForProgram(brAPIDAOUtil.search(
api::searchListsPost,
api::searchListsSearchResultsDbIdGet,
searchRequest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,13 @@ public class BrAPILocationDAO {

private ProgramDAO programDAO;
private ImportDAO importDAO;
private final BrAPIDAOUtil brAPIDAOUtil;

@Inject
public BrAPILocationDAO(ProgramDAO programDAO, ImportDAO importDAO) {
public BrAPILocationDAO(ProgramDAO programDAO, ImportDAO importDAO, BrAPIDAOUtil brAPIDAOUtil) {
this.programDAO = programDAO;
this.importDAO = importDAO;
this.brAPIDAOUtil = brAPIDAOUtil;
}

public List<BrAPILocation> getLocationsByName(List<String> locationNames, UUID programId) throws ApiException {
Expand All @@ -49,7 +51,7 @@ public List<BrAPILocation> getLocationsByName(List<String> locationNames, UUID p
locationSearchRequest.setLocationNames(new ArrayList<>(locationNames));
//TODO: Locations don't connect to programs. How to get locations for the program?
LocationsApi api = new LocationsApi(programDAO.getCoreClient(programId));
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchLocationsPost,
api::searchLocationsSearchResultsDbIdGet,
locationSearchRequest
Expand All @@ -58,7 +60,7 @@ public List<BrAPILocation> getLocationsByName(List<String> locationNames, UUID p

public List<BrAPILocation> createBrAPILocation(List<BrAPILocation> brAPILocationList, UUID programId, ImportUpload upload) throws ApiException {
LocationsApi api = new LocationsApi(programDAO.getCoreClient(programId));
return BrAPIDAOUtil.post(brAPILocationList, upload, api::locationsPost, importDAO::update);
return brAPIDAOUtil.post(brAPILocationList, upload, api::locationsPost, importDAO::update);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,14 @@ public class BrAPIObservationDAO {

private ProgramDAO programDAO;
private ImportDAO importDAO;
private final BrAPIDAOUtil brAPIDAOUtil;
private UUID programId;

@Inject
public BrAPIObservationDAO(ProgramDAO programDAO, ImportDAO importDAO) {
public BrAPIObservationDAO(ProgramDAO programDAO, ImportDAO importDAO, BrAPIDAOUtil brAPIDAOUtil) {
this.programDAO = programDAO;
this.importDAO = importDAO;
this.brAPIDAOUtil = brAPIDAOUtil;
}

public List<BrAPIObservation> getObservationsByStudyName(List<String> studyNames, Program program) throws ApiException {
Expand All @@ -60,7 +62,7 @@ public List<BrAPIObservation> getObservationsByStudyName(List<String> studyNames
observationSearchRequest.setStudyNames(new ArrayList<>(studyNames));
ObservationsApi api = new ObservationsApi(programDAO.getCoreClient(program.getId()));
this.programId = program.getId();
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchObservationsPost,
this::searchObservationsSearchResultsDbIdGet,
observationSearchRequest
Expand All @@ -76,7 +78,7 @@ public List<BrAPIObservation> getObservationsByStudyName(List<String> studyNames

public List<BrAPIObservation> createBrAPIObservation(List<BrAPIObservation> brAPIObservationList, UUID programId, ImportUpload upload) throws ApiException {
ObservationsApi api = new ObservationsApi(programDAO.getCoreClient(programId));
return BrAPIDAOUtil.post(brAPIObservationList, upload, api::observationsPost, importDAO::update);
return brAPIDAOUtil.post(brAPIObservationList, upload, api::observationsPost, importDAO::update);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,13 @@ public class BrAPIObservationUnitDAO {

private ProgramDAO programDAO;
private ImportDAO importDAO;
private final BrAPIDAOUtil brAPIDAOUtil;

@Inject
public BrAPIObservationUnitDAO(ProgramDAO programDAO, ImportDAO importDAO) {
public BrAPIObservationUnitDAO(ProgramDAO programDAO, ImportDAO importDAO, BrAPIDAOUtil brAPIDAOUtil) {
this.programDAO = programDAO;
this.importDAO = importDAO;
this.brAPIDAOUtil = brAPIDAOUtil;
}

/*
Expand All @@ -69,7 +71,7 @@ public List<BrAPIObservationUnit> getObservationUnitByName(List<String> observat
observationUnitSearchRequest.programDbIds(List.of(program.getBrapiProgram().getProgramDbId()));
observationUnitSearchRequest.observationUnitNames(observationUnitNames);
ObservationUnitsApi api = new ObservationUnitsApi(programDAO.getCoreClient(program.getId()));
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchObservationunitsPost,
api::searchObservationunitsSearchResultsDbIdGet,
observationUnitSearchRequest
Expand All @@ -78,6 +80,6 @@ public List<BrAPIObservationUnit> getObservationUnitByName(List<String> observat

public List<BrAPIObservationUnit> createBrAPIObservationUnits(List<BrAPIObservationUnit> brAPIObservationUnitList, UUID programId, ImportUpload upload) throws ApiException {
ObservationUnitsApi api = new ObservationUnitsApi(programDAO.getCoreClient(programId));
return BrAPIDAOUtil.post(brAPIObservationUnitList, upload, api::observationunitsPost, importDAO::update);
return brAPIDAOUtil.post(brAPIObservationUnitList, upload, api::observationunitsPost, importDAO::update);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,19 @@
public class BrAPIObservationVariableDAO {

private ProgramDAO programDAO;
private final BrAPIDAOUtil brAPIDAOUtil;

@Inject
public BrAPIObservationVariableDAO(ProgramDAO programDAO) {
public BrAPIObservationVariableDAO(ProgramDAO programDAO, BrAPIDAOUtil brAPIDAOUtil) {
this.programDAO = programDAO;
this.brAPIDAOUtil = brAPIDAOUtil;
}

public List<BrAPIObservationVariable> getVariableByName(List<String> variableNames, UUID programId) throws ApiException {
BrAPIObservationVariableSearchRequest variableSearch = new BrAPIObservationVariableSearchRequest();
variableSearch.observationVariableNames(variableNames);
ObservationVariablesApi api = new ObservationVariablesApi(programDAO.getCoreClient(programId));
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchVariablesPost,
api::searchVariablesSearchResultsDbIdGet,
variableSearch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,19 +38,21 @@ public class BrAPIStudyDAO {

private ProgramDAO programDAO;
private ImportDAO importDAO;
private final BrAPIDAOUtil brAPIDAOUtil;

@Inject
public BrAPIStudyDAO(ProgramDAO programDAO, ImportDAO importDAO) {
public BrAPIStudyDAO(ProgramDAO programDAO, ImportDAO importDAO, BrAPIDAOUtil brAPIDAOUtil) {
this.programDAO = programDAO;
this.importDAO = importDAO;
this.brAPIDAOUtil = brAPIDAOUtil;
}

public List<BrAPIStudy> getStudyByName(List<String> studyNames, Program program) throws ApiException {
BrAPIStudySearchRequest studySearch = new BrAPIStudySearchRequest();
studySearch.programDbIds(List.of(program.getBrapiProgram().getProgramDbId()));
studySearch.studyNames(studyNames);
StudiesApi api = new StudiesApi(programDAO.getCoreClient(program.getId()));
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchStudiesPost,
api::searchStudiesSearchResultsDbIdGet,
studySearch
Expand All @@ -63,7 +65,7 @@ public List<BrAPIStudy> getStudiesByExperimentID(UUID experimentID, Program prog
studySearch.addExternalReferenceIDsItem(experimentID.toString());
studySearch.addExternalReferenceSourcesItem(BRAPI_REFERENCE_SOURCE + "/trials");
StudiesApi api = new StudiesApi(programDAO.getCoreClient(program.getId()));
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchStudiesPost,
api::searchStudiesSearchResultsDbIdGet,
studySearch
Expand All @@ -72,7 +74,7 @@ public List<BrAPIStudy> getStudiesByExperimentID(UUID experimentID, Program prog

public List<BrAPIStudy> createBrAPIStudy(List<BrAPIStudy> brAPIStudyList, UUID programId, ImportUpload upload) throws ApiException {
StudiesApi api = new StudiesApi(programDAO.getCoreClient(programId));
return BrAPIDAOUtil.post(brAPIStudyList, upload, api::studiesPost, importDAO::update);
return brAPIDAOUtil.post(brAPIStudyList, upload, api::studiesPost, importDAO::update);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,21 @@ public class BrAPITrialDAO {

private ProgramDAO programDAO;
private ImportDAO importDAO;
private final BrAPIDAOUtil brAPIDAOUtil;

@Inject
public BrAPITrialDAO(ProgramDAO programDAO, ImportDAO importDAO) {
public BrAPITrialDAO(ProgramDAO programDAO, ImportDAO importDAO, BrAPIDAOUtil brAPIDAOUtil) {
this.programDAO = programDAO;
this.importDAO = importDAO;
this.brAPIDAOUtil = brAPIDAOUtil;
}

public List<BrAPITrial> getTrialByName(List<String> trialNames, Program program) throws ApiException {
BrAPITrialSearchRequest trialSearch = new BrAPITrialSearchRequest();
trialSearch.programDbIds(List.of(program.getBrapiProgram().getProgramDbId()));
trialSearch.trialNames(trialNames);
TrialsApi api = new TrialsApi(programDAO.getCoreClient(program.getId()));
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchTrialsPost,
api::searchTrialsSearchResultsDbIdGet,
trialSearch
Expand All @@ -56,7 +58,7 @@ public List<BrAPITrial> getTrialByName(List<String> trialNames, Program program)

public List<BrAPITrial> createBrAPITrial(List<BrAPITrial> brAPITrialList, UUID programId, ImportUpload upload) throws ApiException {
TrialsApi api = new TrialsApi(programDAO.getCoreClient(programId));
return BrAPIDAOUtil.post(brAPITrialList, upload, api::trialsPost, importDAO::update);
return brAPIDAOUtil.post(brAPITrialList, upload, api::trialsPost, importDAO::update);
}

}
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/org/breedinginsight/daos/ObservationDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,12 @@

public class ObservationDAO {
private BrAPIProvider brAPIProvider;
private final BrAPIDAOUtil brAPIDAOUtil;

@Inject
public ObservationDAO(BrAPIProvider brAPIProvider) {
public ObservationDAO(BrAPIProvider brAPIProvider, BrAPIDAOUtil brAPIDAOUtil) {
this.brAPIProvider = brAPIProvider;
this.brAPIDAOUtil = brAPIDAOUtil;
}

public List<BrAPIObservation> getObservationsByVariableDbId(String observationVariableDbId) {
Expand All @@ -67,7 +69,7 @@ public List<BrAPIObservation> getObservationsByVariableDbIds(List<String> observ
.observationVariableDbIds(observationVariableDbIds);

ObservationsApi api = brAPIProvider.getObservationsAPI(BrAPIClientType.PHENO);
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchObservationsPost,
this::searchObservationsSearchResultsDbIdGet,
request
Expand All @@ -86,7 +88,7 @@ public List<BrAPIObservation> getObservationsByVariableAndBrAPIProgram(String br
.programDbIds(List.of(brapiProgramId));

ObservationsApi api = brAPIProvider.getObservationsAPI(BrAPIClientType.PHENO);
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchObservationsPost,
this::searchObservationsSearchResultsDbIdGet,
request
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/org/breedinginsight/daos/TraitDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,17 +56,19 @@ public class TraitDAO extends TraitDao {
@Property(name = "brapi.server.reference-source")
private String referenceSource;
private ObservationDAO observationDao;
private final BrAPIDAOUtil brAPIDAOUtil;
private Gson gson;

private final static String TAGS_KEY = "tags";
private final static String FULLNAME_KEY = "fullname";

@Inject
public TraitDAO(Configuration config, DSLContext dsl, BrAPIProvider brAPIProvider, ObservationDAO observationDao) {
public TraitDAO(Configuration config, DSLContext dsl, BrAPIProvider brAPIProvider, ObservationDAO observationDao, BrAPIDAOUtil brAPIDAOUtil) {
super(config);
this.dsl = dsl;
this.brAPIProvider = brAPIProvider;
this.observationDao = observationDao;
this.brAPIDAOUtil = brAPIDAOUtil;
this.gson = new Gson();
}

Expand Down Expand Up @@ -245,7 +247,7 @@ public List<BrAPIObservationVariable> searchVariables(List<String> variableIds)
.externalReferenceIDs(variableIds);

ObservationVariablesApi api = brAPIProvider.getVariablesAPI(PHENO);
return BrAPIDAOUtil.search(
return brAPIDAOUtil.search(
api::searchVariablesPost,
api::searchVariablesSearchResultsDbIdGet,
request
Expand Down
Loading