001/** 002 */ 003package org.nasdanika.html.model.html.impl; 004 005import java.util.Collection; 006import org.eclipse.emf.common.notify.NotificationChain; 007import org.eclipse.emf.common.util.EList; 008import org.eclipse.emf.common.util.EMap; 009import org.eclipse.emf.ecore.EClass; 010 011import org.eclipse.emf.ecore.EObject; 012import org.eclipse.emf.ecore.EStructuralFeature; 013import org.eclipse.emf.ecore.InternalEObject; 014import org.eclipse.emf.ecore.util.InternalEList; 015import org.nasdanika.html.model.html.HtmlElement; 016import org.nasdanika.html.model.html.HtmlPackage; 017import org.nasdanika.ncore.impl.ModelElementImpl; 018 019/** 020 * <!-- begin-user-doc --> 021 * An implementation of the model object '<em><b>Element</b></em>'. 022 * <!-- end-user-doc --> 023 * <p> 024 * The following features are implemented: 025 * </p> 026 * <ul> 027 * <li>{@link org.nasdanika.html.model.html.impl.HtmlElementImpl#getAttributes <em>Attributes</em>}</li> 028 * <li>{@link org.nasdanika.html.model.html.impl.HtmlElementImpl#getContent <em>Content</em>}</li> 029 * </ul> 030 * 031 * @generated 032 */ 033public abstract class HtmlElementImpl extends ModelElementImpl implements HtmlElement { 034 /** 035 * <!-- begin-user-doc --> 036 * <!-- end-user-doc --> 037 * @generated 038 */ 039 protected HtmlElementImpl() { 040 super(); 041 } 042 043 /** 044 * <!-- begin-user-doc --> 045 * <!-- end-user-doc --> 046 * @generated 047 */ 048 @Override 049 protected EClass eStaticClass() { 050 return HtmlPackage.Literals.HTML_ELEMENT; 051 } 052 053 /** 054 * <!-- begin-user-doc --> 055 * <!-- end-user-doc --> 056 * @generated 057 */ 058 @SuppressWarnings("unchecked") 059 @Override 060 public EMap<String, EObject> getAttributes() { 061 return (EMap<String, EObject>)eDynamicGet(HtmlPackage.HTML_ELEMENT__ATTRIBUTES, HtmlPackage.Literals.HTML_ELEMENT__ATTRIBUTES, true, true); 062 } 063 064 /** 065 * <!-- begin-user-doc --> 066 * <!-- end-user-doc --> 067 * @generated 068 */ 069 @SuppressWarnings("unchecked") 070 @Override 071 public EList<EObject> getContent() { 072 return (EList<EObject>)eDynamicGet(HtmlPackage.HTML_ELEMENT__CONTENT, HtmlPackage.Literals.HTML_ELEMENT__CONTENT, true, true); 073 } 074 075 /** 076 * <!-- begin-user-doc --> 077 * <!-- end-user-doc --> 078 * @generated 079 */ 080 @Override 081 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 082 switch (featureID) { 083 case HtmlPackage.HTML_ELEMENT__ATTRIBUTES: 084 return ((InternalEList<?>)getAttributes()).basicRemove(otherEnd, msgs); 085 case HtmlPackage.HTML_ELEMENT__CONTENT: 086 return ((InternalEList<?>)getContent()).basicRemove(otherEnd, msgs); 087 } 088 return super.eInverseRemove(otherEnd, featureID, msgs); 089 } 090 091 /** 092 * <!-- begin-user-doc --> 093 * <!-- end-user-doc --> 094 * @generated 095 */ 096 @Override 097 public Object eGet(int featureID, boolean resolve, boolean coreType) { 098 switch (featureID) { 099 case HtmlPackage.HTML_ELEMENT__ATTRIBUTES: 100 if (coreType) return getAttributes(); 101 else return getAttributes().map(); 102 case HtmlPackage.HTML_ELEMENT__CONTENT: 103 return getContent(); 104 } 105 return super.eGet(featureID, resolve, coreType); 106 } 107 108 /** 109 * <!-- begin-user-doc --> 110 * <!-- end-user-doc --> 111 * @generated 112 */ 113 @SuppressWarnings("unchecked") 114 @Override 115 public void eSet(int featureID, Object newValue) { 116 switch (featureID) { 117 case HtmlPackage.HTML_ELEMENT__ATTRIBUTES: 118 ((EStructuralFeature.Setting)getAttributes()).set(newValue); 119 return; 120 case HtmlPackage.HTML_ELEMENT__CONTENT: 121 getContent().clear(); 122 getContent().addAll((Collection<? extends EObject>)newValue); 123 return; 124 } 125 super.eSet(featureID, newValue); 126 } 127 128 /** 129 * <!-- begin-user-doc --> 130 * <!-- end-user-doc --> 131 * @generated 132 */ 133 @Override 134 public void eUnset(int featureID) { 135 switch (featureID) { 136 case HtmlPackage.HTML_ELEMENT__ATTRIBUTES: 137 getAttributes().clear(); 138 return; 139 case HtmlPackage.HTML_ELEMENT__CONTENT: 140 getContent().clear(); 141 return; 142 } 143 super.eUnset(featureID); 144 } 145 146 /** 147 * <!-- begin-user-doc --> 148 * <!-- end-user-doc --> 149 * @generated 150 */ 151 @Override 152 public boolean eIsSet(int featureID) { 153 switch (featureID) { 154 case HtmlPackage.HTML_ELEMENT__ATTRIBUTES: 155 return !getAttributes().isEmpty(); 156 case HtmlPackage.HTML_ELEMENT__CONTENT: 157 return !getContent().isEmpty(); 158 } 159 return super.eIsSet(featureID); 160 } 161 162} //HtmlElementImpl