Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/cdo/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/internal/core/PapyrusRepositoryManager.java')
-rw-r--r--extraplugins/cdo/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/internal/core/PapyrusRepositoryManager.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/extraplugins/cdo/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/internal/core/PapyrusRepositoryManager.java b/extraplugins/cdo/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/internal/core/PapyrusRepositoryManager.java
index 359790fcf02..d3fc0db52e0 100644
--- a/extraplugins/cdo/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/internal/core/PapyrusRepositoryManager.java
+++ b/extraplugins/cdo/org.eclipse.papyrus.cdo.core/src/org/eclipse/papyrus/cdo/internal/core/PapyrusRepositoryManager.java
@@ -85,14 +85,17 @@ public class PapyrusRepositoryManager extends Container<IPapyrusRepository> impl
return result;
}
+ @Override
public IManagedContainer getSessionsContainer() {
return container;
}
+ @Override
public Collection<? extends IInternalPapyrusRepository> getRepositories() {
return Collections.unmodifiableCollection(repositories.values());
}
+ @Override
public IInternalPapyrusRepository createRepository(String url) {
if(getRepository(url) != null) {
throw new IllegalArgumentException("repository already exists"); //$NON-NLS-1$
@@ -110,6 +113,7 @@ public class PapyrusRepositoryManager extends Container<IPapyrusRepository> impl
return result;
}
+ @Override
public void setURL(IPapyrusRepository repository, String url) {
if(!Objects.equal(repository.getURL(), url)) {
if(getRepository(url) != null) {
@@ -127,6 +131,7 @@ public class PapyrusRepositoryManager extends Container<IPapyrusRepository> impl
}
}
+ @Override
public void removeRepository(IPapyrusRepository repository) {
if(repository.isConnected()) {
throw new IllegalArgumentException("repository is still connected"); //$NON-NLS-1$
@@ -138,11 +143,18 @@ public class PapyrusRepositoryManager extends Container<IPapyrusRepository> impl
fireElementRemovedEvent(repository);
}
+ @Override
public IInternalPapyrusRepository getRepository(String url) {
return repositories.get(url);
}
+ @Override
public IInternalPapyrusRepository getRepositoryForURI(URI uri) {
+ return getRepositoryForURI(uri, true);
+ }
+
+ @Override
+ public IInternalPapyrusRepository getRepositoryForURI(URI uri, boolean connectedOnly) {
IInternalPapyrusRepository result = null;
if(CDOUtils.isCDOURI(uri)) {
@@ -151,16 +163,27 @@ public class PapyrusRepositoryManager extends Container<IPapyrusRepository> impl
for(IInternalPapyrusRepository next : repositories.values()) {
CDOSession session = next.getCDOSession();
if((session != null) && Objects.equal(uuid, session.getRepositoryInfo().getUUID())) {
-
result = next;
break;
}
}
+
+ if((result == null) && !connectedOnly) {
+ // guess based on the last known UUIDs
+ for(IInternalPapyrusRepository next : repositories.values()) {
+ PapyrusRepository repo = CDOUtils.tryCast(next, PapyrusRepository.class);
+ if((repo != null) && Objects.equal(uuid, repo.getModel().getUUID())) {
+ result = next;
+ break;
+ }
+ }
+ }
}
return result;
}
+ @Override
public void saveRepositories() {
if(storage != null) {
try {
@@ -248,15 +271,18 @@ public class PapyrusRepositoryManager extends Container<IPapyrusRepository> impl
return result;
}
+ @Override
public ICredentialsProviderFactory getCredentialsProviderFactory() {
return credentialsProviderFactory;
}
+ @Override
public void setCredentialsProviderFactory(ICredentialsProviderFactory credentialsProviderFactory) {
this.credentialsProviderFactory = credentialsProviderFactory;
}
+ @Override
public IInternalPapyrusRepository getRepository(CDOView view) {
IInternalPapyrusRepository result = null;
@@ -284,6 +310,7 @@ public class PapyrusRepositoryManager extends Container<IPapyrusRepository> impl
return !isActive() || repositories.isEmpty();
}
+ @Override
public IPapyrusRepository[] getElements() {
return Iterables.toArray(repositories.values(), IPapyrusRepository.class);
}

Back to the top