Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/model/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConverter.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/model/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConverter.java266
1 files changed, 266 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/model/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/model/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConverter.java
new file mode 100644
index 0000000000..eebfd5250a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/model/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlConverter.java
@@ -0,0 +1,266 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2012 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.jpa.eclipselink.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.jdt.core.IType;
+import org.eclipse.jpt.common.core.internal.utility.translators.SimpleTranslator;
+import org.eclipse.jpt.common.core.utility.TextRange;
+import org.eclipse.text.edits.ReplaceEdit;
+import org.eclipse.wst.common.internal.emf.resource.Translator;
+
+/**
+ * <!-- begin-user-doc -->
+ *
+ * A representation of the model object '<em><b>Xml CustomConverter</b></em>'.
+ *
+ * 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.
+ *
+ * @version 2.1
+ * @since 2.1
+ *
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jpt.jpa.eclipselink.core.resource.orm.XmlConverter#getClassName <em>Class Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jpt.jpa.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverter()
+ * @model kind="class"
+ * @generated
+ */
+public class XmlConverter extends XmlNamedConverter
+{
+ /**
+ * The default value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASS_NAME_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected String className = CLASS_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected XmlConverter()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return EclipseLinkOrmPackage.Literals.XML_CONVERTER;
+ }
+
+ /**
+ * Returns the value of the '<em><b>Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Class Name</em>' attribute.
+ * @see #setClassName(String)
+ * @see org.eclipse.jpt.jpa.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverter_ClassName()
+ * @model dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ public String getClassName()
+ {
+ return className;
+ }
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jpt.jpa.eclipselink.core.resource.orm.XmlConverter#getClassName <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Class Name</em>' attribute.
+ * @see #getClassName()
+ * @generated
+ */
+ public void setClassName(String newClassName)
+ {
+ String oldClassName = className;
+ className = newClassName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CONVERTER__CLASS_NAME, oldClassName, className));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case EclipseLinkOrmPackage.XML_CONVERTER__CLASS_NAME:
+ return getClassName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case EclipseLinkOrmPackage.XML_CONVERTER__CLASS_NAME:
+ setClassName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case EclipseLinkOrmPackage.XML_CONVERTER__CLASS_NAME:
+ setClassName(CLASS_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case EclipseLinkOrmPackage.XML_CONVERTER__CLASS_NAME:
+ return CLASS_NAME_EDEFAULT == null ? className != null : !CLASS_NAME_EDEFAULT.equals(className);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (className: ");
+ result.append(className);
+ result.append(')');
+ return result.toString();
+ }
+
+ public TextRange getConverterClassTextRange() {
+ return getAttributeTextRange(EclipseLink.CONVERTER__CLASS);
+ }
+
+ // ********** 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[] {
+ buildNameTranslator(),
+ buildClassTranslator(),
+ };
+ }
+
+ protected static Translator buildClassTranslator() {
+ return new Translator(EclipseLink.CONVERTER__CLASS, EclipseLinkOrmPackage.eINSTANCE.getXmlConverter_ClassName(), Translator.DOM_ATTRIBUTE);
+ }
+
+
+ // ********** refactoring **********
+
+ public ReplaceEdit createRenameEdit(IType originalType, String newName) {
+ String originalName = originalType.getTypeQualifiedName();
+ int nameIndex = this.className.lastIndexOf(originalName);
+ int offset = getAttributeNode(EclipseLink.CONVERTER__CLASS).getValueRegionStartOffset() + 1; // +1 = opening double quote
+ return new ReplaceEdit(offset + nameIndex, originalName.length(), newName);
+ }
+
+ public ReplaceEdit createRenamePackageEdit(String newPackageName) {
+ int packageLength = this.className.lastIndexOf('.');
+ if (newPackageName == "") {//$NON-NLS-1$
+ //moving to the default package, remove the '.'
+ packageLength++;
+ }
+ if (packageLength == -1) {
+ //moving from the default package or unspecified package
+ packageLength = 0;
+ newPackageName = newPackageName + '.';
+ }
+ int offset = getAttributeNode(EclipseLink.CONVERTER__CLASS).getValueRegionStartOffset() + 1; // +1 = opening double quote
+ return new ReplaceEdit(offset, packageLength, newPackageName);
+ }
+
+ // ********** content assist ***************
+
+ public TextRange getConverterClassCodeAssistTextRange() {
+ return getAttributeCodeAssistTextRange(EclipseLink.CONVERTER__CLASS);
+ }
+
+ public boolean converterClassTouches(int pos) {
+ TextRange textRange = this.getConverterClassCodeAssistTextRange();
+ return (textRange != null) && textRange.touches(pos);
+ }
+} // XmlConverter

Back to the top