/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.metamodels.wsdl.io;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.xmi.XMLLoad;
import org.eclipse.emf.ecore.xmi.XMLSave;
import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
import org.teiid.designer.core.resource.XResource;
import org.teiid.designer.core.resource.XmlXResourceDelegate;
/**
* <!-- begin-user-doc --> The <b>Resource </b> associated with the package. <!-- end-user-doc -->
*
* @see org.teiid.designer.metamodels.wsdl.io.WsdlResourceFactoryImpl
* @generated
*
* @since 8.0
*/
public class WsdlResourceImpl extends XMLResourceImpl implements XResource {
/**
* Option flag for {@link org.eclipse.emf.ecore.resource.Resource#save(java.util.Map) saving} that defines whether to insert
* newlines into the output XML file. By default, newlines are added. This can be set to 'false' if the file is to be only
* processed by machine.
*/
public static final String OPTION_INSERT_NEWLINES = "OPTION_INSERT_NEWLINES"; //$NON-NLS-1$
/**
* Option flag for {@link org.eclipse.emf.ecore.resource.Resource#save(java.util.Map) saving} that defines how many characters
* each successive line of XML be indented. The default is '2'.
*
* @see #DEFAULT_INDENTATION
*/
public static final String OPTION_INDENTATION = "OPTION_INDENTATION"; //$NON-NLS-1$
/**
* The default indentation for each successive level of XML is 2 spaces.
*
* @see #OPTION_INDENTATION
*/
public static final String DEFAULT_INDENTATION = " "; //$NON-NLS-1$
private XmlXResourceDelegate delegate = new XmlXResourceDelegate();
/**
* Creates an instance of the resource. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @param uri the URI of the new resource.
* @generated
*/
public WsdlResourceImpl( URI uri ) {
super(uri);
delegate.initialize(this);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.ecore.resource.impl.ResourceImpl#attachedHelper(org.eclipse.emf.ecore.EObject)
*/
@Override
protected void attachedHelper( EObject eObject ) {
if (isTrackingModification()) {
eObject.eAdapters().add(modificationTrackingAdapter);
}
delegate.attachedHelper(this, eObject);
}
/**
* @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#createXMLLoad()
* @since 4.2
*/
@Override
protected XMLLoad createXMLLoad() {
return new WsdlLoader();
}
/**
* @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#createXMLSave()
* @since 4.2
*/
@Override
protected XMLSave createXMLSave() {
return new WsdlWriter();
}
/**
* <p>
* {@inheritDoc}
* </p>
*
* @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#detachedHelper(org.eclipse.emf.ecore.EObject)
*/
@Override
protected void detachedHelper( EObject eObject ) {
delegate.detachedHelper(this, eObject);
if (isTrackingModification()) {
eObject.eAdapters().remove(modificationTrackingAdapter);
}
}
/**
* @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#doLoad(java.io.InputStream, java.util.Map)
* @since 5.0.3
*/
@Override
public void doLoad( InputStream inputStream,
Map options ) throws IOException {
if (delegate.isLoading()) {
return;
}
delegate.setLoading(true);
try {
super.doLoad(inputStream, options);
} finally {
delegate.setLoading(false);
}
}
@Override
protected void doUnload() {
if (delegate.isUnloading()) {
return;
}
delegate.setUnloading(true);
try {
super.doUnload();
} finally {
delegate.setUnloading(false);
}
}
/**
* <p>
* {@inheritDoc}
* </p>
*
* @see org.teiid.designer.core.resource.XResource#getUuid(org.eclipse.emf.ecore.EObject)
*/
@Override
public String getUuid( EObject object ) {
return getID(object);
}
/**
* <p>
* {@inheritDoc}
* </p>
*
* @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#isAttachedDetachedHelperRequired()
*/
@Override
protected boolean isAttachedDetachedHelperRequired() {
return true;
}
/**
* @see org.teiid.designer.core.resource.XResource#isLoading()
* @since 5.0.3
*/
@Override
public boolean isLoading() {
return delegate.isLoading();
}
/**
* @see org.teiid.designer.core.resource.XResource#isUnloading()
* @since 5.0.3
*/
@Override
public boolean isUnloading() {
return delegate.isUnloading();
}
/**
* <p>
* {@inheritDoc}
* </p>
*
* @see org.teiid.designer.core.resource.XResource#setUuid(org.eclipse.emf.ecore.EObject, java.lang.String)
*/
@Override
public void setUuid( EObject object,
String uuid ) {
setID(object, uuid);
}
/**
* <p>
* {@inheritDoc}
* </p>
*
* @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#useUUIDs()
*/
@Override
protected boolean useUUIDs() {
return true;
}
} // WsdlResourceFactoryImpl