private void PerformTableSearch(TableParams inTableParams) { m_LineRefs.Clear(); if (m_TableMgr == null) { Debug.LogError("No rule table manager found"); return; } AbstractTableRefVisitor visitor = null; switch (inTableParams.Mode) { case TableMode.Action: { visitor = new TableUtils.ActionIdRefVisitor(inTableParams.ElementSearchId); break; } case TableMode.Query: { visitor = new TableUtils.QueryIdRefVisitor(inTableParams.ElementSearchId); break; } case TableMode.Trigger: { visitor = new TableUtils.TriggerIdRefVisitor(new RSTriggerId(inTableParams.ElementSearchId)); break; } case TableMode.Entity: { visitor = new TableUtils.EntityIdRefVisitor(inTableParams.EntitySearch); break; } case TableMode.String: { visitor = new TableUtils.StringRefVisitor(inTableParams.StringSearch); break; } case TableMode.Issues: { var validationContext = new RSValidationContext(RSEditorUtility.EditorPlugin.Library); validationContext = validationContext.WithManager(m_EntityMgr); foreach (var table in m_TableMgr.AllTableSources()) { var validationState = RSValidator.Validate(table.TableData, validationContext); if (validationState.IssueCount > 0) { m_LineRefs.Add(TableLineRef.FromTable(table).WithDescriptor("{0} errors, {1} warnings", validationState.ErrorCount, validationState.WarningCount)); } } break; } } if (visitor != null) { foreach (var table in m_TableMgr.AllTableSources()) { visitor.Visit(table); } m_LineRefs.AddRange(visitor.CollectedRefs); } }
private void ScanForIssues() { m_LastValidationState = RSValidator.Validate(m_SelectionState.Table, m_Context); }