blob: 7b13fe4afbe8f53e1f32256adf2fa0c6b3d6e8f4 [file] [log] [blame]
/**
* Copyright (c) 2007 Oracle Corporation
*
* $Id: PaletteInfoImpl.java,v 1.2 2008/11/18 22:24:03 gkessler Exp $
*/
package org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl;
import java.util.Iterator;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;
import org.eclipse.jst.jsf.common.metadata.Entity;
import org.eclipse.jst.jsf.common.metadata.Model;
import org.eclipse.jst.jsf.common.metadata.Trait;
import org.eclipse.jst.jsf.common.metadata.internal.TraitValueHelper;
import org.eclipse.jst.jsf.core.internal.JSFCorePlugin;
import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.PaletteInfo;
import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.PaletteInfosPackage;
import org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.TagCreationInfo;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Palette Info</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
* <li>{@link org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl.PaletteInfoImpl#getId <em>Id</em>}</li>
* <li>{@link org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl.PaletteInfoImpl#getTag() <em>Tag</em>}</li>
* <li>{@link org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl.PaletteInfoImpl#getDisplayLabel <em>Display Label</em>}</li>
* <li>{@link org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl.PaletteInfoImpl#getDescription <em>Description</em>}</li>
* <li>{@link org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl.PaletteInfoImpl#getExpert <em>Expert</em>}</li>
* <li>{@link org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl.PaletteInfoImpl#getHidden <em>Hidden</em>}</li>
* <li>{@link org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl.PaletteInfoImpl#getSmallIcon <em>Small Icon</em>}</li>
* <li>{@link org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl.PaletteInfoImpl#getLargeIcon <em>Large Icon</em>}</li>
* <li>{@link org.eclipse.jst.jsf.tagdisplay.internal.paletteinfos.impl.PaletteInfoImpl#getTagCreation <em>Tag Creation</em>}</li>
* </ul>
* </p>
*
* @generated
*/
public class PaletteInfoImpl extends EObjectImpl implements PaletteInfo {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static final String copyright = "Copyright (c) 2007 Oracle Corporation"; //$NON-NLS-1$
/**
* The default value of the '{@link #getId() <em>Id</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getId()
* @generated
* @ordered
*/
protected static final String ID_EDEFAULT = null;
/**
* The cached value of the '{@link #getId() <em>Id</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getId()
* @generated
* @ordered
*/
protected String id = ID_EDEFAULT;
/**
* The default value of the '{@link #getTag() <em>Tag</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTag()
* @generated
* @ordered
*/
protected static final String TAG_EDEFAULT = null;
/**
* The cached value of the '{@link #getTag() <em>Tag</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTag()
* @generated
* @ordered
*/
protected String tag = TAG_EDEFAULT;
/**
* The default value of the '{@link #getDisplayLabel() <em>Display Label</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDisplayLabel()
* @generated
* @ordered
*/
protected static final String DISPLAY_LABEL_EDEFAULT = null;
/**
* The cached value of the '{@link #getDisplayLabel() <em>Display Label</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDisplayLabel()
* @generated
* @ordered
*/
protected String displayLabel = DISPLAY_LABEL_EDEFAULT;
/**
* The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDescription()
* @generated
* @ordered
*/
protected static final String DESCRIPTION_EDEFAULT = null;
/**
* The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getDescription()
* @generated
* @ordered
*/
protected String description = DESCRIPTION_EDEFAULT;
/**
* The default value of the '{@link #getExpert() <em>Expert</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getExpert()
* @generated
* @ordered
*/
protected static final Boolean EXPERT_EDEFAULT = null;
/**
* The cached value of the '{@link #getExpert() <em>Expert</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getExpert()
* @generated
* @ordered
*/
protected Boolean expert = EXPERT_EDEFAULT;
/**
* The default value of the '{@link #getHidden() <em>Hidden</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getHidden()
* @generated
* @ordered
*/
protected static final Boolean HIDDEN_EDEFAULT = null;
/**
* The cached value of the '{@link #getHidden() <em>Hidden</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getHidden()
* @generated
* @ordered
*/
protected Boolean hidden = HIDDEN_EDEFAULT;
/**
* The default value of the '{@link #getSmallIcon() <em>Small Icon</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSmallIcon()
* @generated
* @ordered
*/
protected static final String SMALL_ICON_EDEFAULT = null;
/**
* The cached value of the '{@link #getSmallIcon() <em>Small Icon</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getSmallIcon()
* @generated
* @ordered
*/
protected String smallIcon = SMALL_ICON_EDEFAULT;
/**
* The default value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getLargeIcon()
* @generated
* @ordered
*/
protected static final String LARGE_ICON_EDEFAULT = null;
/**
* The cached value of the '{@link #getLargeIcon() <em>Large Icon</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getLargeIcon()
* @generated
* @ordered
*/
protected String largeIcon = LARGE_ICON_EDEFAULT;
/**
* The cached value of the '{@link #getTagCreation() <em>Tag Creation</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getTagCreation()
* @generated
* @ordered
*/
protected TagCreationInfo tagCreation = null;
private Entity _tag;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected PaletteInfoImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected EClass eStaticClass() {
return PaletteInfosPackage.Literals.PALETTE_INFO;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String getId() {
return id;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setId(String newId) {
String oldId = id;
id = newId;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PaletteInfosPackage.PALETTE_INFO__ID, oldId, id));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public String getTag() {
return tag != null ? tag : getId();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setTag(String newTag) {
String oldTag = tag;
tag = newTag;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PaletteInfosPackage.PALETTE_INFO__TAG, oldTag, tag));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public String getDisplayLabel() {
if (displayLabel == null){
return getTagTraitValueAsString(getTag(), TRAIT_DISPLAY_LABEL);
}
return getNLSedValue(displayLabel);
}
private String getNLSedValue(final String rawValue) {
String value = TraitValueHelper.getNLSValue((Trait)this.eContainer.eContainer(), rawValue);
return value;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
private String getTagTraitValueAsString(final String _id, final String traitKey) {
EObject obj = getTagTraitValue(getTag(), traitKey);
if (obj != null){
return TraitValueHelper.getValueAsString((Trait)obj.eContainer());
}
return null;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
private EObject getTagTraitValue(final String tagName, final String traitKey) {
Entity tag_ = getTag(tagName);
if (tag_ != null){
for (Iterator it=tag_.getTraits().iterator();it.hasNext();){
Trait trait = (Trait)it.next();
if (traitKey.equals(trait.getId()))
return trait.getValue();
}
}
return null;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
private Entity getTag(String tagName) {
if (_tag == null){
//rely on PaletteInfos objects being inside a Model trait only
try {
Model model = (Model)this.eContainer().eContainer().eContainer();
//we could probably do better than this... oh well
//FIXME: C.B: this is really bad! We could probably do better than
// write code that expects to throw ClassCastExceptions and then hides them? I hope so!
_tag = findTag(model, tagName);
} catch (ClassCastException e) {
// PDPlugin.getLogger(getClass()).error(e);
JSFCorePlugin.log(e, "ClassCastException in getTag() for " + tagName); //$NON-NLS-1$
return null;
}
}
return _tag;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
private Entity findTag(Model model, String tagid) {
for (Iterator it=model.getChildEntities().iterator();it.hasNext();){
Entity tag_ = (Entity)it.next();
if (tagid.equals(tag_.getId()))
return tag_;
}
return null;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setDisplayLabel(String newDisplayLabel) {
String oldDisplayLabel = displayLabel;
displayLabel = newDisplayLabel;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PaletteInfosPackage.PALETTE_INFO__DISPLAY_LABEL, oldDisplayLabel, displayLabel));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public String getDescription() {
if (description == null){
return getTagTraitValueAsString(getId(), TRAIT_DESCRIPTION);
}
return getNLSedValue(description);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setDescription(String newDescription) {
String oldDescription = description;
description = newDescription;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PaletteInfosPackage.PALETTE_INFO__DESCRIPTION, oldDescription, description));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Boolean getExpert() {
return expert;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setExpert(Boolean newExpert) {
Boolean oldExpert = expert;
expert = newExpert;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PaletteInfosPackage.PALETTE_INFO__EXPERT, oldExpert, expert));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Boolean getHidden() {
return hidden;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setHidden(Boolean newHidden) {
Boolean oldHidden = hidden;
hidden = newHidden;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PaletteInfosPackage.PALETTE_INFO__HIDDEN, oldHidden, hidden));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public String getSmallIcon() {
if (smallIcon == null){
return getTagTraitValueAsString(getId(), TRAIT_SMALL_ICON);
}
return smallIcon;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setSmallIcon(String newSmallIcon) {
String oldSmallIcon = smallIcon;
smallIcon = newSmallIcon;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PaletteInfosPackage.PALETTE_INFO__SMALL_ICON, oldSmallIcon, smallIcon));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public String getLargeIcon() {
if (largeIcon == null){
return getTagTraitValueAsString(getId(), TRAIT_LARGE_ICON);
}
return largeIcon;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setLargeIcon(String newLargeIcon) {
String oldLargeIcon = largeIcon;
largeIcon = newLargeIcon;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PaletteInfosPackage.PALETTE_INFO__LARGE_ICON, oldLargeIcon, largeIcon));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public TagCreationInfo getTagCreation() {
if (tagCreation != null && tagCreation.eIsProxy()) {
InternalEObject oldTagCreation = (InternalEObject)tagCreation;
tagCreation = (TagCreationInfo)eResolveProxy(oldTagCreation);
if (tagCreation != oldTagCreation) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, PaletteInfosPackage.PALETTE_INFO__TAG_CREATION, oldTagCreation, tagCreation));
}
}
else if (tagCreation == null){
//delegate to entity if it exists
return (TagCreationInfo)getTagTraitValue(getTag(), "tag-create"); //$NON-NLS-1$
}
return tagCreation;
}
/**
* <!-- begin-user-doc -->
* @return the tag creation info
* <!-- end-user-doc -->
* @generated
*/
public TagCreationInfo basicGetTagCreation() {
return tagCreation;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setTagCreation(TagCreationInfo newTagCreation) {
TagCreationInfo oldTagCreation = tagCreation;
tagCreation = newTagCreation;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PaletteInfosPackage.PALETTE_INFO__TAG_CREATION, oldTagCreation, tagCreation));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public boolean isExpert() {
if (expert == null){
String val = getTagTraitValueAsString(getId(), "expert"); //$NON-NLS-1$
return Boolean.valueOf(val).booleanValue();
}
return expert.booleanValue();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated NOT
*/
public boolean isHidden() {
if (hidden == null){
String val = getTagTraitValueAsString(getId(), "hidden"); //$NON-NLS-1$
return Boolean.valueOf(val).booleanValue();
}
return hidden.booleanValue();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case PaletteInfosPackage.PALETTE_INFO__ID:
return getId();
case PaletteInfosPackage.PALETTE_INFO__TAG:
return getTag();
case PaletteInfosPackage.PALETTE_INFO__DISPLAY_LABEL:
return getDisplayLabel();
case PaletteInfosPackage.PALETTE_INFO__DESCRIPTION:
return getDescription();
case PaletteInfosPackage.PALETTE_INFO__EXPERT:
return getExpert();
case PaletteInfosPackage.PALETTE_INFO__HIDDEN:
return getHidden();
case PaletteInfosPackage.PALETTE_INFO__SMALL_ICON:
return getSmallIcon();
case PaletteInfosPackage.PALETTE_INFO__LARGE_ICON:
return getLargeIcon();
case PaletteInfosPackage.PALETTE_INFO__TAG_CREATION:
if (resolve) return getTagCreation();
return basicGetTagCreation();
}
return super.eGet(featureID, resolve, coreType);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case PaletteInfosPackage.PALETTE_INFO__ID:
setId((String)newValue);
return;
case PaletteInfosPackage.PALETTE_INFO__TAG:
setTag((String)newValue);
return;
case PaletteInfosPackage.PALETTE_INFO__DISPLAY_LABEL:
setDisplayLabel((String)newValue);
return;
case PaletteInfosPackage.PALETTE_INFO__DESCRIPTION:
setDescription((String)newValue);
return;
case PaletteInfosPackage.PALETTE_INFO__EXPERT:
setExpert((Boolean)newValue);
return;
case PaletteInfosPackage.PALETTE_INFO__HIDDEN:
setHidden((Boolean)newValue);
return;
case PaletteInfosPackage.PALETTE_INFO__SMALL_ICON:
setSmallIcon((String)newValue);
return;
case PaletteInfosPackage.PALETTE_INFO__LARGE_ICON:
setLargeIcon((String)newValue);
return;
case PaletteInfosPackage.PALETTE_INFO__TAG_CREATION:
setTagCreation((TagCreationInfo)newValue);
return;
}
super.eSet(featureID, newValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void eUnset(int featureID) {
switch (featureID) {
case PaletteInfosPackage.PALETTE_INFO__ID:
setId(ID_EDEFAULT);
return;
case PaletteInfosPackage.PALETTE_INFO__TAG:
setTag(TAG_EDEFAULT);
return;
case PaletteInfosPackage.PALETTE_INFO__DISPLAY_LABEL:
setDisplayLabel(DISPLAY_LABEL_EDEFAULT);
return;
case PaletteInfosPackage.PALETTE_INFO__DESCRIPTION:
setDescription(DESCRIPTION_EDEFAULT);
return;
case PaletteInfosPackage.PALETTE_INFO__EXPERT:
setExpert(EXPERT_EDEFAULT);
return;
case PaletteInfosPackage.PALETTE_INFO__HIDDEN:
setHidden(HIDDEN_EDEFAULT);
return;
case PaletteInfosPackage.PALETTE_INFO__SMALL_ICON:
setSmallIcon(SMALL_ICON_EDEFAULT);
return;
case PaletteInfosPackage.PALETTE_INFO__LARGE_ICON:
setLargeIcon(LARGE_ICON_EDEFAULT);
return;
case PaletteInfosPackage.PALETTE_INFO__TAG_CREATION:
setTagCreation((TagCreationInfo)null);
return;
}
super.eUnset(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean eIsSet(int featureID) {
switch (featureID) {
case PaletteInfosPackage.PALETTE_INFO__ID:
return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
case PaletteInfosPackage.PALETTE_INFO__TAG:
return TAG_EDEFAULT == null ? tag != null : !TAG_EDEFAULT.equals(tag);
case PaletteInfosPackage.PALETTE_INFO__DISPLAY_LABEL:
return DISPLAY_LABEL_EDEFAULT == null ? displayLabel != null : !DISPLAY_LABEL_EDEFAULT.equals(displayLabel);
case PaletteInfosPackage.PALETTE_INFO__DESCRIPTION:
return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
case PaletteInfosPackage.PALETTE_INFO__EXPERT:
return EXPERT_EDEFAULT == null ? expert != null : !EXPERT_EDEFAULT.equals(expert);
case PaletteInfosPackage.PALETTE_INFO__HIDDEN:
return HIDDEN_EDEFAULT == null ? hidden != null : !HIDDEN_EDEFAULT.equals(hidden);
case PaletteInfosPackage.PALETTE_INFO__SMALL_ICON:
return SMALL_ICON_EDEFAULT == null ? smallIcon != null : !SMALL_ICON_EDEFAULT.equals(smallIcon);
case PaletteInfosPackage.PALETTE_INFO__LARGE_ICON:
return LARGE_ICON_EDEFAULT == null ? largeIcon != null : !LARGE_ICON_EDEFAULT.equals(largeIcon);
case PaletteInfosPackage.PALETTE_INFO__TAG_CREATION:
return tagCreation != null;
}
return super.eIsSet(featureID);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String toString() {
if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (id: "); //$NON-NLS-1$
result.append(id);
result.append(", tag: "); //$NON-NLS-1$
result.append(tag);
result.append(", displayLabel: "); //$NON-NLS-1$
result.append(displayLabel);
result.append(", description: "); //$NON-NLS-1$
result.append(description);
result.append(", expert: "); //$NON-NLS-1$
result.append(expert);
result.append(", hidden: "); //$NON-NLS-1$
result.append(hidden);
result.append(", smallIcon: "); //$NON-NLS-1$
result.append(smallIcon);
result.append(", largeIcon: "); //$NON-NLS-1$
result.append(largeIcon);
result.append(')');
return result.toString();
}
} //PaletteInfoImpl