Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / ALinq / DataServiceExpressionVisitor.cs / 1 / DataServiceExpressionVisitor.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Expression Visitors for Linq to URI translator // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Client { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Diagnostics; ////// Specific Vistior base class for the DataServiceQueryProvider. /// internal abstract class DataServiceExpressionVisitor : ExpressionVisitor { ////// Main visit method. /// /// Expression to visit ///Visited expression internal override Expression Visit(Expression exp) { if (exp == null) { return null; } switch ((ResourceExpressionType)exp.NodeType) { case ResourceExpressionType.RootResourceSet: case ResourceExpressionType.ResourceNavigationProperty: return this.VisitResourceSetExpression((ResourceSetExpression)exp); case ResourceExpressionType.ResourceNavigationPropertySingleton: return this.VisitNavigationPropertySingletonExpression((NavigationPropertySingletonExpression)exp); case ResourceExpressionType.InputReference: return this.VisitInputReferenceExpression((InputReferenceExpression)exp); default: return base.Visit(exp); } } ////// ResourceSetExpression visit method. /// /// ResourceSetExpression expression to visit ///Visited ResourceSetExpression expression internal virtual Expression VisitResourceSetExpression(ResourceSetExpression rse) { Expression source = this.Visit(rse.Source); if (source != rse.Source) { rse = new ResourceSetExpression(rse.Type, source, rse.MemberExpression, rse.ResourceType, rse.ExpandPaths, rse.CustomQueryOptions); } return rse; } ////// NavigationPropertySingletonExpressionvisit method. /// /// NavigationPropertySingletonExpression expression to visit ///Visited NavigationPropertySingletonExpression expression internal virtual Expression VisitNavigationPropertySingletonExpression(NavigationPropertySingletonExpression npse) { Expression source = this.Visit(npse.Source); if (source != npse.Source) { npse = new NavigationPropertySingletonExpression(npse.Type, source, npse.MemberExpression, npse.ExpandPaths, npse.CustomQueryOptions); } return npse; } ////// Visit an /// InputReferenceExpression expression to visit ///, producing a new InputReferenceExpression /// based on the visited form of the that is referenced by /// the InputReferenceExpression argument, . /// Visited InputReferenceExpression expression internal virtual Expression VisitInputReferenceExpression(InputReferenceExpression ire) { if (ire == null) { return null; } ResourceExpression re = (ResourceExpression)this.Visit(ire.Target); return re.CreateReference(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Expression Visitors for Linq to URI translator // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Client { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Diagnostics; ////// Specific Vistior base class for the DataServiceQueryProvider. /// internal abstract class DataServiceExpressionVisitor : ExpressionVisitor { ////// Main visit method. /// /// Expression to visit ///Visited expression internal override Expression Visit(Expression exp) { if (exp == null) { return null; } switch ((ResourceExpressionType)exp.NodeType) { case ResourceExpressionType.RootResourceSet: case ResourceExpressionType.ResourceNavigationProperty: return this.VisitResourceSetExpression((ResourceSetExpression)exp); case ResourceExpressionType.ResourceNavigationPropertySingleton: return this.VisitNavigationPropertySingletonExpression((NavigationPropertySingletonExpression)exp); case ResourceExpressionType.InputReference: return this.VisitInputReferenceExpression((InputReferenceExpression)exp); default: return base.Visit(exp); } } ////// ResourceSetExpression visit method. /// /// ResourceSetExpression expression to visit ///Visited ResourceSetExpression expression internal virtual Expression VisitResourceSetExpression(ResourceSetExpression rse) { Expression source = this.Visit(rse.Source); if (source != rse.Source) { rse = new ResourceSetExpression(rse.Type, source, rse.MemberExpression, rse.ResourceType, rse.ExpandPaths, rse.CustomQueryOptions); } return rse; } ////// NavigationPropertySingletonExpressionvisit method. /// /// NavigationPropertySingletonExpression expression to visit ///Visited NavigationPropertySingletonExpression expression internal virtual Expression VisitNavigationPropertySingletonExpression(NavigationPropertySingletonExpression npse) { Expression source = this.Visit(npse.Source); if (source != npse.Source) { npse = new NavigationPropertySingletonExpression(npse.Type, source, npse.MemberExpression, npse.ExpandPaths, npse.CustomQueryOptions); } return npse; } ////// Visit an /// InputReferenceExpression expression to visit ///, producing a new InputReferenceExpression /// based on the visited form of the that is referenced by /// the InputReferenceExpression argument, . /// Visited InputReferenceExpression expression internal virtual Expression VisitInputReferenceExpression(InputReferenceExpression ire) { if (ire == null) { return null; } ResourceExpression re = (ResourceExpression)this.Visit(ire.Target); return re.CreateReference(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NotFiniteNumberException.cs
- Stack.cs
- HttpResponseWrapper.cs
- HandlerFactoryWrapper.cs
- DoubleCollection.cs
- WrapperEqualityComparer.cs
- TraceLevelStore.cs
- CompilationUtil.cs
- XPathParser.cs
- SecurityHelper.cs
- AttributeAction.cs
- PropertyPushdownHelper.cs
- StylesEditorDialog.cs
- ISCIIEncoding.cs
- SchemaMerger.cs
- VisualStyleElement.cs
- FilteredSchemaElementLookUpTable.cs
- LinkLabelLinkClickedEvent.cs
- NegotiateStream.cs
- ExtentJoinTreeNode.cs
- OpCodes.cs
- TypeNameConverter.cs
- DispatchWrapper.cs
- SoapTypeAttribute.cs
- HtmlTitle.cs
- TypeConverterAttribute.cs
- TextChange.cs
- ObjectNavigationPropertyMapping.cs
- FreezableOperations.cs
- TableCell.cs
- CheckBoxRenderer.cs
- Image.cs
- ProgressBar.cs
- Label.cs
- EdmSchemaAttribute.cs
- Image.cs
- HttpMethodConstraint.cs
- IUnknownConstantAttribute.cs
- XmlMembersMapping.cs
- OutputCacheSettingsSection.cs
- PersianCalendar.cs
- DaylightTime.cs
- HtmlDocument.cs
- ToolZoneDesigner.cs
- GridViewDeleteEventArgs.cs
- ClientScriptManager.cs
- InstallerTypeAttribute.cs
- ConfigurationValues.cs
- DataGridViewCellLinkedList.cs
- Transform3DGroup.cs
- ToolBarButtonClickEvent.cs
- EntityTypeEmitter.cs
- PopupControlService.cs
- OneOfScalarConst.cs
- TextEditorTyping.cs
- ExtendedProtectionPolicy.cs
- WindowCollection.cs
- FreezableCollection.cs
- FormView.cs
- PocoEntityKeyStrategy.cs
- ListViewContainer.cs
- EventLogException.cs
- HitTestDrawingContextWalker.cs
- ApplicationFileCodeDomTreeGenerator.cs
- AdPostCacheSubstitution.cs
- Tokenizer.cs
- CryptoKeySecurity.cs
- InternalConfigConfigurationFactory.cs
- CompilationRelaxations.cs
- QueryCacheManager.cs
- ThreadAttributes.cs
- XmlCharCheckingWriter.cs
- CollectionViewGroupInternal.cs
- EntityDataSourceContainerNameConverter.cs
- UnhandledExceptionEventArgs.cs
- WebPartAddingEventArgs.cs
- RecordConverter.cs
- Brush.cs
- Vector3DValueSerializer.cs
- SmiContext.cs
- ActiveXSite.cs
- _SslStream.cs
- SimplePropertyEntry.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ChineseLunisolarCalendar.cs
- MenuEventArgs.cs
- DataTransferEventArgs.cs
- AutomationElementIdentifiers.cs
- NumericPagerField.cs
- XmlAttributeProperties.cs
- OLEDB_Enum.cs
- XpsS0ValidatingLoader.cs
- UnicodeEncoding.cs
- XmlSchemaValidator.cs
- COM2ColorConverter.cs
- VirtualizingStackPanel.cs
- HttpDebugHandler.cs
- CharUnicodeInfo.cs
- Debug.cs
- TaiwanLunisolarCalendar.cs