/******************************************************************************* * Copyright (c) 2003, 2005 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 API and implementation *******************************************************************************/ package org.eclipse.jst.j2ee.internal.command; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Map; import org.eclipse.emf.ecore.EObject; public class J2EEClipboard extends ArrayList { /** * Warning cleanup 12/07/2005 */ private static final long serialVersionUID = 8713021573099134096L; private Map bindings; private Map extensions; /** * J2EEClipboard constructor comment. */ public J2EEClipboard(Collection defaultClipboard) { super(defaultClipboard); } @Override public boolean addAll(Collection c) { boolean result = super.addAll(c); if (result && (c instanceof J2EEClipboard)) addAllExtra((J2EEClipboard) c); return result; } protected void addAllExtra(J2EEClipboard c) { getBindings().putAll(c.getBindings()); getExtensions().putAll(c.getExtensions()); } protected void addBinding(EObject boundObject, EObject binding) { getBindings().put(boundObject, binding); } protected void addExtension(EObject extendedObject, EObject extension) { getExtensions().put(extendedObject, extension); } public EObject getBinding(EObject o) { return (EObject) getBindings().get(o); } protected Map getBindings() { if (bindings == null) bindings = new HashMap(10); return bindings; } public EObject getExtension(EObject o) { return (EObject) getExtensions().get(o); } protected Map getExtensions() { if (extensions == null) extensions = new HashMap(10); return extensions; } public boolean hasBindings() { return bindings != null && !bindings.isEmpty(); } public boolean hasExtensions() { return extensions != null && !extensions.isEmpty(); } }