blob: 93e43a1572d07d65ef883047f3ef6f686c219d51 [file] [log] [blame]
package org.eclipse.wst.xml.core.internal.contentmodel.internal.modelqueryimpl;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtension;
;
/**
* Describes an extension to the <code>modelQueryExtension</code> extension
* point.
*
*/
public class ModelQueryExtensionDescriptor
{
private static final String CONTENT_TYPE_ATTRIBUTE = "contentType"; //$NON-NLS-1$
private static final String NAMESPACE_ATTRIBUTE = "namespace"; //$NON-NLS-1$
private static final String CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$
private IConfigurationElement configuration;
private String contentTypeId;
private String namespace;
private ModelQueryExtension extension;
public ModelQueryExtensionDescriptor(IConfigurationElement element)
{
configuration = element;
}
public ModelQueryExtension createModelQueryExtension() throws CoreException
{
if (extension == null)
{
extension = (ModelQueryExtension) configuration.createExecutableExtension(CLASS_ATTRIBUTE);
}
return extension;
}
public String getContentTypeId()
{
if (contentTypeId == null)
{
contentTypeId = configuration.getAttribute(CONTENT_TYPE_ATTRIBUTE);
}
return contentTypeId;
}
public String getNamespace()
{
if (namespace == null)
{
namespace = configuration.getAttribute(NAMESPACE_ATTRIBUTE);
}
return namespace;
}
}