| /******************************************************************************* |
| * Copyright (c) 2003, 2004 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 |
| *******************************************************************************/ |
| /* |
| * Created on Apr 7, 2004 |
| * |
| * To change the template for this generated file go to |
| * Window - Preferences - Java - Code Generation - Code and Comments |
| */ |
| package org.eclipse.jst.common.internal.annotations.registry; |
| |
| import java.util.ArrayList; |
| import java.util.Iterator; |
| import java.util.List; |
| |
| import org.eclipse.core.runtime.IConfigurationElement; |
| |
| |
| /** |
| * @author mdelder |
| * |
| * To change the template for this generated type comment go to Window - Preferences - Java - Code |
| * Generation - Code and Comments |
| */ |
| public class TagsetDescriptor { |
| |
| public static final String TAGSET = "AnnotationTagSet"; //$NON-NLS-1$ |
| public static final String ATT_NAME = "name"; //$NON-NLS-1$ |
| public static final String ATT_DISPLAY_NAME = "displayName"; //$NON-NLS-1$ |
| public static final String ATT_DESCRIPTION = "description"; //$NON-NLS-1$ |
| public static final String ATT_PARENT_TAGSET = "parentTagset"; //$NON-NLS-1$ |
| public static final String ATT_VALID_VALUES_HELPER = "validValuesHelper"; //$NON-NLS-1$ |
| |
| private final IConfigurationElement element; |
| |
| protected String name; |
| protected String displayName; |
| protected String description; |
| protected String parentTagset; |
| protected AttributeValuesHelper validValuesHelper; |
| |
| protected TagsetDescriptor() { |
| element = null; |
| } |
| |
| public TagsetDescriptor(IConfigurationElement element) { |
| this.element = element; |
| init(); |
| } |
| |
| /** |
| * |
| */ |
| private void init() { |
| this.name = this.element.getAttribute(ATT_NAME); |
| this.displayName = this.element.getAttribute(ATT_DISPLAY_NAME); |
| this.description = this.element.getAttribute(ATT_DESCRIPTION); |
| this.parentTagset = this.element.getAttribute(ATT_PARENT_TAGSET); |
| // set the valid values helper if there is one |
| try { |
| String validValuesHelperName = this.element.getAttribute(ATT_VALID_VALUES_HELPER); |
| if (validValuesHelperName != null) { |
| Class loaded = Class.forName(validValuesHelperName); |
| this.validValuesHelper = (AttributeValuesHelper) loaded.newInstance(); |
| } |
| } catch (Exception e) { |
| // Do nothing |
| } |
| } |
| |
| /** |
| * @return Returns the description. |
| */ |
| public String getDescription() { |
| return description; |
| } |
| |
| /** |
| * @return Returns the displayName. |
| */ |
| public String getDisplayName() { |
| return displayName; |
| } |
| |
| /** |
| * @return Returns the element. |
| */ |
| public IConfigurationElement getElement() { |
| return element; |
| } |
| |
| /** |
| * @return Returns the name. |
| */ |
| public String getName() { |
| return name; |
| } |
| |
| /** |
| * @return Returns the parentTagset. |
| */ |
| public String getParentTagset() { |
| return parentTagset; |
| } |
| |
| public TagsetDescriptor[] getDirectDependents() { |
| |
| if (getName() == null || getName().equals("")) //$NON-NLS-1$ |
| return new TagsetDescriptor[0]; |
| |
| List dependents = new ArrayList(); |
| |
| TagsetDescriptor descriptor = null; |
| for (Iterator itr = AnnotationTagsetRegistry.INSTANCE.getDescriptors().iterator(); itr.hasNext();) { |
| descriptor = (TagsetDescriptor) itr.next(); |
| if (getName().equals(descriptor.getParentTagset())) |
| dependents.add(descriptor); |
| } |
| |
| TagsetDescriptor[] descriptors = new TagsetDescriptor[dependents.size()]; |
| dependents.toArray(descriptors); |
| return descriptors; |
| } |
| |
| /** |
| * @return Returns the validValuesHelper. |
| */ |
| public AttributeValuesHelper getValidValuesHelper() { |
| return validValuesHelper; |
| } |
| |
| /** |
| * @param validValuesHelper |
| * The validValuesHelper to set. |
| */ |
| public void setValidValuesHelper(AttributeValuesHelper validValuesHelper) { |
| this.validValuesHelper = validValuesHelper; |
| } |
| } |