diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common')
5 files changed, 0 insertions, 641 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/AbstractJpaEObject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/AbstractJpaEObject.java deleted file mode 100644 index 0336a88400..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/AbstractJpaEObject.java +++ /dev/null @@ -1,255 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 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.common; - -import java.util.HashSet; -import java.util.Hashtable; -import java.util.Map; -import java.util.Set; -import org.eclipse.core.resources.IResource; -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.Notifier; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.ecore.impl.EObjectImpl; -import org.eclipse.jpt.core.utility.AbstractTextRange; -import org.eclipse.jpt.core.utility.TextRange; -import org.eclipse.jpt.utility.internal.ClassTools; -import org.eclipse.wst.common.internal.emf.resource.EMF2DOMAdapter; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.w3c.dom.Node; - -/** - * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Xml EObject</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. - * <!-- end-user-doc --> - * - * - * @see org.eclipse.jpt.core.resource.common.CommonPackage#getXmlEObject() - * @model kind="class" abstract="true" - * @generated - */ -public abstract class AbstractJpaEObject extends EObjectImpl implements JpaEObject -{ - protected IDOMNode node; - - /** - * Sets of "insignificant" feature ids, keyed by class. - * This is built up lazily, as the objects are modified. - */ - private static final Map<Class<? extends AbstractJpaEObject>, Set<Integer>> insignificantFeatureIdSets = new Hashtable<Class<? extends AbstractJpaEObject>, Set<Integer>>(); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected AbstractJpaEObject() { - super(); - } - - - // **************** IJpaEObject implementation ***************************** - - public IResource getPlatformResource() { - return getResource().getFile(); - } - - public JpaXmlResource getResource() { - return (JpaXmlResource) eResource(); - } - - /* - * Must be overridden by actual root object to return itself - */ - public JpaEObject getRoot() { - return ((JpaEObject) eContainer()).getRoot(); - - } - - - // **************** change notification ************************************ - - /** - * override to prevent notification when the object's state is unchanged - */ - @Override - public void eNotify(Notification notification) { - if (!notification.isTouch()) { - super.eNotify(notification); - this.featureChanged(notification.getFeatureID(this.getClass())); - } - } - - protected void featureChanged(int featureId) { - if (this.featureIsSignificant(featureId)) { - getResource().resourceChanged(); - } - } - - protected boolean featureIsSignificant(int featureId) { - return ! this.featureIsInsignificant(featureId); - } - - protected boolean featureIsInsignificant(int featureId) { - return this.insignificantFeatureIds().contains(new Integer(featureId)); - } - - /** - * Return a set of the object's "insignificant" feature ids. - * These are the EMF features that will not be used to determine if all - * the features are unset. We use this to determine when to remove - * an element from the xml. - * - * If you need instance-based calculation of your xml "insignificant" aspects, - * override this method. If class-based calculation is sufficient, - * override #addInsignificantXmlFeatureIdsTo(Set). - * - * @see isAllFeaturesUnset() - */ - protected Set<Integer> insignificantFeatureIds() { - synchronized (insignificantFeatureIdSets) { - Set<Integer> insignificantXmlFeatureIds = insignificantFeatureIdSets.get(this.getClass()); - if (insignificantXmlFeatureIds == null) { - insignificantXmlFeatureIds = new HashSet<Integer>(); - this.addInsignificantXmlFeatureIdsTo(insignificantXmlFeatureIds); - insignificantFeatureIdSets.put(this.getClass(), insignificantXmlFeatureIds); - } - return insignificantXmlFeatureIds; - } - } - - /** - * Add the object's "insignificant" feature ids to the specified set. - * These are the EMF features that, when they change, will NOT cause the - * object (or its containing tree) to be resynched, i.e. defaults calculated. - * If class-based calculation of your "insignificant" features is sufficient, - * override this method. If you need instance-based calculation, - * override #insignificantXmlFeatureIds(). - */ - protected void addInsignificantXmlFeatureIdsTo(Set<Integer> insignificantXmlFeatureIds) { - // when you override this method, don't forget to include: - // super.addInsignificantXmlFeatureIdsTo(insignificantXmlFeatureIds); - } - - - // ************************************************************************* - - public boolean isAllFeaturesUnset() { - for (EStructuralFeature feature : eClass().getEAllStructuralFeatures()) { - if (eIsSet(feature)) { - return false; - } - } - return true; - } - - @Override - public EList<Adapter> eAdapters() { - if (this.eAdapters == null) { - this.eAdapters = new XmlEAdapterList<Adapter>(this); - } - return this.eAdapters; - } - - public IDOMNode getNode() { - return this.node; - } - - - protected class XmlEAdapterList<E extends Object & Adapter> extends EAdapterList<E> - { - public XmlEAdapterList(Notifier notifier) { - super(notifier); - } - - @Override - protected void didAdd(int index, E newObject) { - super.didAdd(index, newObject); - try { - node = (IDOMNode) ClassTools.executeMethod(newObject, "getNode"); - } - catch (RuntimeException re) { - // nothing to do - } - } - - @Override - protected void didRemove(int index, E oldObject) { - super.didRemove(index, oldObject); - if ((oldObject instanceof EMF2DOMAdapter) && (((EMF2DOMAdapter) oldObject).getNode() == AbstractJpaEObject.this.node)) { - AbstractJpaEObject.this.node = null; - } - } - } - - public TextRange getValidationTextRange() { - return getFullTextRange(); - } - - public TextRange getSelectionTextRange() { - return getFullTextRange(); - } - - public TextRange getFullTextRange() { - return buildTextRange(this.node); - } - - protected TextRange buildTextRange(IDOMNode domNode) { - if (domNode == null) { - return null; - } - return new DOMNodeTextRange(domNode); - } - - public boolean containsOffset(int textOffset) { - if (node == null) { - return false; - } - return node.contains(textOffset); - } - - /** - * Adapt an IDOMNode to the TextRange interface. - */ - private static class DOMNodeTextRange extends AbstractTextRange - { - private final IDOMNode node; - - DOMNodeTextRange(IDOMNode node) { - super(); - this.node = node; - } - - public int getOffset() { - return this.node.getStartOffset(); - } - - public int getLength() { - if (this.node.getNodeType() == Node.ELEMENT_NODE) { - return ((IDOMElement) this.node).getStartEndOffset() - this.node.getStartOffset(); - } - return this.node.getLength(); - } - - public int getLineNumber() { - return this.node.getStructuredDocument().getLineOfOffset(getOffset()) + 1; - } - - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaArtifactEdit.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaArtifactEdit.java deleted file mode 100644 index f021d99116..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaArtifactEdit.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.common; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.wst.common.componentcore.ArtifactEdit; - -/** - * - * - * 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. - */ -public abstract class JpaArtifactEdit extends ArtifactEdit -{ - public JpaArtifactEdit(IProject aProject, boolean toAccessAsReadOnly) - throws IllegalArgumentException { - super(aProject, toAccessAsReadOnly); - } - - - /** - * @return a resource for the given file - */ - public abstract JpaXmlResource getResource(IFile file); - - /** - * @param deployURI - this must be in a deployment relevant form - * (e.g "META-INF/persistence.xml" instead of "src/META-INF/persistence.xml") - * @return a resource for the given deployment file URI - */ - public abstract JpaXmlResource getResource(String deployURI); -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaEObject.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaEObject.java deleted file mode 100644 index b65523dc82..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaEObject.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.common; - -import org.eclipse.core.resources.IResource; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.jpt.core.utility.TextRange; - -/** - * - * - * 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. - */ -public interface JpaEObject extends EObject -{ - /** - * Return the resource that most directly contains this object - */ - IResource getPlatformResource(); - - /** - * Return the JpaXmlResource containing this object. - */ - JpaXmlResource getResource(); - - /** - * Return the root object of the model - */ - JpaEObject getRoot(); - - /** - * Return true if this object's text representation contains the text offset - */ - boolean containsOffset(int textOffset); - - /** - * Return the text range to be used for validation. This is the source - * range that will be highlighted for a validation error. - */ - TextRange getValidationTextRange(); - - /** - * Return the text range to be used for selection. This is the source - * range that will be highlighted when selecting in the structure view. - */ - TextRange getSelectionTextRange(); - - - boolean isAllFeaturesUnset(); -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaXmlResource.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaXmlResource.java deleted file mode 100644 index cfee949099..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaXmlResource.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.common; - -import java.util.ArrayList; -import java.util.Collection; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.Path; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.URIConverter; -import org.eclipse.jdt.core.ElementChangedEvent; -import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase; -import org.eclipse.jem.util.plugin.JEMUtilPlugin; -import org.eclipse.jpt.core.ResourceModelListener; -import org.eclipse.wst.common.internal.emf.resource.Renderer; -import org.eclipse.wst.common.internal.emf.resource.TranslatorResourceImpl; - -/** - * - * - * 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. - */ -public abstract class JpaXmlResource extends TranslatorResourceImpl -{ - protected JpaXmlResourceModel resourceModel; - - protected final Collection<ResourceModelListener> resourceModelListeners; - - - protected JpaXmlResource(Renderer aRenderer) { - super(aRenderer); - this.resourceModelListeners = new ArrayList<ResourceModelListener>(); - } - - protected JpaXmlResource(URI uri, Renderer aRenderer) { - super(uri, aRenderer); - this.resourceModelListeners = new ArrayList<ResourceModelListener>(); - } - - /** - * override to prevent notification when the object's state is unchanged - */ - @Override - public void eNotify(Notification notification) { - if (!notification.isTouch() && isLoaded()) { - super.eNotify(notification); - resourceChanged(); - } - } - - /** - * @see TranslatorResourceImpl#getDefaultPublicId() - */ - @Override - protected String getDefaultPublicId() { - return null; - // only applicable for DTD-based files - } - - /** - * @see TranslatorResourceImpl#getDefaultSystemId() - */ - @Override - protected String getDefaultSystemId() { - return null; - // only applicable for DTD-based files - } - - /** - * @see TranslatorResourceImpl#getDefaultVersionId() - */ - @Override - protected int getDefaultVersionID() { - return 10; - // this seems to be the default version of the spec for this doc - // and the id 10 maps to the version 1.0 - } - - /** - * @see TranslatorResource#getDoctype() - */ - public String getDoctype() { - return null; - // only applicable for DTD-based files - } - - public IFile getFile() { - IFile file = null; - file = getFile(getURI()); - if (file == null) { - if (getResourceSet() != null) { - URIConverter converter = getResourceSet().getURIConverter(); - URI convertedUri = converter.normalize(getURI()); - if (! getURI().equals(convertedUri)) { - file = getFile(convertedUri); - } - } - } - return file; - } - - /** - * Return the IFile for the <code>uri</code> within the Workspace. This URI is assumed to be - * absolute in the following format: platform:/resource/.... - */ - private IFile getFile(URI uri) { - if (WorkbenchResourceHelperBase.isPlatformResourceURI(uri)) { - String fileString = URI.decode(uri.path()); - fileString = fileString.substring(JEMUtilPlugin.PLATFORM_RESOURCE.length() + 1); - return ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fileString)); - } - return null; - } - - public boolean exists() { - return getFile().exists(); - } - - public abstract void javaElementChanged(ElementChangedEvent event); - - public abstract void updateFromResource(); - - public JpaXmlResourceModel getResourceModel() { - return this.resourceModel; - } - - public void setResourceModel(JpaXmlResourceModel resourceModel) { - this.resourceModel = resourceModel; - } - - public void resourceChanged() { - for (ResourceModelListener listener : this.resourceModelListeners) { - listener.resourceModelChanged(); - } - } - - public void addResourceModelChangeListener(ResourceModelListener listener) { - if (listener == null) { - throw new IllegalArgumentException("Listener cannot be null"); - } - this.resourceModelListeners.add(listener); - } - - public void removeResourceModelChangeListener(ResourceModelListener listener) { - if (!this.resourceModelListeners.contains(listener)) { - throw new IllegalArgumentException("Listener " + listener + " was never added"); - } - this.resourceModelListeners.add(listener); - } -} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaXmlResourceModel.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaXmlResourceModel.java deleted file mode 100644 index 42fabbd300..0000000000 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/common/JpaXmlResourceModel.java +++ /dev/null @@ -1,118 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2008 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.common; - -import java.io.IOException; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.jdt.core.ElementChangedEvent; -import org.eclipse.jpt.core.JptCorePlugin; -import org.eclipse.jpt.core.ResourceModelListener; -import org.eclipse.jpt.core.internal.AbstractResourceModel; -import org.eclipse.wst.common.internal.emfworkbench.integration.EditModelEvent; -import org.eclipse.wst.common.internal.emfworkbench.integration.EditModelListener; - -/** - * - * - * 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. - */ -public abstract class JpaXmlResourceModel extends AbstractResourceModel -{ - protected JpaArtifactEdit artifactEdit; - - protected JpaXmlResource resource; - - - protected JpaXmlResourceModel(IFile file) { - super(file); - this.artifactEdit = buildArtifactEdit(file.getProject()); - this.resource = this.artifactEdit.getResource(file); - this.resource.setResourceModel(this); - this.artifactEdit.addListener(buildReloadListener(this.resource)); - } - - - protected abstract JpaArtifactEdit buildArtifactEdit(IProject project); - - private EditModelListener buildReloadListener(JpaXmlResource resource) { - return new ReloadListener(resource); - } - - public JpaXmlResource getResource() { - return this.resource; - } - - public void javaElementChanged(ElementChangedEvent event) { - this.resource.javaElementChanged(event); - } - - public void updateFromResource() { - this.resource.updateFromResource(); - } - - public void addResourceModelChangeListener(ResourceModelListener listener) { - this.resource.addResourceModelChangeListener(listener); - } - - public void removeResourceModelChangeListener(ResourceModelListener listener) { - this.resource.removeResourceModelChangeListener(listener); - } - - @Override - public void dispose() { - super.dispose(); - this.artifactEdit.dispose(); - } - - public void resolveTypes() { - //nothing to do here, JavaResourceModel needs this - } - - private class ReloadListener implements EditModelListener - { - final JpaXmlResource resource; - - - ReloadListener(JpaXmlResource resource) { - super(); - this.resource = resource; - } - - - public void editModelChanged(EditModelEvent anEvent) { - switch (anEvent.getEventCode()) { - case EditModelEvent.UNLOADED_RESOURCE : - if (anEvent.getChangedResources().contains(resource) - && ! resource.isLoaded()) { - try { - resource.load(resource.getResourceSet().getLoadOptions()); - } - catch (IOException ioe) { - JptCorePlugin.log(ioe); - } - } - break; - case EditModelEvent.REMOVED_RESOURCE : - if (anEvent.getChangedResources().contains(resource)) { - anEvent.getEditModel().removeListener(this); - } - break; -// case EditModelEvent.SAVE : -// case EditModelEvent.PRE_DISPOSE : - } - - } - } -} |