| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package uk.ac.ic.wlgitbridge.writelatex.model;
- import uk.ac.ic.wlgitbridge.bridge.CandidateSnapshot;
- import uk.ac.ic.wlgitbridge.bridge.RawDirectoryContents;
- import uk.ac.ic.wlgitbridge.bridge.WritableRepositoryContents;
- import uk.ac.ic.wlgitbridge.bridge.WriteLatexDataSource;
- import uk.ac.ic.wlgitbridge.writelatex.api.request.exception.FailedConnectionException;
- import uk.ac.ic.wlgitbridge.writelatex.api.request.getdoc.SnapshotGetDocRequest;
- import uk.ac.ic.wlgitbridge.writelatex.api.request.getdoc.exception.InvalidProjectException;
- import uk.ac.ic.wlgitbridge.writelatex.filestore.store.WLFileStore;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * Created by Winston on 06/11/14.
- */
- public class WLDataModel implements WriteLatexDataSource {
- private final Map<String, WLProject> projects;
- private final WLFileStore fileStore;
- public WLDataModel(String rootGitDirectoryPath) {
- projects = new HashMap<String, WLProject>();
- fileStore = new WLFileStore(rootGitDirectoryPath);
- }
- @Override
- public boolean repositoryExists(String name) throws FailedConnectionException {
- SnapshotGetDocRequest snapshotGetDocRequest = new SnapshotGetDocRequest(name);
- snapshotGetDocRequest.request();
- try {
- snapshotGetDocRequest.getResult().getVersionID();
- } catch (InvalidProjectException e) {
- return false;
- }
- return true;
- }
- @Override
- public List<WritableRepositoryContents> getWritableRepositories(String name) throws FailedConnectionException, InvalidProjectException {
- return updateProjectWithName(name);
- }
- @Override
- public CandidateSnapshot createCandidateSnapshot(RawDirectoryContents rawDirectoryContents) {
- return null;
- }
- @Override
- public void approveCandidateSnapshot(CandidateSnapshot candidateSnapshot) {
- }
- private List<WritableRepositoryContents> updateProjectWithName(String name) throws FailedConnectionException, InvalidProjectException {
- return fileStore.updateForProject(getProjectWithName(name));
- }
- private WLProject getProjectWithName(String name) {
- WLProject project;
- if (projects.containsKey(name)) {
- project = projects.get(name);
- } else {
- project = new WLProject(name);
- projects.put(name, project);
- }
- return project;
- }
- }
|