/******************************************************************************* * Copyright (c) 2011 Red Hat, Inc. * All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.eclipse.bpmn2.modeler.core; import java.util.ArrayList; import org.eclipse.emf.ecore.ENamedElement; public class ToolEnablement extends AbstractPropertyChangeListenerProvider { private ENamedElement tool; private Boolean enabled; private ArrayList<ToolEnablement> children = new ArrayList<ToolEnablement>(); private ToolEnablement parent; public ToolEnablement() { } public ToolEnablement(ENamedElement tool, ToolEnablement parent) { this.tool = tool; this.parent = parent; } public String getName() { return tool.getName(); } public String getPreferenceName() { if (parent == null) { return tool.getName(); } else { return parent.getPreferenceName() + "." + getName(); } } public Boolean getEnabled() { return enabled; } public void setEnabled(Boolean enabled) { this.enabled = enabled; } public void setTool(ENamedElement tool) { this.tool = tool; } public ENamedElement getTool() { return tool; } public void setChildren(ArrayList<ToolEnablement> children) { this.children = children; } public ArrayList<ToolEnablement> getChildren() { return children; } public void setParent(ToolEnablement parent) { this.parent = parent; } public ToolEnablement getParent() { return parent; } @Override public String toString() { return "ToolEnablement [tool=" + getName() + ", enabled=" + enabled + ", children=" + children + ", parent=" + (parent == null ? "null" : parent.getName()) + "]"; } public boolean isAnyChildren() { return children != null && children.size() > 0; } }