Implemented the oe filtering (#328)

* Implemented the oe filtering
This commit is contained in:
Leila Lali
2017-04-26 14:48:17 -07:00
committed by GitHub
parent 1a16101381
commit 51916c2221
17 changed files with 3108 additions and 1030 deletions

View File

@@ -1,12 +1,13 @@
using System;
using System.Collections.Generic;
using System.Composition;
using Microsoft.SqlTools.ServiceLayer;
using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes;
namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
using System;
using System.Collections.Generic;
using System.Composition;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlTools.ServiceLayer;
using Microsoft.SqlTools.ServiceLayer.ObjectExplorer.Nodes;
namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
internal sealed partial class DatabaseTreeNode : SmoTreeNode
{
public DatabaseTreeNode() : base()
@@ -657,6 +658,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "Database";
InitializeChild(child, context);
return child;
}
@@ -668,6 +670,45 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "Tables" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IsFileTable",
Type = typeof(bool),
Values = new List<object> { 0 },
});
filters.Add(new NodeFilter
{
Property = "IsSystemObject",
Type = typeof(bool),
Values = new List<object> { 0 },
});
filters.Add(new NodeFilter
{
Property = "IsExternal",
Type = typeof(bool),
ValidFor = ValidForFlag.Sql2016|ValidForFlag.AzureV12,
Values = new List<object> { 0 },
});
filters.Add(new NodeFilter
{
Property = "TemporalType",
Type = typeof(Enum),
ValidFor = ValidForFlag.Sql2016|ValidForFlag.AzureV12,
Values = new List<object>
{
{ TableTemporalType.None },
{ TableTemporalType.SystemVersioned }
}
});
return filters;
}
}
protected override void OnExpandPopulateFolders(IList<TreeNode> currentChildren, TreeNode parent)
{
currentChildren.Add(new FolderNode {
@@ -715,6 +756,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "Views" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IsSystemObject",
Type = typeof(bool),
Values = new List<object> { 0 },
});
return filters;
}
}
protected override void OnExpandPopulateFolders(IList<TreeNode> currentChildren, TreeNode parent)
{
currentChildren.Add(new FolderNode {
@@ -1095,6 +1151,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "SystemTables" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IsSystemObject",
Type = typeof(bool),
Values = new List<object> { 1 },
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -1117,6 +1188,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "FileTables" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IsFileTable",
Type = typeof(bool),
Values = new List<object> { 1 },
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -1139,6 +1225,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "ExternalTables" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IsExternal",
Type = typeof(bool),
Values = new List<object> { 1 },
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -1161,6 +1262,25 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "Table" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "TemporalType",
Type = typeof(Enum),
ValidFor = ValidForFlag.Sql2016|ValidForFlag.AzureV12,
Values = new List<object>
{
{ TableTemporalType.HistoryTable }
}
});
return filters;
}
}
protected override void OnExpandPopulateFolders(IList<TreeNode> currentChildren, TreeNode parent)
{
currentChildren.Add(new FolderNode {
@@ -1257,6 +1377,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "Table";
InitializeChild(child, context);
return child;
}
@@ -1296,6 +1417,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "Table";
InitializeChild(child, context);
return child;
}
@@ -1332,6 +1454,27 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "Keys" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IndexKeyType",
Type = typeof(Enum),
TypeToReverse = typeof(SqlIndexQuerier),
ValidFor = ValidForFlag.Sql2016|ValidForFlag.AzureV12,
Values = new List<object>
{
{ IndexKeyType.DriPrimaryKey },
{ IndexKeyType.DriUniqueKey }
}
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -1404,6 +1547,26 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "Indexes" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IndexKeyType",
Type = typeof(Enum),
TypeToReverse = typeof(SqlIndexQuerier),
ValidFor = ValidForFlag.Sql2016|ValidForFlag.AzureV12,
Values = new List<object>
{
{ IndexKeyType.None }
}
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -1416,7 +1579,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "Indexe";
child.NodeType = "Index";
InitializeChild(child, context);
return child;
}
@@ -1452,6 +1615,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "SystemViews" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IsSystemObject",
Type = typeof(bool),
Values = new List<object> { 1 },
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -1513,6 +1691,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "View";
InitializeChild(child, context);
return child;
}
@@ -1598,7 +1777,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "Assemblie";
child.NodeType = "Assembly";
InitializeChild(child, context);
return child;
}
@@ -1936,6 +2115,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "UserDefinedTableType";
InitializeChild(child, context);
return child;
}
@@ -1972,6 +2152,27 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "UserDefinedTableTypeKeys" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IndexKeyType",
Type = typeof(Enum),
TypeToReverse = typeof(SqlIndexQuerier),
ValidFor = ValidForFlag.Sql2016|ValidForFlag.AzureV12,
Values = new List<object>
{
{ IndexKeyType.DriPrimaryKey },
{ IndexKeyType.DriUniqueKey }
}
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -2284,6 +2485,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "StoredProcedures" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IsSystemObject",
Type = typeof(bool),
Values = new List<object> { 0 },
});
return filters;
}
}
protected override void OnExpandPopulateFolders(IList<TreeNode> currentChildren, TreeNode parent)
{
currentChildren.Add(new FolderNode {
@@ -2317,6 +2533,21 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "SystemStoredProcedures" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "IsSystemObject",
Type = typeof(bool),
Values = new List<object> { 1 },
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -2360,6 +2591,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "StoredProcedure";
InitializeChild(child, context);
return child;
}
@@ -2396,6 +2628,31 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "TableValuedFunctions" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "FunctionType",
Type = typeof(Enum),
ValidFor = ValidForFlag.Sql2016|ValidForFlag.AzureV12,
Values = new List<object>
{
{ UserDefinedFunctionType.Table }
}
});
filters.Add(new NodeFilter
{
Property = "IsSystemObject",
Type = typeof(bool),
Values = new List<object> { 0 },
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -2439,6 +2696,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "TableValuedFunction";
InitializeChild(child, context);
return child;
}
@@ -2475,6 +2733,31 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
public override IEnumerable<string> ApplicableParents() { return new[] { "ScalarValuedFunctions" }; }
public override IEnumerable<NodeFilter> Filters
{
get
{
var filters = new List<NodeFilter>();
filters.Add(new NodeFilter
{
Property = "FunctionType",
Type = typeof(Enum),
ValidFor = ValidForFlag.Sql2016|ValidForFlag.AzureV12,
Values = new List<object>
{
{ UserDefinedFunctionType.Scalar }
}
});
filters.Add(new NodeFilter
{
Property = "IsSystemObject",
Type = typeof(bool),
Values = new List<object> { 0 },
});
return filters;
}
}
internal override Type[] ChildQuerierTypes
{
get
@@ -2518,6 +2801,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "ScalarValuedFunction";
InitializeChild(child, context);
return child;
}
@@ -2597,6 +2881,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "AggregateFunction";
InitializeChild(child, context);
return child;
}
@@ -2669,7 +2954,7 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
{
var child = new SmoTreeNode();
child.IsAlwaysLeaf = true;
child.NodeType = "BrokerPrioritie";
child.NodeType = "BrokerPriority";
InitializeChild(child, context);
return child;
}
@@ -3527,5 +3812,5 @@ namespace Microsoft.SqlTools.ServiceLayer.ObjectExplorer.SmoModel
}
}
}
}