CREATE TABLE java_JavaClass (
	EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	kind_value Integer,
	public EBoolean,
	final EBoolean,
	declaringClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer,
	FOREIGN KEY (EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EClass (EClassifier_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (kind_value) references java_TypeKind (value),
	FOREIGN KEY (declaringClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references java_JavaClass (EClass_EClassifier_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EClass_EClassifier_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EClass (
	EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	abstract EBoolean,
	interface EBoolean,
	FOREIGN KEY (EClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EClassifier (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EClassifier_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EClassifier (
	ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	instanceClassName EString,
	instanceTypeName EString,
	FOREIGN KEY (ENamedElement_EModelElement_EObject_id) references ecore_ENamedElement (EModelElement_EObject_id),
	PRIMARY KEY (ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_ENamedElement (
	EModelElement_EObject_id Integer NOT NULL,
	name EString,
	FOREIGN KEY (EModelElement_EObject_id) references ecore_EModelElement (EObject_id),
	PRIMARY KEY (EModelElement_EObject_id));

CREATE TABLE ecore_EModelElement (
	EObject_id Integer NOT NULL,
	FOREIGN KEY (EObject_id) references ecore_EObject (id),
	PRIMARY KEY (EObject_id));

CREATE TABLE ecore_EObject (
	id Integer NOT NULL,
	PRIMARY KEY (id));

CREATE TABLE java_Initializer (
	id Integer NOT NULL,
	isStatic EBooleanObject,
	source_id Integer,
	FOREIGN KEY (source_id) references java_Block (id),
	PRIMARY KEY (id));

CREATE TABLE java_JavaParameter (
	EParameter_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	final EBoolean,
	parameterKind_value Integer,
	FOREIGN KEY (EParameter_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EParameter (ETypedElement_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (parameterKind_value) references java_JavaParameterKind (value),
	PRIMARY KEY (EParameter_ETypedElement_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EParameter (
	ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_ETypedElement (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (ETypedElement_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_ETypedElement (
	ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	ordered EBoolean,
	unique EBoolean,
	lowerBound EInt,
	upperBound EInt,
	eType_ENamedElement_EModelElement_EObject_id Integer,
	eGenericType_EObject_id Integer,
	FOREIGN KEY (ENamedElement_EModelElement_EObject_id) references ecore_ENamedElement (EModelElement_EObject_id),
	FOREIGN KEY (eType_ENamedElement_EModelElement_EObject_id) references ecore_EClassifier (ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eGenericType_EObject_id) references ecore_EGenericType (EObject_id),
	PRIMARY KEY (ENamedElement_EModelElement_EObject_id));

CREATE TABLE java_Method (
	EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	abstract EBoolean,
	native EBoolean,
	synchronized EBoolean,
	final EBoolean,
	constructor EBoolean,
	static EBoolean,
	javaVisibility_value Integer,
	source_id Integer,
	FOREIGN KEY (EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EOperation (ETypedElement_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (javaVisibility_value) references java_JavaVisibilityKind (value),
	FOREIGN KEY (source_id) references java_Block (id),
	PRIMARY KEY (EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EOperation (
	ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_ETypedElement (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (ETypedElement_ENamedElement_EModelElement_EObject_id));

CREATE TABLE java_Field (
	ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	final EBoolean,
	static EBoolean,
	javaVisibility_value Integer,
	transient EBoolean,
	volatile EBoolean,
	initializer_id Integer,
	FOREIGN KEY (ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_ETypedElement (ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (javaVisibility_value) references java_JavaVisibilityKind (value),
	FOREIGN KEY (initializer_id) references java_Block (id),
	PRIMARY KEY (ETypedElement_ENamedElement_EModelElement_EObject_id));

CREATE TABLE java_Block (
	id Integer NOT NULL,
	source EString,
	name EString,
	PRIMARY KEY (id));

CREATE TABLE java_Comment (
	Block_id Integer NOT NULL,
	FOREIGN KEY (Block_id) references java_Block (id),
	PRIMARY KEY (Block_id));

CREATE TABLE java_Statement (
	Block_id Integer NOT NULL,
	FOREIGN KEY (Block_id) references java_Block (id),
	PRIMARY KEY (Block_id));

CREATE TABLE java_JavaPackage (
	EPackage_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EPackage_ENamedElement_EModelElement_EObject_id) references ecore_EPackage (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EPackage_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EPackage (
	ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	nsURI EString,
	nsPrefix EString,
	FOREIGN KEY (ENamedElement_EModelElement_EObject_id) references ecore_ENamedElement (EModelElement_EObject_id),
	PRIMARY KEY (ENamedElement_EModelElement_EObject_id));

CREATE TABLE java_JavaDataType (
	EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EClass (EClassifier_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EClass_EClassifier_ENamedElement_EModelElement_EObject_id));

CREATE TABLE java_ArrayType (
	JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	arrayDimensions EInt,
	componentType_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references java_JavaClass (EClass_EClassifier_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (componentType_ENamedElement_EModelElement_EObject_id) references ecore_EClassifier (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id));

CREATE TABLE java_JavaEvent (
	EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EStructuralFeature (ETypedElement_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EStructuralFeature (
	ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	changeable EBoolean,
	volatile EBoolean,
	transient EBoolean,
	defaultValueLiteral EString,
	unsettable EBoolean,
	derived EBoolean,
	FOREIGN KEY (ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_ETypedElement (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (ETypedElement_ENamedElement_EModelElement_EObject_id));

CREATE TABLE java_TypeKind (
	value Integer NOT NULL,
	label String NOT NULL,
	PRIMARY KEY (value));

CREATE TABLE java_JavaVisibilityKind (
	value Integer NOT NULL,
	label String NOT NULL,
	PRIMARY KEY (value));

CREATE TABLE java_JavaParameterKind (
	value Integer NOT NULL,
	label String NOT NULL,
	PRIMARY KEY (value));

CREATE TABLE ecore_EAttribute (
	EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	iD EBoolean,
	FOREIGN KEY (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EStructuralFeature (ETypedElement_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EAnnotation (
	EModelElement_EObject_id Integer NOT NULL,
	source EString,
	FOREIGN KEY (EModelElement_EObject_id) references ecore_EModelElement (EObject_id),
	PRIMARY KEY (EModelElement_EObject_id));

CREATE TABLE ecore_EDataType (
	EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	serializable EBoolean,
	FOREIGN KEY (EClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EClassifier (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EClassifier_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EEnum (
	EDataType_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EDataType_EClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EDataType (EClassifier_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EDataType_EClassifier_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EEnumLiteral (
	ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	value EInt,
	literal EString,
	FOREIGN KEY (ENamedElement_EModelElement_EObject_id) references ecore_ENamedElement (EModelElement_EObject_id),
	PRIMARY KEY (ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EFactory (
	EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EModelElement_EObject_id) references ecore_EModelElement (EObject_id),
	PRIMARY KEY (EModelElement_EObject_id));

CREATE TABLE ecore_EReference (
	EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	containment EBoolean,
	resolveProxies EBoolean,
	eOpposite_EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id Integer,
	FOREIGN KEY (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EStructuralFeature (ETypedElement_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eOpposite_EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EReference (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id));

CREATE TABLE ecore_EStringToStringMapEntry (
	id Integer NOT NULL,
	key EString,
	value EString,
	PRIMARY KEY (id));

CREATE TABLE ecore_EGenericType (
	EObject_id Integer NOT NULL,
	eUpperBound_EObject_id Integer,
	eLowerBound_EObject_id Integer,
	eTypeParameter_ENamedElement_EModelElement_EObject_id Integer,
	eClassifier_ENamedElement_EModelElement_EObject_id Integer,
	FOREIGN KEY (EObject_id) references ecore_EObject (id),
	FOREIGN KEY (eUpperBound_EObject_id) references ecore_EGenericType (EObject_id),
	FOREIGN KEY (eLowerBound_EObject_id) references ecore_EGenericType (EObject_id),
	FOREIGN KEY (eTypeParameter_ENamedElement_EModelElement_EObject_id) references ecore_ETypeParameter (ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EClassifier (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (EObject_id));

CREATE TABLE ecore_ETypeParameter (
	ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (ENamedElement_EModelElement_EObject_id) references ecore_ENamedElement (EModelElement_EObject_id),
	PRIMARY KEY (ENamedElement_EModelElement_EObject_id));

CREATE TABLE EClassifier_eTypeParameters (
	id Integer NOT NULL,
	EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	eTypeParameters_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EClassifier (ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eTypeParameters_ENamedElement_EModelElement_EObject_id) references ecore_ETypeParameter (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE EClass_eSuperTypes (
	id Integer NOT NULL,
	EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	eSuperTypes_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EClass (EClassifier_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eSuperTypes_EClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EClass (EClassifier_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE EClass_eGenericSuperTypes (
	id Integer NOT NULL,
	EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	eGenericSuperTypes_EObject_id Integer NOT NULL,
	FOREIGN KEY (EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references ecore_EClass (EClassifier_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eGenericSuperTypes_EObject_id) references ecore_EGenericType (EObject_id),
	PRIMARY KEY (id));

CREATE TABLE JavaClass_implementsInterfaces (
	id Integer NOT NULL,
	JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	implementsInterfaces_EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references java_JavaClass (EClass_EClassifier_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (implementsInterfaces_EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references java_JavaClass (EClass_EClassifier_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE JavaClass_classImport (
	id Integer NOT NULL,
	JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	classImport_EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references java_JavaClass (EClass_EClassifier_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (classImport_EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references java_JavaClass (EClass_EClassifier_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE JavaClass_packageImports (
	id Integer NOT NULL,
	JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	packageImports_EPackage_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references java_JavaClass (EClass_EClassifier_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (packageImports_EPackage_ENamedElement_EModelElement_EObject_id) references java_JavaPackage (EPackage_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE JavaClass_events (
	id Integer NOT NULL,
	JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	events_EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (JavaClass_EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references java_JavaClass (EClass_EClassifier_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (events_EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id) references java_JavaEvent (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE EOperation_eTypeParameters (
	id Integer NOT NULL,
	EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	eTypeParameters_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EOperation (ETypedElement_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eTypeParameters_ENamedElement_EModelElement_EObject_id) references ecore_ETypeParameter (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE EOperation_eExceptions (
	id Integer NOT NULL,
	EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	eExceptions_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EOperation (ETypedElement_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eExceptions_ENamedElement_EModelElement_EObject_id) references ecore_EClassifier (ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE EOperation_eGenericExceptions (
	id Integer NOT NULL,
	EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	eGenericExceptions_EObject_id Integer NOT NULL,
	FOREIGN KEY (EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EOperation (ETypedElement_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eGenericExceptions_EObject_id) references ecore_EGenericType (EObject_id),
	PRIMARY KEY (id));

CREATE TABLE Method_parameters (
	id Integer NOT NULL,
	Method_EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	parameters_EParameter_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (Method_EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id) references java_Method (EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (parameters_EParameter_ETypedElement_ENamedElement_EModelElement_EObject_id) references java_JavaParameter (EParameter_ETypedElement_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE Method_javaExceptions (
	id Integer NOT NULL,
	Method_EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	javaExceptions_EClass_EClassifier_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (Method_EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id) references java_Method (EOperation_ETypedElement_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (javaExceptions_EClass_EClassifier_ENamedElement_EModelElement_EObject_id) references java_JavaClass (EClass_EClassifier_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE Block_contents (
	id Integer NOT NULL,
	Block_id Integer NOT NULL,
	contents_id Integer NOT NULL,
	FOREIGN KEY (Block_id) references java_Block (id),
	FOREIGN KEY (contents_id) references java_Block (id),
	PRIMARY KEY (id));

CREATE TABLE EAnnotation_details (
	id Integer NOT NULL,
	EAnnotation_EModelElement_EObject_id Integer NOT NULL,
	details_id Integer NOT NULL,
	FOREIGN KEY (EAnnotation_EModelElement_EObject_id) references ecore_EAnnotation (EModelElement_EObject_id),
	FOREIGN KEY (details_id) references ecore_EStringToStringMapEntry (id),
	PRIMARY KEY (id));

CREATE TABLE EAnnotation_contents (
	id Integer NOT NULL,
	EAnnotation_EModelElement_EObject_id Integer NOT NULL,
	contents_id Integer NOT NULL,
	FOREIGN KEY (EAnnotation_EModelElement_EObject_id) references ecore_EAnnotation (EModelElement_EObject_id),
	FOREIGN KEY (contents_id) references ecore_EObject (id),
	PRIMARY KEY (id));

CREATE TABLE EAnnotation_references (
	id Integer NOT NULL,
	EAnnotation_EModelElement_EObject_id Integer NOT NULL,
	references_id Integer NOT NULL,
	FOREIGN KEY (EAnnotation_EModelElement_EObject_id) references ecore_EAnnotation (EModelElement_EObject_id),
	FOREIGN KEY (references_id) references ecore_EObject (id),
	PRIMARY KEY (id));

CREATE TABLE EReference_eKeys (
	id Integer NOT NULL,
	EReference_EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	eKeys_EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	FOREIGN KEY (EReference_EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EReference (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eKeys_EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id) references ecore_EAttribute (EStructuralFeature_ETypedElement_ENamedElement_EModelElement_EObject_id),
	PRIMARY KEY (id));

CREATE TABLE EGenericType_eTypeArguments (
	id Integer NOT NULL,
	EGenericType_EObject_id Integer NOT NULL,
	eTypeArguments_EObject_id Integer NOT NULL,
	FOREIGN KEY (EGenericType_EObject_id) references ecore_EGenericType (EObject_id),
	FOREIGN KEY (eTypeArguments_EObject_id) references ecore_EGenericType (EObject_id),
	PRIMARY KEY (id));

CREATE TABLE ETypeParameter_eBounds (
	id Integer NOT NULL,
	ETypeParameter_ENamedElement_EModelElement_EObject_id Integer NOT NULL,
	eBounds_EObject_id Integer NOT NULL,
	FOREIGN KEY (ETypeParameter_ENamedElement_EModelElement_EObject_id) references ecore_ETypeParameter (ENamedElement_EModelElement_EObject_id),
	FOREIGN KEY (eBounds_EObject_id) references ecore_EGenericType (EObject_id),
	PRIMARY KEY (id));