//------------------------------------------------------------------------------ // Copyright (c) 2005, 2007 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 org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.epf.library.edit.IConfigurator; import org.eclipse.epf.library.edit.IFilter; import org.eclipse.epf.uma.MethodConfiguration; /** * @author Phong Nguyen Le * @since 1.2 */ public class ConfigurationSetter { private AdapterFactory adapterFactory; private IConfigurator configurator; private MethodConfiguration oldConfig; public ConfigurationSetter(AdapterFactory adapterFactory) { this.adapterFactory = adapterFactory; } public void set(MethodConfiguration config) { IFilter filter = ProcessUtil.getFilter(adapterFactory); configurator = filter instanceof IConfigurator ? (IConfigurator) filter : null; if(configurator != null) { oldConfig = configurator.getMethodConfiguration(); configurator.setMethodConfiguration(config); } } public void restore() { if(configurator != null) { configurator.setMethodConfiguration(oldConfig); } } public IConfigurator getConfigurator() { return configurator; } public MethodConfiguration getOldConfiguration() { return oldConfig; } }