void SetupDataSelectSet(SelectSet selectSet) { dataSelectSet = selectSet; if (selectSet != null) { // data SelectSet context must be between over local and any under child view contexts ExpressionParsingContext = new ExpressionParsingContext(ExpressionParsingContext, dataSelectSet); } }
// [Figure.1] Example structure of nodes, SelectSets and ExpressionParsingContext (EPC) //============================================================================================================================================================= // Node | SelectSet | Node 0 | Node 0_0 | Node 0_0_0 | Node 0_0_1 | Node 0_1 | Node 0_1_0 | Node 0_1_1 //------------------------------------------------------------------------------------------------------------------------------------------------------------- // + Node 0 // | localSelectSet EPC.row=-1 EPC.row=-1 EPC.row=-1 EPC.row-1 EPC.row=-1 EPC.row=-1 EPC.row=-1 // | /|\ /|\ /|\ /|\ /|\ /|\ /|\ // | | | | | | | | // | dataSelectSet EPC.row=-1 EPC.row=0 EPC.row=0 EPC.row=0 EPC.row=1 EPC.row=1 EPC.row=1 // | /|\ /|\ /|\ /|\ /|\ /|\ // |-+ Node 0_0 | | | | | | // | | localSelectSet EPC.row=-1 EPC.row=-1 EPC.row=-1 | | | // | | /|\ /|\ /|\ | | | // | | | | | | | | // | | dataSelectSet EPC.row=-1 EPC.row=0 EPC.row=1 | | | // | | /|\ /|\ | | | // | |- Node 0_0_0 | | | | | // | | localSelectSet EPC.row=-1 | | | | // | | /|\ | | | | // | | | | | | | // | | dataSelectSet EPC.row=-1 | | | | // | | | | | | // | |- Node 0_0_1 | | | | // | | | | | // | localSelectSet EPC.row=-1 | | | // | /|\ | | | // | | | | | // | dataSelectSet EPC.row=-1 | | | // | | | | // |-+ Node 0_1 | | | // | localSelectSet EPC.row=-1 EPC.row=-1 EPC.row=-1 // | /|\ /|\ /|\ // | | | | // | dataSelectSet EPC.row=-1 EPC.row=0 EPC.row=1 // | /|\ /|\ // |- Node 0_1_0 | | // | localSelectSet | | // | EPC.row=-1 | // | /|\ | // | dataSelectSet | | // | EPC.row=-1 | // |- Node 0_1_1 | // localSelectSet | // EPC.row=-1 // /|\ // dataSelectSet | // EPC.row=-1 //============================================================================================================================================================= // // Using this structure, name look-up are prioritized in this order: //========================================================================== // Node | Select Set | Data used from select set //-------------------------------------------------------------------------- // Node 0 // Node0.dataSelectSet all // Node0.localSelectSet all // Node 0_0 // Node0_0.dataSelectSet all // Node0_0.localSelectSet all // Node0.dataSelectSet row 0 // Node0.localSelectSet all // Node 0_1: // Node0_1.dataSelectSet all // Node0_1.localSelectSet all // Node0.dataSelectSet row 1 // Node0.localSelectSet all // Node 0_0_0 // Node0_0_0.dataSelectSet all // Node0_0_0.localSelectSet all // Node0_0.dataSelectSet row 0 // Node0_0.localSelectSet all // Node0.dataSelectSet row 0 // Node0.localSelectSet all // Node 0_0_1 // Node0_0_1.dataSelectSet all // Node0_0_1.localSelectSet all // Node0_0.dataSelectSet row 1 // Node0_0.localSelectSet all // Node0.dataSelectSet row 0 // Node0.localSelectSet all // Node 0_1_0 // Node0_1_0.dataSelectSet all // Node0_1_0.localSelectSet all // Node0_1.dataSelectSet row 0 // Node0_1.localSelectSet all // Node0.dataSelectSet row 1 // Node0.localSelectSet all // Node 0_1_1 // Node0_1_1.dataSelectSet all // Node0_1_1.localSelectSet all // Node0_1.dataSelectSet row 1 // Node0_1.localSelectSet all // Node0.dataSelectSet row 1 // Node0.localSelectSet all //========================================================================== public ViewTable(ViewSchema viewSchema, Schema baseSchema, Builder.Node node, ExpressionParsingContext parentExpressionParsingContext) : base(viewSchema) { this.ViewSchema = viewSchema; this.BaseSchema = baseSchema; this.node = node; ExpressionParsingContext = parentExpressionParsingContext; ParentExpressionParsingContext = parentExpressionParsingContext; }
void SetupLocalSelectSet(SelectSet selectSet) { DebugUtility.CheckCondition(dataSelectSet == null, "SetLocalSelectSet must be called before setting up DataSelectSet"); localSelectSet = selectSet; if (selectSet != null) { // local SelectSet context must be over parent and under data context ExpressionParsingContext = new ExpressionParsingContext(ParentExpressionParsingContext, localSelectSet); } }
void SetupLocalSelectSet(SelectSet selectSet) { if (dataSelectSet != null) { Debug.LogError("SetLocalSelectSet must be called before setting up DataSelectSet"); } localSelectSet = selectSet; if (selectSet != null) { // local SelectSet context must be over parent and under data context ExpressionParsingContext = new ExpressionParsingContext(ParentExpressionParsingContext, localSelectSet); } }