/* * 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.modelgenerator.xml.modelextension; import org.eclipse.emf.ecore.EcorePackage; import org.teiid.designer.metamodels.core.extension.ExtensionFactory; import org.teiid.designer.metamodels.core.extension.XAttribute; import org.teiid.designer.metamodels.core.extension.XClass; import org.teiid.designer.modelgenerator.xml.modelextension.impl.BaseXMLRelationalExtensionManagerImpl; /** * The model extension for the XML Relational File Connector. Adds the File Name metadata extension. * * @author jdoyle * * @since 8.0 */ public class XMLFileExtensionManager extends BaseXMLRelationalExtensionManagerImpl { static final String MODEL_FILE_NAME = "XMLFileConnectorExtensions.xmi"; //$NON-NLS-1$ public static final String PACKAGE_NAME = "XMLFileExtension"; //$NON-NLS-1$ static final String PACKAGE_PREFIX = "xmlf"; //$NON-NLS-1$ static final String PACKAGE_NS_URI = "http://www.metamatrix.com/metamodels/XMLFile"; //$NON-NLS-1$ static final String TABLE_NAME = "XML File Table"; //$NON-NLS-1$ static final String TABLE_FILE_NAME = "File Name"; //$NON-NLS-1$ private XAttribute fileNameTableAttribute; @Override public void createTableExtensions( ExtensionFactory factory, XClass table ) { super.createTableExtensions(factory, table); fileNameTableAttribute = factory.createXAttribute(); fileNameTableAttribute.setName(XMLFileExtensionManager.TABLE_FILE_NAME); fileNameTableAttribute.setEType(EcorePackage.eINSTANCE.getEString()); table.getEStructuralFeatures().add(fileNameTableAttribute); } @Override public void assignAttribute( XAttribute attribute ) { super.assignAttribute(attribute); if (attribute.getName().equals(getTableName())) { fileNameTableAttribute = attribute; } } @Override public String getModelFileName() { return MODEL_FILE_NAME; } @Override public String getPackageName() { return PACKAGE_NAME; } @Override public String getPackageNsUri() { return PACKAGE_NS_URI; } @Override public String getPackagePrefix() { return PACKAGE_PREFIX; } @Override public String getTableName() { return TABLE_NAME; } }