/******************************************************************************* * Copyright (c) 2007, 2009 Oracle. 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 - initial API and implementation ******************************************************************************/ package org.eclipse.jpt.core.resource.orm; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.jpt.core.internal.utility.translators.SimpleTranslator; import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject; import org.eclipse.jpt.core.resource.xml.JpaEObject; import org.eclipse.jpt.core.utility.TextRange; import org.eclipse.wst.common.internal.emf.resource.Translator; /** * * A representation of the model object 'Generated Value'. * * Provisional API: This interface is part of an interim API that is still * under development and expected to change significantly before reaching * stability. It is available at this early stage to solicit feedback from * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * * *

* The following features are supported: *

*

* * @see org.eclipse.jpt.core.resource.orm.OrmPackage#getXmlGeneratedValue() * @model kind="class" * @extends JpaEObject * @generated */ public class XmlGeneratedValue extends AbstractJpaEObject implements JpaEObject { /** * The default value of the '{@link #getGenerator() Generator}' attribute. * * * @see #getGenerator() * @generated * @ordered */ protected static final String GENERATOR_EDEFAULT = null; /** * The cached value of the '{@link #getGenerator() Generator}' attribute. * * * @see #getGenerator() * @generated * @ordered */ protected String generator = GENERATOR_EDEFAULT; /** * changed this to null and removed the generated flag so emf won't generate over it * we don't want a default for enums, just null if the tag does not exist */ protected static final GenerationType STRATEGY_EDEFAULT = null; /** * The cached value of the '{@link #getStrategy() Strategy}' attribute. * * * @see #getStrategy() * @generated * @ordered */ protected GenerationType strategy = STRATEGY_EDEFAULT; /** * * * @generated */ protected XmlGeneratedValue() { super(); } /** * * * @generated */ @Override protected EClass eStaticClass() { return OrmPackage.Literals.XML_GENERATED_VALUE; } /** * Returns the value of the 'Generator' attribute. * *

* If the meaning of the 'Generator' attribute isn't clear, * there really should be more of a description here... *

* * @return the value of the 'Generator' attribute. * @see #setGenerator(String) * @see org.eclipse.jpt.core.resource.orm.OrmPackage#getXmlGeneratedValue_Generator() * @model dataType="org.eclipse.emf.ecore.xml.type.String" * @generated */ public String getGenerator() { return generator; } /** * Sets the value of the '{@link org.eclipse.jpt.core.resource.orm.XmlGeneratedValue#getGenerator Generator}' attribute. * * * @param value the new value of the 'Generator' attribute. * @see #getGenerator() * @generated */ public void setGenerator(String newGenerator) { String oldGenerator = generator; generator = newGenerator; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_GENERATED_VALUE__GENERATOR, oldGenerator, generator)); } /** * Returns the value of the 'Strategy' attribute. * The default value is "TABLE". * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.GenerationType}. * *

* If the meaning of the 'Strategy' attribute isn't clear, * there really should be more of a description here... *

* * @return the value of the 'Strategy' attribute. * @see org.eclipse.jpt.core.resource.orm.GenerationType * @see #setStrategy(GenerationType) * @see org.eclipse.jpt.core.resource.orm.OrmPackage#getXmlGeneratedValue_Strategy() * @model default="TABLE" * @generated */ public GenerationType getStrategy() { return strategy; } /** * Sets the value of the '{@link org.eclipse.jpt.core.resource.orm.XmlGeneratedValue#getStrategy Strategy}' attribute. * * * @param value the new value of the 'Strategy' attribute. * @see org.eclipse.jpt.core.resource.orm.GenerationType * @see #getStrategy() * @generated */ public void setStrategy(GenerationType newStrategy) { GenerationType oldStrategy = strategy; strategy = newStrategy == null ? STRATEGY_EDEFAULT : newStrategy; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, OrmPackage.XML_GENERATED_VALUE__STRATEGY, oldStrategy, strategy)); } /** * * * @generated */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case OrmPackage.XML_GENERATED_VALUE__GENERATOR: return getGenerator(); case OrmPackage.XML_GENERATED_VALUE__STRATEGY: return getStrategy(); } return super.eGet(featureID, resolve, coreType); } /** * * * @generated */ @Override public void eSet(int featureID, Object newValue) { switch (featureID) { case OrmPackage.XML_GENERATED_VALUE__GENERATOR: setGenerator((String)newValue); return; case OrmPackage.XML_GENERATED_VALUE__STRATEGY: setStrategy((GenerationType)newValue); return; } super.eSet(featureID, newValue); } /** * * * @generated */ @Override public void eUnset(int featureID) { switch (featureID) { case OrmPackage.XML_GENERATED_VALUE__GENERATOR: setGenerator(GENERATOR_EDEFAULT); return; case OrmPackage.XML_GENERATED_VALUE__STRATEGY: setStrategy(STRATEGY_EDEFAULT); return; } super.eUnset(featureID); } /** * * * @generated */ @Override public boolean eIsSet(int featureID) { switch (featureID) { case OrmPackage.XML_GENERATED_VALUE__GENERATOR: return GENERATOR_EDEFAULT == null ? generator != null : !GENERATOR_EDEFAULT.equals(generator); case OrmPackage.XML_GENERATED_VALUE__STRATEGY: return strategy != STRATEGY_EDEFAULT; } return super.eIsSet(featureID); } /** * * * @generated */ @Override public String toString() { if (eIsProxy()) return super.toString(); StringBuffer result = new StringBuffer(super.toString()); result.append(" (generator: "); result.append(generator); result.append(", strategy: "); result.append(strategy); result.append(')'); return result.toString(); } public TextRange getGeneratorTextRange() { return getAttributeTextRange(JPA.GENERATOR); } // ********** translators ********** public static Translator buildTranslator(String elementName, EStructuralFeature structuralFeature) { return new SimpleTranslator( elementName, structuralFeature, Translator.END_TAG_NO_INDENT, buildTranslatorChildren() ); } private static Translator[] buildTranslatorChildren() { return new Translator[] { buildStrategyTranslator(), buildGeneratorTranslator() }; } protected static Translator buildStrategyTranslator() { return new Translator(JPA.STRATEGY, OrmPackage.eINSTANCE.getXmlGeneratedValue_Strategy(), Translator.DOM_ATTRIBUTE); } protected static Translator buildGeneratorTranslator() { return new Translator(JPA.GENERATOR, OrmPackage.eINSTANCE.getXmlGeneratedValue_Generator(), Translator.DOM_ATTRIBUTE); } } // GeneratedValue