internal virtual void BottomUpPopulate(GremlinVariable terminateVariable, string property, string columnName) { if (terminateVariable == this) { return; } if (HomeContext == null) { throw new Exception(); } HomeContext.PopulateColumn(GetVariableProperty(property), columnName); if (!(HomeContext.HomeVariable is GremlinRepeatVariable) && !HomeContext.HomeVariable.ProjectedProperties.Contains(columnName)) { HomeContext.HomeVariable.ProjectedProperties.Add(columnName); } if (HomeContext.HomeVariable == null) { throw new Exception(); } HomeContext.HomeVariable.BottomUpPopulate(terminateVariable, columnName, columnName); }