diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/AbstractTagLibDomainContentModelMetaDataTranslator.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/AbstractTagLibDomainContentModelMetaDataTranslator.java | 360 |
1 files changed, 0 insertions, 360 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/AbstractTagLibDomainContentModelMetaDataTranslator.java b/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/AbstractTagLibDomainContentModelMetaDataTranslator.java deleted file mode 100644 index ed0d1c54a..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.common/src/org/eclipse/jst/jsf/common/metadata/internal/AbstractTagLibDomainContentModelMetaDataTranslator.java +++ /dev/null @@ -1,360 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2007 Oracle 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: - * Oracle Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.jsf.common.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.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.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; - -/** - * Abstract class that the taglib domain translators use to - * convert the CM model to a standard meta data model - * - */ -public abstract class AbstractTagLibDomainContentModelMetaDataTranslator { - - /** - * {@link IMetaDataModelMergeAssistant} to use - */ - protected IMetaDataModelMergeAssistant _assistant; - - /** - * Set the assistant to use during the translation. Must be called prior to doTransalate(doc); - * @param assistant - */ - protected void setAssistant(IMetaDataModelMergeAssistant assistant){ - _assistant = assistant; - } - - /** - * Transforms the CMDocument into entities and traits of a standard metadata model - * using the assistant that must be set before this call. - * @param doc - */ - protected void doTranslate(CMDocument doc){ - createTags(doc); - createTagfileTraits(doc); - } - - /** - * @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 doc - */ - protected void createTags(final CMDocument doc) { - for (Iterator it=doc.getElements().iterator();it.hasNext();){ - CMElementDeclaration tag = (CMElementDeclaration)it.next(); - Entity entity = findTagEntity(tag.getNodeName()); - 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(CMElementDeclaration tag) { - return tag.getNodeName(); - } - - /** - * Sets the standard traits for a tag entity from the element declaration - * @param tag - * @param entity - */ - protected void setTagEntityTraits(CMElementDeclaration tag, 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(Entity tagEntity, - CMElementDeclaration tag) { - - for (Iterator it=tag.getAttributes().iterator();it.hasNext();){ - CMAttributeDeclaration cmAttr = (CMAttributeDeclaration)it.next(); - Entity attr = findAttributeEntityForTagEntity(tagEntity, cmAttr.getAttrName()); - if (attr == null) { - attr = MetadataFactory.eINSTANCE.createEntity(); - attr.setId(cmAttr.getAttrName()); - tagEntity.getChildEntities().add(attr); - } - createAttributeTraits(attr, cmAttr); - } - - - } - - /** - * @param attr - * @param cmAttr - */ - protected void createAttributeTraits(Entity attr, - CMAttributeDeclaration cmAttr) { - - createSimpleStringEntityTraitIfNecessary(attr, "description", getTagAttributeDescription(cmAttr)); //$NON-NLS-1$ - createSimpleBooleanObjectEntityTraitIfNecessary(attr, "required", getTagAttributeIsRequired(cmAttr)); //$NON-NLS-1$ - createSimpleStringEntityTraitIfNecessary(attr, "default-value", getTagAttributeDefaultValue(cmAttr)); //$NON-NLS-1$ - } - - /** - * @param cmAttr - * @return null. subclass should override if CMAttributeDeclaration has the metadata. - */ - protected String getTagAttributeDescription(CMAttributeDeclaration cmAttr) {return null;} - - /** - * @param cmAttr - * @return false. subclass should override if CMAttributeDeclaration has the metadata. - */ - protected boolean getTagAttributeIsRequired(CMAttributeDeclaration cmAttr) {return cmAttr.getUsage() == CMAttributeDeclaration.REQUIRED;} - - /** - * @param cmAttr - * @return null. subclass should override if CMAttributeDeclaration has the metadata. - */ - protected String getTagAttributeDefaultValue(CMAttributeDeclaration cmAttr) {return null;} - - /** - * @param tag - * @return false. subclass should override if CMElementDeclaration has the metadata. - */ - protected boolean getTagIsHidden(CMElementDeclaration tag) {return false;} - - /** - * @param tag - * @return false. subclass should override if CMElementDeclaration has the metadata. - */ - protected boolean getTagIsExpert(CMElementDeclaration tag) {return false;} - - /** - * @param tag - * @return null. subclass should override if CMElementDeclaration has the metadata. - */ - protected String getTagLargeIcon(CMElementDeclaration tag) {return null;} - - /** - * @param tag - * @return null. subclass should override if CMElementDeclaration has the metadata. - */ - protected String getTagSmallIcon(CMElementDeclaration tag) {return null;} - - /** - * @param tag - * @return null. subclass should override if CMElementDeclaration has the metadata. - */ - protected String getTagDescription(CMElementDeclaration tag) {return null;} - - /** - * @param tag - * @return tag.getElementName() - */ - protected String getTagDisplayName(CMElementDeclaration tag) {return tag.getElementName();} - - /** - * Creates standard traits for tag file entity from CMDocument metadata - * @param doc - */ - protected void createTagfileTraits(CMDocument doc) { - Model model = getMergedModel(); - - createSimpleStringEntityTraitIfNecessary(model, "display-label", getURIDisplayLabel()); //$NON-NLS-1$ - createSimpleStringEntityTraitIfNecessary(model, "description", getURIDescription()); //$NON-NLS-1$ - createSimpleStringEntityTraitIfNecessary(model, "default-prefix", getURIDefaultPrefix()); //$NON-NLS-1$ - createSimpleBooleanObjectEntityTraitIfNecessary(model, "expert", getURIExpert()); //$NON-NLS-1$ - createSimpleBooleanObjectEntityTraitIfNecessary(model, "hidden", getURIHidden()); //$NON-NLS-1$ - - } - - /** - * @return the display label to use for this model. Subclasses should override if model has the meta data. - */ - protected String getURIDisplayLabel(){ - return getMergedModel().getId(); - } - - /** - * @return default prefix to use for tags. Returns null. Subclasses should override if model has the meta data. - */ - protected String getURIDefaultPrefix(){ - return null; - } - - /** - * @return description to use. Default is the URI. Subclasses should override if model has the meta data. - */ - protected String getURIDescription(){ - return getMergedModel().getId(); - } - - /** - * @return false. Subclasses should override if model has the meta data. - */ - protected boolean getURIExpert() { return false;} - - /** - * @return false. Subclasses should override if model has the meta data. - */ - protected boolean getURIHidden() {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() { - Model entity = getFactory().createModel(); - entity.setId(_assistant.getMergedModel().getModelContext().getModelIdentifier()); - return entity; - } - - /** - * @return MetadataFactory instance - */ - protected MetadataFactory getFactory(){ - return (MetadataFactory) MetadataPackage.eINSTANCE.getEFactoryInstance(); - } - - /** - * @return CMDocument being used for the current translate call - */ - protected CMDocument getSourceModel() { - return (CMDocument)_assistant.getSourceModelProvider().getSourceModel(); - } -} |