gt: 		StringBuffer result = new StringBuffer(super.toString());
context: /**
   * Copyright (c) 2016 NumberFour AG.
   * 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:
   *   NumberFour AG - Initial API and implementation
   */
  package org.eclipse.n4js.n4JS.impl;
  
  import java.lang.reflect.InvocationTargetException;
  
  import org.eclipse.emf.common.notify.Notification;
  
  import org.eclipse.emf.common.util.EList;
  
  import org.eclipse.emf.ecore.EClass;
  
  import org.eclipse.emf.ecore.impl.ENotificationImpl;
  
  import org.eclipse.n4js.n4JS.Literal;
  import org.eclipse.n4js.n4JS.N4JSPackage;
  import org.eclipse.n4js.n4JS.RegularExpressionLiteral;
  
  /**
   * <!-- begin-user-doc -->
   * An implementation of the model object '<em><b>Regular Expression Literal</b></em>'.
   * <!-- end-user-doc -->
   * <p>
   * The following features are implemented:
   * </p>
   * <ul>
   *   <li>{@link org.eclipse.n4js.n4JS.impl.RegularExpressionLiteralImpl#getValue <em>Value</em>}</li>
   * </ul>
   *
   * @generated
   */
  public class RegularExpressionLiteralImpl extends LiteralImpl implements RegularExpressionLiteral {
  	/**
  	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @see #getValue()
  	 * @generated
  	 * @ordered
  	 */
  	protected static final String VALUE_EDEFAULT = null;
  
  	/**
  	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @see #getValue()
  	 * @generated
  	 * @ordered
  	 */
  	protected String value = VALUE_EDEFAULT;
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	protected RegularExpressionLiteralImpl() {
  		super();
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	protected EClass eStaticClass() {
  		return N4JSPackage.Literals.REGULAR_EXPRESSION_LITERAL;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public String getValue() {
  		return value;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public void setValue(String newValue) {
  		String oldValue = value;
  		value = newValue;
  		if (eNotificationRequired())
  			eNotify(new ENotificationImpl(this, Notification.SET, N4JSPackage.REGULAR_EXPRESSION_LITERAL__VALUE, oldValue, value));
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public String getValueAsString() {
  		return this.getValue();
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public Object eGet(int featureID, boolean resolve, boolean coreType) {
  		switch (featureID) {
  			case N4JSPackage.REGULAR_EXPRESSION_LITERAL__VALUE:
  				return getValue();
  		}
  		return super.eGet(featureID, resolve, coreType);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public void eSet(int featureID, Object newValue) {
  		switch (featureID) {
  			case N4JSPackage.REGULAR_EXPRESSION_LITERAL__VALUE:
  				setValue((String)newValue);
  				return;
  		}
  		super.eSet(featureID, newValue);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public void eUnset(int featureID) {
  		switch (featureID) {
  			case N4JSPackage.REGULAR_EXPRESSION_LITERAL__VALUE:
  				setValue(VALUE_EDEFAULT);
  				return;
  		}
  		super.eUnset(featureID);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public boolean eIsSet(int featureID) {
  		switch (featureID) {
  			case N4JSPackage.REGULAR_EXPRESSION_LITERAL__VALUE:
  				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
  		}
  		return super.eIsSet(featureID);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
  		if (baseClass == Literal.class) {
  			switch (baseOperationID) {
  				case N4JSPackage.LITERAL___GET_VALUE_AS_STRING: return N4JSPackage.REGULAR_EXPRESSION_LITERAL___GET_VALUE_AS_STRING;
  				default: return super.eDerivedOperationID(baseOperationID, baseClass);
  			}
  		}
  		return super.eDerivedOperationID(baseOperationID, baseClass);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
  		switch (operationID) {
  			case N4JSPackage.REGULAR_EXPRESSION_LITERAL___GET_VALUE_AS_STRING:
  				return getValueAsString();
  		}
  		return super.eInvoke(operationID, arguments);
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public String toString() {
  		if (eIsProxy()) return super.toString();
  
  