//------------------------------------------------------------------------------ // Copyright (c) 2005, 2006 IBM Corporation and others. // 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: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ package org.eclipse.epf.library.edit.util; import java.util.Iterator; import java.util.List; import java.util.Map; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.epf.library.edit.IReferencer; import org.eclipse.epf.library.edit.process.IColumnAware; /** * An EditingDomainComposedAdapterFactory that exposes internal data * * @author Phong Nguyen Le * @since 1.0 */ public class ExposedAdapterFactory extends EditingDomainComposedAdapterFactory implements IColumnAware, IReferencer { private Map columnIndexToNameMap; /** * @param adapterFactories */ public ExposedAdapterFactory(AdapterFactory[] adapterFactories) { super(adapterFactories); } public List getChangeListeners() { return changeNotifier; } /* * (non-Javadoc) * * @see com.ibm.library.edit.process.IColumnAware#setColumnIndexToNameMap(java.util.Map) */ public void setColumnIndexToNameMap(Map map) { columnIndexToNameMap = map; for (Iterator iter = adapterFactories.iterator(); iter.hasNext();) { Object adapterFactory = iter.next(); if (adapterFactory instanceof IColumnAware) { ((IColumnAware) adapterFactory).setColumnIndexToNameMap(map); } } } /* * (non-Javadoc) * * @see com.ibm.library.edit.process.IColumnAware#getColumnIndexToNameMap() */ public Map getColumnIndexToNameMap() { return columnIndexToNameMap; } /* (non-Javadoc) * @see org.eclipse.epf.library.edit.IReferencer#cleanUp() */ public void cleanUp() { int size = adapterFactories.size(); for (int i = 0; i < size; i++) { Object adapterFactory = adapterFactories.get(i); if(adapterFactory instanceof IReferencer) { ((IReferencer)adapterFactory).cleanUp(); } } } /* (non-Javadoc) * @see org.eclipse.epf.library.edit.IReferencer#remove(java.lang.Object) */ public boolean remove(Object ref) { boolean removed = false; int size = adapterFactories.size(); for (int i = 0; i < size; i++) { Object adapterFactory = adapterFactories.get(i); if(adapterFactory instanceof IReferencer) { ((IReferencer)adapterFactory).remove(ref); removed = true; } } return removed; } }