/* * Created on Oct 7, 2003 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ import java.util.HashMap; import java.util.Map; import org.eclipse.datatools.modelbase.dbdefinition.CheckOption; import org.eclipse.datatools.modelbase.dbdefinition.ColumnDefinition; import org.eclipse.datatools.modelbase.dbdefinition.ConstraintDefinition; import org.eclipse.datatools.modelbase.dbdefinition.DatabaseDefinitionFactory; import org.eclipse.datatools.modelbase.dbdefinition.DatabaseVendorDefinition; import org.eclipse.datatools.modelbase.dbdefinition.ParentDeleteDRIRuleType; import org.eclipse.datatools.modelbase.dbdefinition.ParentUpdateDRIRuleType; import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition; import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.xmi.XMIResource; import org.eclipse.emf.ecore.xmi.XMLResource; import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; /** * @author hkolwalk To change the template for this generated type comment go to Window>Preferences>Java>Code * Generation>Code and Comments */ public class ExampleForVendorPrimitiveWrite { public static void main( String[] arg ) { URI uri = URI.createFileURI(".teiidDB.xmi"); //$NON-NLS-1$ Resource rf = new XMIResourceImpl(uri); // Database vendor definitions DatabaseVendorDefinition databaseVendorDefinition = DatabaseDefinitionFactory.eINSTANCE.createDatabaseVendorDefinition(); databaseVendorDefinition.setVendor("Teiid.org"); //$NON-NLS-1$ databaseVendorDefinition.setVersion("6.2"); //$NON-NLS-1$ databaseVendorDefinition.setViewTriggerSupported(false); databaseVendorDefinition.setMaximumIdentifierLength(64); databaseVendorDefinition.setMaximumCommentLength(64); databaseVendorDefinition.setSequenceSupported(false); databaseVendorDefinition.setMQTSupported(false); databaseVendorDefinition.setAliasSupported(true); ColumnDefinition columnDefinition = DatabaseDefinitionFactory.eINSTANCE.createColumnDefinition(); columnDefinition.setIdentitySupported(true); columnDefinition.setComputedSupported(true); columnDefinition.setIdentityStartValueSupported(true); columnDefinition.setIdentityIncrementSupported(true); columnDefinition.setIdentityMaximumSupported(true); columnDefinition.setIdentityMinimumSupported(true); columnDefinition.setIdentityCycleSupported(true); databaseVendorDefinition.setColumnDefinition(columnDefinition); ConstraintDefinition constraintDefinition = DatabaseDefinitionFactory.eINSTANCE.createConstraintDefinition(); constraintDefinition.setClusteredPrimaryKeySupported(true); constraintDefinition.setClusteredUniqueConstraintSupported(true); constraintDefinition.getParentDeleteDRIRuleType().add(ParentDeleteDRIRuleType.RESTRICT_LITERAL); constraintDefinition.getParentDeleteDRIRuleType().add(ParentDeleteDRIRuleType.CASCADE_LITERAL); constraintDefinition.getParentDeleteDRIRuleType().add(ParentDeleteDRIRuleType.SET_NULL_LITERAL); constraintDefinition.getParentDeleteDRIRuleType().add(ParentDeleteDRIRuleType.NO_ACTION_LITERAL); constraintDefinition.getParentUpdateDRIRuleType().add(ParentUpdateDRIRuleType.RESTRICT_LITERAL); constraintDefinition.getParentUpdateDRIRuleType().add(ParentUpdateDRIRuleType.NO_ACTION_LITERAL); constraintDefinition.getCheckOption().add(CheckOption.NONE_LITERAL); constraintDefinition.getCheckOption().add(CheckOption.LOCAL_LITERAL); constraintDefinition.getCheckOption().add(CheckOption.CASCADE_LITERAL); databaseVendorDefinition.setConstraintDefinition(constraintDefinition); // Primitive type definitions // CHARACTER PredefinedDataTypeDefinition characterDataTypeDefinition = DatabaseDefinitionFactory.eINSTANCE.createPredefinedDataTypeDefinition(); characterDataTypeDefinition.setPrimitiveType(PrimitiveType.CHARACTER_LITERAL); characterDataTypeDefinition.getName().add("CHAR"); //$NON-NLS-1$ characterDataTypeDefinition.getName().add("CHARACTER"); //$NON-NLS-1$ characterDataTypeDefinition.setMaximumLength(254); characterDataTypeDefinition.setKeyConstraintSupported(true); characterDataTypeDefinition.getDefaultValueTypes().add("CURRENT_USER"); //$NON-NLS-1$ characterDataTypeDefinition.getDefaultValueTypes().add("NULL"); //$NON-NLS-1$ characterDataTypeDefinition.setLengthSupported(true); characterDataTypeDefinition.setJdbcEnumType(1); characterDataTypeDefinition.setJavaClassName("java.lang.String"); //$NON-NLS-1$ databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(characterDataTypeDefinition); ((XMIResource) rf).setID(characterDataTypeDefinition, PrimitiveType.CHARACTER_LITERAL + "_1"); //$NON-NLS-1$ // DECIMAL PredefinedDataTypeDefinition decimalDataTypeDefinition = DatabaseDefinitionFactory.eINSTANCE.createPredefinedDataTypeDefinition(); decimalDataTypeDefinition.setPrimitiveType(PrimitiveType.DECIMAL_LITERAL); decimalDataTypeDefinition.getName().add("DECIMAL"); //$NON-NLS-1$ decimalDataTypeDefinition.getName().add("DEC"); //$NON-NLS-1$ decimalDataTypeDefinition.setPrecisionSupported(true); decimalDataTypeDefinition.setScaleSupported(true); decimalDataTypeDefinition.setKeyConstraintSupported(true); decimalDataTypeDefinition.setIdentitySupported(true); decimalDataTypeDefinition.getDefaultValueTypes().add("NULL"); //$NON-NLS-1$ decimalDataTypeDefinition.setJdbcEnumType(3); decimalDataTypeDefinition.setJavaClassName("java.math.BigDecimal"); //$NON-NLS-1$ databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(decimalDataTypeDefinition); ((XMIResource) rf).setID(decimalDataTypeDefinition, PrimitiveType.DECIMAL_LITERAL + "_1"); //$NON-NLS-1$ // DOUBLE PredefinedDataTypeDefinition doublePrecisionDataTypeDefinition = DatabaseDefinitionFactory.eINSTANCE.createPredefinedDataTypeDefinition(); doublePrecisionDataTypeDefinition.setPrimitiveType(PrimitiveType.DOUBLE_PRECISION_LITERAL); doublePrecisionDataTypeDefinition.getName().add("DOUBLE"); //$NON-NLS-1$ doublePrecisionDataTypeDefinition.setKeyConstraintSupported(true); doublePrecisionDataTypeDefinition.getDefaultValueTypes().add("NULL"); //$NON-NLS-1$ doublePrecisionDataTypeDefinition.setJdbcEnumType(8); doublePrecisionDataTypeDefinition.setJavaClassName("double"); //$NON-NLS-1$ databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(doublePrecisionDataTypeDefinition); ((XMIResource) rf).setID(doublePrecisionDataTypeDefinition, PrimitiveType.DOUBLE_PRECISION_LITERAL + "_1"); //$NON-NLS-1$ // INTEGER PredefinedDataTypeDefinition integerDataTypeDefinition = DatabaseDefinitionFactory.eINSTANCE.createPredefinedDataTypeDefinition(); integerDataTypeDefinition.setPrimitiveType(PrimitiveType.INTEGER_LITERAL); integerDataTypeDefinition.getName().add("INTEGER"); //$NON-NLS-1$ integerDataTypeDefinition.getName().add("INT"); //$NON-NLS-1$ integerDataTypeDefinition.setKeyConstraintSupported(true); integerDataTypeDefinition.setIdentitySupported(true); integerDataTypeDefinition.getDefaultValueTypes().add("NULL"); //$NON-NLS-1$ integerDataTypeDefinition.setJdbcEnumType(4); integerDataTypeDefinition.setJavaClassName("int"); //$NON-NLS-1$ databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(integerDataTypeDefinition); ((XMIResource) rf).setID(integerDataTypeDefinition, PrimitiveType.INTEGER_LITERAL + "_1"); //$NON-NLS-1$ // NUMERIC PredefinedDataTypeDefinition numericDataTypeDefinition = DatabaseDefinitionFactory.eINSTANCE.createPredefinedDataTypeDefinition(); numericDataTypeDefinition.setPrimitiveType(PrimitiveType.NUMERIC_LITERAL); numericDataTypeDefinition.getName().add("NUMERIC"); //$NON-NLS-1$ numericDataTypeDefinition.getName().add("NUM"); //$NON-NLS-1$ numericDataTypeDefinition.setKeyConstraintSupported(true); numericDataTypeDefinition.setPrecisionSupported(true); numericDataTypeDefinition.setScaleSupported(true); numericDataTypeDefinition.getDefaultValueTypes().add("NULL"); //$NON-NLS-1$ numericDataTypeDefinition.setJdbcEnumType(2); numericDataTypeDefinition.setJavaClassName("java.math.BigDecimal"); //$NON-NLS-1$ databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(numericDataTypeDefinition); ((XMIResource) rf).setID(numericDataTypeDefinition, PrimitiveType.NUMERIC_LITERAL + "_1"); //$NON-NLS-1$ EList resourceContents = rf.getContents(); resourceContents.add(databaseVendorDefinition); try { Map options = new HashMap(); options.put(XMLResource.OPTION_DECLARE_XML, Boolean.TRUE); rf.save(options); } catch (Exception e) { e.printStackTrace(); } } }