diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionProfileRepository.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionProfileRepository.java | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionProfileRepository.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionProfileRepository.java deleted file mode 100644 index 694ae57176..0000000000 --- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPConnectionProfileRepository.java +++ /dev/null @@ -1,225 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.db.internal; - -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.datatools.connectivity.IConnectionProfile; -import org.eclipse.datatools.connectivity.IProfileListener; -import org.eclipse.datatools.connectivity.ProfileManager; -import org.eclipse.jpt.db.ConnectionProfile; -import org.eclipse.jpt.db.ConnectionProfileRepository; -import org.eclipse.jpt.db.ConnectionProfileListener; -import org.eclipse.jpt.utility.internal.ClassTools; -import org.eclipse.jpt.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.utility.internal.iterators.TransformationIterator; - -/** - * Wrap the DTP ProfileManager. - */ -public final class DTPConnectionProfileRepository - implements ConnectionProfileRepository -{ - private ProfileManager dtpProfileManager; - - private LocalProfileListener profileListener; - - private final Vector<DTPConnectionProfileWrapper> connectionProfiles = new Vector<DTPConnectionProfileWrapper>(); - - - // ********** singleton ********** - - private static final DTPConnectionProfileRepository INSTANCE = new DTPConnectionProfileRepository(); - - public static DTPConnectionProfileRepository instance() { - return INSTANCE; - } - - /** - * 'private' to ensure singleton - */ - private DTPConnectionProfileRepository() { - super(); - } - - - // ********** lifecycle ********** - - /** - * called by plug-in - */ - public synchronized void start() { - this.dtpProfileManager = ProfileManager.getInstance(); - this.profileListener = new LocalProfileListener(); - this.dtpProfileManager.addProfileListener(this.profileListener); - for (IConnectionProfile dtpProfile : this.dtpProfileManager.getProfiles()) { - this.connectionProfiles.add(new DTPConnectionProfileWrapper(dtpProfile)); - } - } - - /** - * called by plug-in - */ - public synchronized void stop() { - for (DTPConnectionProfileWrapper profile : this.connectionProfiles) { - profile.dispose(); - } - this.connectionProfiles.clear(); - this.dtpProfileManager.removeProfileListener(this.profileListener); - this.profileListener = null; - this.dtpProfileManager = null; - } - - - // ********** profiles ********** - - public synchronized Iterator<ConnectionProfile> connectionProfiles() { - return new CloneIterator<ConnectionProfile>(this.connectionProfiles); // read-only - } - - private synchronized Iterator<DTPConnectionProfileWrapper> connectionProfileWrappers() { - return new CloneIterator<DTPConnectionProfileWrapper>(this.connectionProfiles); // read-only - } - - public int connectionProfilesSize() { - return this.connectionProfiles.size(); - } - - public Iterator<String> connectionProfileNames() { - return new TransformationIterator<DTPConnectionProfileWrapper, String>(this.connectionProfileWrappers()) { - @Override - protected String transform(DTPConnectionProfileWrapper profile) { - return profile.getName(); - } - }; - } - - public boolean containsConnectionProfileNamed(String name) { - return ! this.connectionProfileNamed(name).isNull(); - } - - public ConnectionProfile connectionProfileNamed(String name) { - for (Iterator<DTPConnectionProfileWrapper> stream = this.connectionProfileWrappers(); stream.hasNext(); ) { - DTPConnectionProfileWrapper profile = stream.next(); - if (profile.getName().equals(name)) { - return profile; - } - } - return NullConnectionProfile.instance(); - } - - synchronized DTPConnectionProfileWrapper addConnectionProfile(IConnectionProfile dtpConnectionProfile) { - for (DTPConnectionProfileWrapper wrapper : this.connectionProfiles) { - if (wrapper.wraps(dtpConnectionProfile)) { - throw new IllegalStateException("duplicate connection profile: " + dtpConnectionProfile.getName()); //$NON-NLS-1$ - } - } - DTPConnectionProfileWrapper wrapper = new DTPConnectionProfileWrapper(dtpConnectionProfile); - this.connectionProfiles.add(wrapper); - return wrapper; - } - - synchronized DTPConnectionProfileWrapper removeConnectionProfile(IConnectionProfile dtpConnectionProfile) { - for (Iterator<DTPConnectionProfileWrapper> stream = this.connectionProfiles.iterator(); stream.hasNext(); ) { - DTPConnectionProfileWrapper wrapper = stream.next(); - if (wrapper.wraps(dtpConnectionProfile)) { - stream.remove(); - return wrapper; - } - } - throw new IllegalStateException("invalid connection profile: " + dtpConnectionProfile.getName()); //$NON-NLS-1$ - } - - synchronized DTPConnectionProfileWrapper connectionProfile(IConnectionProfile dtpConnectionProfile) { - for (DTPConnectionProfileWrapper wrapper : this.connectionProfiles) { - if (wrapper.wraps(dtpConnectionProfile)) { - return wrapper; - } - } - throw new IllegalStateException("invalid connection profile: " + dtpConnectionProfile.getName()); //$NON-NLS-1$ - } - - - // ********** Object overrides ********** - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(ClassTools.toStringClassNameForObject(this)); - sb.append((this.connectionProfiles != null) ? this.connectionProfiles : "<'connectionProfiles' uninitialized>"); //$NON-NLS-1$ - return sb.toString(); - } - - - // ********** listeners ********** - - public void addConnectionProfileListener(ConnectionProfileListener listener) { - this.profileListener.addConnectionProfileListener(listener); - } - - public void removeConnectionProfileListener(ConnectionProfileListener listener) { - this.profileListener.removeConnectionProfileListener(listener); - } - - - // ********** listener ********** - - /** - * Keep the repository in synch with the DTP profile manager - * and forward events to the repository's listeners. - */ - private class LocalProfileListener implements IProfileListener { - private Vector<ConnectionProfileListener> listeners = new Vector<ConnectionProfileListener>(); - - LocalProfileListener() { - super(); - } - - void addConnectionProfileListener(ConnectionProfileListener listener) { - this.listeners.add(listener); - } - - void removeConnectionProfileListener(ConnectionProfileListener listener) { - this.listeners.remove(listener); - } - - private Iterator<ConnectionProfileListener> listeners() { - return new CloneIterator<ConnectionProfileListener>(this.listeners); - } - - // ********** IProfileListener implementation ********** - - public void profileAdded(IConnectionProfile dtpProfile) { - // synch the repository then notify listeners - DTPConnectionProfileWrapper profile = DTPConnectionProfileRepository.this.addConnectionProfile(dtpProfile); - for (Iterator<ConnectionProfileListener> stream = this.listeners(); stream.hasNext(); ) { - stream.next().connectionProfileReplaced(NullConnectionProfile.instance(), profile); - } - } - - public void profileChanged(IConnectionProfile dtpProfile) { - DTPConnectionProfileWrapper profile = DTPConnectionProfileRepository.this.connectionProfile(dtpProfile); - for (Iterator<ConnectionProfileListener> stream = this.listeners(); stream.hasNext(); ) { - stream.next().connectionProfileChanged(profile); - } - } - - public void profileDeleted(IConnectionProfile dtpProfile) { - // synch the repository then notify listeners - DTPConnectionProfileWrapper profile = DTPConnectionProfileRepository.this.removeConnectionProfile(dtpProfile); - for (Iterator<ConnectionProfileListener> stream = this.listeners(); stream.hasNext(); ) { - stream.next().connectionProfileReplaced(profile, NullConnectionProfile.instance()); - } - } - - } - -} |