public static void Visit( IRdbmsStorageEntityDefinition entityDefinition, Action <TableDefinition, Action <IRdbmsStorageEntityDefinition> > tableDefinitionHandler, Action <FilterViewDefinition, Action <IRdbmsStorageEntityDefinition> > filterViewDefinitionHandler, Action <UnionViewDefinition, Action <IRdbmsStorageEntityDefinition> > unionViewDefinitionHandler, Action <EmptyViewDefinition, Action <IRdbmsStorageEntityDefinition> > emptyViewDefinitionHandler) { ArgumentUtility.CheckNotNull("entityDefinition", entityDefinition); ArgumentUtility.CheckNotNull("tableDefinitionHandler", tableDefinitionHandler); ArgumentUtility.CheckNotNull("filterViewDefinitionHandler", filterViewDefinitionHandler); ArgumentUtility.CheckNotNull("unionViewDefinitionHandler", unionViewDefinitionHandler); ArgumentUtility.CheckNotNull("emptyViewDefinitionHandler", emptyViewDefinitionHandler); var visitor = new RdbmsStorageEntityDefinitionVisitor( tableDefinitionHandler, filterViewDefinitionHandler, unionViewDefinitionHandler, emptyViewDefinitionHandler); entityDefinition.Accept(visitor); }
public static T Visit <T> ( IRdbmsStorageEntityDefinition entityDefinition, Func <TableDefinition, Func <IRdbmsStorageEntityDefinition, T>, T> tableDefinitionHandler, Func <FilterViewDefinition, Func <IRdbmsStorageEntityDefinition, T>, T> filterViewDefinitionHandler, Func <UnionViewDefinition, Func <IRdbmsStorageEntityDefinition, T>, T> unionViewDefinitionHandler, Func <EmptyViewDefinition, Func <IRdbmsStorageEntityDefinition, T>, T> emptyViewDefinitionHandler) { ArgumentUtility.CheckNotNull("entityDefinition", entityDefinition); ArgumentUtility.CheckNotNull("tableDefinitionHandler", tableDefinitionHandler); ArgumentUtility.CheckNotNull("filterViewDefinitionHandler", filterViewDefinitionHandler); ArgumentUtility.CheckNotNull("unionViewDefinitionHandler", unionViewDefinitionHandler); ArgumentUtility.CheckNotNull("emptyViewDefinitionHandler", emptyViewDefinitionHandler); var visitor = new RdbmsStorageEntityDefinitionVisitor <T> ( tableDefinitionHandler, filterViewDefinitionHandler, unionViewDefinitionHandler, emptyViewDefinitionHandler); entityDefinition.Accept(visitor); return(visitor.ReturnValue); }