public static SchemaImpl GetImplementation(SchemaObjectType type, string name, string sql)
{
switch (type)
{
case SchemaObjectType.AutoProc:
return new AutoProc(name, sql);
case SchemaObjectType.BrokerPriority:
return new BrokerPriority(name, sql);
case SchemaObjectType.Certificate:
return new Certificate(name, sql);
case SchemaObjectType.Contract:
return new Contract(name, sql);
case SchemaObjectType.Constraint:
return new Constraint(name, sql);
case SchemaObjectType.Default:
return new Default(name, sql);
case SchemaObjectType.Index:
return new Index(name, sql);
case SchemaObjectType.ForeignKey:
return new Constraint(name, sql);
case SchemaObjectType.Function:
return new Function(name, sql);
case SchemaObjectType.IndexedView:
return new View(name, sql);
case SchemaObjectType.Login:
return new Login(name, sql);
case SchemaObjectType.MasterKey:
return new MasterKey(name, sql);
case SchemaObjectType.MessageType:
return new MessageType(name, sql);
case SchemaObjectType.PartitionFunction:
return new PartitionFunction(name, sql);
case SchemaObjectType.PartitionScheme:
return new PartitionScheme(name, sql);
case SchemaObjectType.Permission:
return new Permission(name, sql);
case SchemaObjectType.PrimaryKey:
return new PrimaryKey(name, sql);
case SchemaObjectType.PrimaryXmlIndex:
return new Index(name, sql);
case SchemaObjectType.Queue:
return new Queue(name, sql);
case SchemaObjectType.Role:
return new Role(name, sql);
case SchemaObjectType.Schema:
return new Schema(name, sql);
case SchemaObjectType.SecondaryXmlIndex:
return new Index(name, sql);
case SchemaObjectType.Service:
return new Service(name, sql);
case SchemaObjectType.StoredProcedure:
return new StoredProcedure(name, sql);
case SchemaObjectType.SymmetricKey:
return new SymmetricKey(name, sql);
case SchemaObjectType.Table:
return new Table(name, sql);
case SchemaObjectType.Trigger:
return new Trigger(name, sql);
case SchemaObjectType.User:
return new User(name, sql);
case SchemaObjectType.UserDefinedType:
return new UserDefinedType(name, sql);
case SchemaObjectType.View:
return new View(name, sql);
case SchemaObjectType.UserPreScript:
case SchemaObjectType.InternalPreScript:
case SchemaObjectType.Unused:
case SchemaObjectType.Script:
case SchemaObjectType.UserScript:
return new Script(name, sql);
default:
return null;
}
}
}