blob: 3e195a30073ee0302f9f717d9a3c4033afef1026 [file] [log] [blame]
/*
* 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.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.impl.XMIResourceImpl;
import org.eclipse.wst.rdb.models.dbdefinition.CheckOption;
import org.eclipse.wst.rdb.models.dbdefinition.ColumnDefinition;
import org.eclipse.wst.rdb.models.dbdefinition.ConstraintDefinition;
import org.eclipse.wst.rdb.models.dbdefinition.DatabaseDefinitionFactory;
import org.eclipse.wst.rdb.models.dbdefinition.DatabaseVendorDefinition;
import org.eclipse.wst.rdb.models.dbdefinition.DefaultValueType;
import org.eclipse.wst.rdb.models.dbdefinition.LanguageType;
import org.eclipse.wst.rdb.models.dbdefinition.ParentDeleteDRIRuleType;
import org.eclipse.wst.rdb.models.dbdefinition.ParentUpdateDRIRuleType;
import org.eclipse.wst.rdb.models.dbdefinition.PredefinedDataTypeDefinition;
import org.eclipse.wst.rdb.models.dbdefinition.ProcedureType;
import org.eclipse.wst.rdb.models.dbdefinition.SequenceDefinition;
import org.eclipse.wst.rdb.models.dbdefinition.StoredProcedureDefinition;
import org.eclipse.wst.rdb.models.dbdefinition.TableSpaceDefinition;
import org.eclipse.wst.rdb.models.dbdefinition.TableSpaceType;
import org.eclipse.wst.rdb.models.dbdefinition.TriggerDefinition;
import org.eclipse.wst.rdb.models.dbdefinition.UserDefinedTypeDefinition;
import org.eclipse.wst.rdb.internal.models.sql.datatypes.PrimitiveType;
/**
* @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("C:\\temp\\MySQL_1.0.xmi");
Resource rf = new XMIResourceImpl(uri);
// Database vendor definitions
DatabaseVendorDefinition databaseVendorDefinition = DatabaseDefinitionFactory.eINSTANCE.createDatabaseVendorDefinition();
databaseVendorDefinition.setVendor("DB2 UDB");
databaseVendorDefinition.setVersion("8.0");
databaseVendorDefinition.setViewTriggerSupported(true);
databaseVendorDefinition.setMaximumIdentifierLength(64);
databaseVendorDefinition.setMaximumCommentLength(64);
databaseVendorDefinition.setSequenceSupported(true);
databaseVendorDefinition.setMQTSupported(true);
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");
characterDataTypeDefinition.getName().add("CHARACTER");
characterDataTypeDefinition.setMaximumLength(254);
characterDataTypeDefinition.setKeyConstraintSupported(true);
characterDataTypeDefinition.getDefaultValueTypes().add(DefaultValueType.CURRENT_USER_LITERAL);
characterDataTypeDefinition.getDefaultValueTypes().add(DefaultValueType.NULL_LITERAL);
characterDataTypeDefinition.setLengthSupported(true);
characterDataTypeDefinition.setJdbcEnumType(1);
characterDataTypeDefinition.setJavaClassName("java.lang.String");
databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(characterDataTypeDefinition);
((XMIResource)rf).setID(characterDataTypeDefinition, PrimitiveType.CHARACTER_LITERAL+"_1");
// DECIMAL
PredefinedDataTypeDefinition decimalDataTypeDefinition = DatabaseDefinitionFactory.eINSTANCE.createPredefinedDataTypeDefinition();
decimalDataTypeDefinition.setPrimitiveType(PrimitiveType.DECIMAL_LITERAL);
decimalDataTypeDefinition.getName().add("DECIMAL");
decimalDataTypeDefinition.getName().add("DEC");
decimalDataTypeDefinition.setPrecisionSupported(true);
decimalDataTypeDefinition.setScaleSupported(true);
decimalDataTypeDefinition.setKeyConstraintSupported(true);
decimalDataTypeDefinition.setIdentitySupported(true);
decimalDataTypeDefinition.getDefaultValueTypes().add(DefaultValueType.NULL_LITERAL);
decimalDataTypeDefinition.setJdbcEnumType(3);
decimalDataTypeDefinition.setJavaClassName("java.math.BigDecimal");
databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(decimalDataTypeDefinition);
((XMIResource)rf).setID(decimalDataTypeDefinition, PrimitiveType.DECIMAL_LITERAL+"_1");
// DOUBLE
PredefinedDataTypeDefinition doublePrecisionDataTypeDefinition = DatabaseDefinitionFactory.eINSTANCE.createPredefinedDataTypeDefinition();
doublePrecisionDataTypeDefinition.setPrimitiveType(PrimitiveType.DOUBLE_PRECISION_LITERAL);
doublePrecisionDataTypeDefinition.getName().add("DOUBLE");
doublePrecisionDataTypeDefinition.setKeyConstraintSupported(true);
doublePrecisionDataTypeDefinition.getDefaultValueTypes().add(DefaultValueType.NULL_LITERAL);
doublePrecisionDataTypeDefinition.setJdbcEnumType(8);
doublePrecisionDataTypeDefinition.setJavaClassName("double");
databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(doublePrecisionDataTypeDefinition);
((XMIResource)rf).setID(doublePrecisionDataTypeDefinition, PrimitiveType.DOUBLE_PRECISION_LITERAL+"_1");
// INTEGER
PredefinedDataTypeDefinition integerDataTypeDefinition = DatabaseDefinitionFactory.eINSTANCE.createPredefinedDataTypeDefinition();
integerDataTypeDefinition.setPrimitiveType(PrimitiveType.INTEGER_LITERAL);
integerDataTypeDefinition.getName().add("INTEGER");
integerDataTypeDefinition.getName().add("INT");
integerDataTypeDefinition.setKeyConstraintSupported(true);
integerDataTypeDefinition.setIdentitySupported(true);
integerDataTypeDefinition.getDefaultValueTypes().add(DefaultValueType.NULL_LITERAL);
integerDataTypeDefinition.setJdbcEnumType(4);
integerDataTypeDefinition.setJavaClassName("int");
databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(integerDataTypeDefinition);
((XMIResource)rf).setID(integerDataTypeDefinition, PrimitiveType.INTEGER_LITERAL+"_1");
// NUMERIC
PredefinedDataTypeDefinition numericDataTypeDefinition = DatabaseDefinitionFactory.eINSTANCE.createPredefinedDataTypeDefinition();
numericDataTypeDefinition.setPrimitiveType(PrimitiveType.NUMERIC_LITERAL);
numericDataTypeDefinition.getName().add("NUMERIC");
numericDataTypeDefinition.getName().add("NUM");
numericDataTypeDefinition.setKeyConstraintSupported(true);
numericDataTypeDefinition.setPrecisionSupported(true);
numericDataTypeDefinition.setScaleSupported(true);
numericDataTypeDefinition.getDefaultValueTypes().add(DefaultValueType.NULL_LITERAL);
numericDataTypeDefinition.setJdbcEnumType(2);
numericDataTypeDefinition.setJavaClassName("java.math.BigDecimal");
databaseVendorDefinition.getPredefinedDataTypeDefinitions().add(numericDataTypeDefinition);
((XMIResource)rf).setID(numericDataTypeDefinition, PrimitiveType.NUMERIC_LITERAL+"_1");
if (rf != null) {
EList resourceContents = rf.getContents();
resourceContents.add(databaseVendorDefinition);
try {
Map options = new HashMap();
options.put(XMIResource.OPTION_DECLARE_XML, Boolean.TRUE);
rf.save(options);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}