diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/metadata/internal/NamespaceMetaDataTranslator.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/metadata/internal/NamespaceMetaDataTranslator.java | 360 |
1 files changed, 0 insertions, 360 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/metadata/internal/NamespaceMetaDataTranslator.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/metadata/internal/NamespaceMetaDataTranslator.java deleted file mode 100644 index 75a36e3f9..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/metadata/internal/NamespaceMetaDataTranslator.java +++ /dev/null @@ -1,360 +0,0 @@ -package org.eclipse.jst.jsf.core.metadata.internal; - -import java.util.Iterator; - -import org.eclipse.jst.jsf.common.metadata.Entity; -import org.eclipse.jst.jsf.common.metadata.MetadataFactory; -import org.eclipse.jst.jsf.common.metadata.MetadataPackage; -import org.eclipse.jst.jsf.common.metadata.Model; -import org.eclipse.jst.jsf.common.metadata.Trait; -import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataModelMergeAssistant; -import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataSourceModelProvider; -import org.eclipse.jst.jsf.common.metadata.internal.IMetaDataTranslator; -import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.BooleanValue; -import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.StringValue; -import org.eclipse.jst.jsf.common.metadata.traittypes.traittypes.TraitTypesFactory; -import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagAttribute; -import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.ITagElement; -import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.Namespace; - -/** - * Translates some pieces of a {@link Namespace} metadata into standard {@link Entity} and {@link Trait} metadata - * - */ -public class NamespaceMetaDataTranslator - implements IMetaDataTranslator { - /** - * {@link IMetaDataModelMergeAssistant} to use - */ - private IMetaDataModelMergeAssistant _assistant; - - public void translate(final IMetaDataModelMergeAssistant assistant) { - _assistant = assistant; - final Namespace ns = ((INamespaceModelProvider)_assistant.getSourceModelProvider()).getNamespace(); - doTranslate(ns); - } - - public boolean canTranslate(final IMetaDataSourceModelProvider modelProvider) { - if (modelProvider != null && - modelProvider instanceof INamespaceModelProvider) - return true; - return false; - } - - /** - * Set the assistant to use during the translation. Must be called prior to doTransalate(doc); - * @param assistant - */ - protected void setAssistant(final IMetaDataModelMergeAssistant assistant){ - _assistant = assistant; - } - - /** - * Transforms the Namespace into entities and traits of a standard metadata model - * using the assistant that must be set before this call. - * @param tagLib - */ - protected void doTranslate(final Namespace tagLib){ - createTags(tagLib); - createTagfileTraits(tagLib); - } - - /** - * @param entity - * @param key - * @param value - */ - protected void createSimpleStringEntityTraitIfNecessary(final Entity entity, final String key, - final String value) { - Trait t = findTraitOnEntityById(entity, key); - if (t == null){ - t = internalCreateTrait(entity, key); - - StringValue val = TraitTypesFactory.eINSTANCE.createStringValue(); - val.setValue(value); - - t.setValue(val); - } - } - - /** - * @param entity - * @param key - * @param value - */ - protected void createSimpleBooleanObjectEntityTraitIfNecessary(final Entity entity, - String key, boolean value) { - - Trait t = findTraitOnEntityById(entity, key); - if (t == null){ - t = internalCreateTrait(entity, key); - - BooleanValue val = TraitTypesFactory.eINSTANCE.createBooleanValue(); - val.setTrue(value); - - t.setValue(val); - } - - } - - /** - * @param entity - * @param key - * @return Trait - */ - protected Trait internalCreateTrait(final Entity entity, final String key) { - Trait t = MetadataFactory.eINSTANCE.createTrait(); - t.setId(key); - t.setSourceModelProvider(_assistant.getSourceModelProvider()); - entity.getTraits().add(t); - return t; - } - - /** - * @param entity - * @param key - * @return Trait - */ - protected Trait findTraitOnEntityById(final Entity entity, final String key) { - for (Iterator it=entity.getTraits().iterator();it.hasNext();){ - Trait t = (Trait)it.next(); - if (key.equals(t.getId())) - return t; - } - return null; - } - - /** - * @param nodeName - * @return Entity - */ - protected Entity findTagEntity(final String nodeName) { - for (Iterator it=getMergedModel().getChildEntities().iterator();it.hasNext();){ - Entity entity = (Entity)it.next(); - if (nodeName.equals(entity.getId())) - return entity; - } - return null; - } - - /** - * @param tag - * @param attributeName - * @return Attribute entity for supplied attribute name and given Tag entity. Will return null if not found. - */ - protected Entity findAttributeEntityForTagEntity(final Entity tag, final String attributeName) { - for (Iterator it=tag.getChildEntities().iterator();it.hasNext();){ - Entity attr = (Entity)it.next(); - if (attributeName.equals(attr.getId())) - return attr; - } - return null; - } - /** - * Create entities for tags - * @param tagLib - */ - protected void createTags(final Namespace tagLib) { - for (final ITagElement tag : tagLib.getViewElements()){ - Entity entity = findTagEntity(tag.getName()); - if (entity == null){ - entity = MetadataFactory.eINSTANCE.createEntity(); - entity.setId(getTagNodeName(tag)); - entity.setType("tag"); //$NON-NLS-1$ - getMergedModel().getChildEntities().add(entity); - } - setTagEntityTraits(tag, entity); - } - - } - - /** - * @param tag - * @return tag node name - */ - protected String getTagNodeName(final ITagElement tag) { - return tag.getName(); - } - - /** - * Sets the standard traits for a tag entity from the element declaration - * @param tag - * @param entity - */ - protected void setTagEntityTraits(final ITagElement tag, final Entity entity) { - createSimpleStringEntityTraitIfNecessary(entity, "display-label", getTagDisplayName(tag)); //$NON-NLS-1$ - createSimpleStringEntityTraitIfNecessary(entity, "description", getTagDescription(tag)); //$NON-NLS-1$ - createSimpleStringEntityTraitIfNecessary(entity, "small-icon", getTagSmallIcon(tag)); //$NON-NLS-1$ - createSimpleStringEntityTraitIfNecessary(entity, "large-icon", getTagLargeIcon(tag)); //$NON-NLS-1$ - createSimpleBooleanObjectEntityTraitIfNecessary(entity, "expert", getTagIsExpert(tag)); //$NON-NLS-1$ - createSimpleBooleanObjectEntityTraitIfNecessary(entity, "hidden", getTagIsHidden(tag)); //$NON-NLS-1$ - - createAttributeEntities(entity, tag); - } - - /** - * @param tagEntity - * @param tag - */ - protected void createAttributeEntities(final Entity tagEntity, final - ITagElement tag) { - - for (final ITagAttribute tagAttr : tag.getAttributes().values()){ - Entity attr = findAttributeEntityForTagEntity(tagEntity, tagAttr.getName()); - if (attr == null) { - attr = MetadataFactory.eINSTANCE.createEntity(); - attr.setId(tagAttr.getName()); - tagEntity.getChildEntities().add(attr); - } - createAttributeTraits(attr, tagAttr); - } - - - } - - /** - * @param attr - * @param tagAttr - */ - protected void createAttributeTraits(final Entity attr, - final ITagAttribute tagAttr) { - - createSimpleStringEntityTraitIfNecessary(attr, "description", getTagAttributeDescription(tagAttr)); //$NON-NLS-1$ - createSimpleBooleanObjectEntityTraitIfNecessary(attr, "required", getTagAttributeIsRequired(tagAttr)); //$NON-NLS-1$ - createSimpleStringEntityTraitIfNecessary(attr, "default-value", getTagAttributeDefaultValue(tagAttr)); //$NON-NLS-1$ - } - - /** - * @param tagAttr - * @return null. subclass should override if ITagAttribute has the metadata. - */ - protected String getTagAttributeDescription(final ITagAttribute tagAttr) {return tagAttr.getDescription();} - - /** - * @param tagAttr - * @return false. subclass should override if ITagAttribute has the metadata. - */ - protected boolean getTagAttributeIsRequired(final ITagAttribute tagAttr) {return tagAttr.isRequired();} - - /** - * @param tagAttr - * @return null. subclass should override if ITagAttribute has the metadata. - */ - protected String getTagAttributeDefaultValue(final ITagAttribute tagAttr) {return null;} - - /** - * @param tag - * @return false. subclass should override if ITagElement has the metadata. - */ - protected boolean getTagIsHidden(final ITagElement tag) {return false;} - - /** - * @param tag - * @return false. subclass should override if ITagElement has the metadata. - */ - protected boolean getTagIsExpert(final ITagElement tag) {return false;} - - /** - * @param tag - * @return null. subclass should override if ITagElement has the metadata. - */ - protected String getTagLargeIcon(final ITagElement tag) {return null;} - - /** - * @param tag - * @return null. subclass should override if ITagElement has the metadata. - */ - protected String getTagSmallIcon(ITagElement tag) {return null;} - - /** - * @param tag - * @return null. subclass should override if ITagElement has the metadata. - */ - protected String getTagDescription(final ITagElement tag) {return null;} - - /** - * @param tag - * @return tag.getElementName() - */ - protected String getTagDisplayName(ITagElement tag) {return tag.getName();} - - /** - * Creates standard traits for tag file entity from CMDocument metadata - * @param ns - */ - protected void createTagfileTraits(final Namespace ns) { - Model model = getMergedModel(); - - createSimpleStringEntityTraitIfNecessary(model, "display-label", getNamespaceDisplayLabel()); //$NON-NLS-1$ - createSimpleStringEntityTraitIfNecessary(model, "description", getNamespaceDescription()); //$NON-NLS-1$ - createSimpleStringEntityTraitIfNecessary(model, "default-prefix", getNamespaceDefaultPrefix()); //$NON-NLS-1$ - createSimpleBooleanObjectEntityTraitIfNecessary(model, "expert", getNamespaceExpert()); //$NON-NLS-1$ - createSimpleBooleanObjectEntityTraitIfNecessary(model, "hidden", getNamespaceHidden()); //$NON-NLS-1$ - - } - - /** - * @return the display label to use for this model. Subclasses should override if model has the meta data. - */ - protected String getNamespaceDisplayLabel(){ - return getMergedModel().getId(); - } - - /** - * @return default prefix to use for tags. Returns null. Subclasses should override if model has the meta data. - */ - protected String getNamespaceDefaultPrefix(){ - return null; - } - - /** - * @return description to use. Default is the URI. Subclasses should override if model has the meta data. - */ - protected String getNamespaceDescription(){ - return getMergedModel().getId(); - } - - /** - * @return false. Subclasses should override if model has the meta data. - */ - protected boolean getNamespaceExpert() { return false;} - - /** - * @return false. Subclasses should override if model has the meta data. - */ - protected boolean getNamespaceHidden() { -// Model model = (Model)_assistant.getMergedModel().getRoot(); -// if (model != null) { -// return model.getChildEntities().size() == 0 ? true : false; -// } - return false; - } - - /** - * @return a model of all entities and traits - */ - protected Model getMergedModel() { - Model model = (Model)_assistant.getMergedModel().getRoot(); - if (model == null){ - //need to create model key object - Model tld = createTLDModel(); - _assistant.getMergedModel().setRoot(tld); - model = (Model)_assistant.getMergedModel().getRoot(); - } - return model; - } - - /** - * @return new model - */ - protected Model createTLDModel() { - final Model entity = getFactory().createModel(); - entity.setId(_assistant.getMergedModel().getModelContext().getModelIdentifier()); - return entity; - } - - private MetadataFactory getFactory(){ - return (MetadataFactory) MetadataPackage.eINSTANCE.getEFactoryInstance(); - } - -} |