/******************************************************************************* * Copyright (c) 2007 Red Hat, Inc. * Distributed under license by 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.jboss.tools.common.model.ui.navigator.decorator; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.jboss.tools.common.model.ui.ModelUIPlugin; /** * @author Viacheslav Kabanovich */ public class Variable implements DecoratorConstants { public static Variable NAME = new Variable("name", "default label"); //$NON-NLS-1$ //$NON-NLS-2$ String name; String parameters = ""; //$NON-NLS-1$ String description; ICustomVariable custom; public Variable() {} Variable(String name, String description) { this.name = name; this.description = description; } public String getName() { return name; } public String getDescription() { return description; } public String getRuleText() { return RULE_OPENING + name + parameters + RULE_CLOSING; } public String toString() { if(description == null || description.length() == 0) { return name; } return name + parameters + " - " + description; //$NON-NLS-1$ } public void load(IConfigurationElement element) { name = element.getAttribute(ATTR_NAME); int i = name.indexOf('('); if(i >= 0) { parameters = name.substring(i); name = name.substring(0, i); } description = element.getAttribute(ATTR_DESCRIPTION); String cls = element.getAttribute(ATTR_CLASS); if(cls != null && cls.length() > 0) { try { custom = (ICustomVariable)element.createExecutableExtension(ATTR_CLASS); } catch (CoreException e) { ModelUIPlugin.getPluginLog().logError(e); } catch (ClassCastException e1) { ModelUIPlugin.getPluginLog().logError("Attribute " + ATTR_CLASS + " must be instanceof ICustomVariable", e1); //$NON-NLS-1$ //$NON-NLS-2$ } } } }