Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- EntityDataSourceContainerNameConverter.cs
- CompoundFileIOPermission.cs
- XmlSchemaSet.cs
- HtmlEmptyTagControlBuilder.cs
- DateTimeValueSerializerContext.cs
- DataGridViewComboBoxColumn.cs
- _LocalDataStoreMgr.cs
- CodeRemoveEventStatement.cs
- ExecutionTracker.cs
- AuthenticationService.cs
- TimeSpan.cs
- SharedPerformanceCounter.cs
- EntityParameter.cs
- PrintingPermission.cs
- ProtectedProviderSettings.cs
- CodeTypeMember.cs
- MemberRestriction.cs
- ScrollViewerAutomationPeer.cs
- Registry.cs
- ObjectStateEntry.cs
- ExplicitDiscriminatorMap.cs
- PolicyValidationException.cs
- SchemaNamespaceManager.cs
- sqlser.cs
- ToolStripButton.cs
- SchemaDeclBase.cs
- VisualBasicSettingsHandler.cs
- PropertyChangedEventManager.cs
- ApplySecurityAndSendAsyncResult.cs
- TextCollapsingProperties.cs
- WebPartDisplayModeEventArgs.cs
- Activation.cs
- EventLogger.cs
- DefaultEventAttribute.cs
- ConnectionManagementSection.cs
- ProxyWebPart.cs
- MappingMetadataHelper.cs
- FixedFlowMap.cs
- GenerateTemporaryAssemblyTask.cs
- BindingExpressionBase.cs
- XmlDictionaryWriter.cs
- CompareValidator.cs
- WebConfigurationHostFileChange.cs
- UrlRoutingHandler.cs
- EntityDataSourceDesigner.cs
- XmlSchemaDocumentation.cs
- GlobalAllocSafeHandle.cs
- TreeWalker.cs
- SqlRowUpdatedEvent.cs
- DependencyPropertyValueSerializer.cs
- StrokeCollection.cs
- ResolvePPIDRequest.cs
- PathHelper.cs
- PropertyFilter.cs
- DataException.cs
- PhysicalOps.cs
- RemotingConfiguration.cs
- RequestCachePolicyConverter.cs
- XmlResolver.cs
- QuadraticBezierSegment.cs
- ZoneButton.cs
- KeyToListMap.cs
- SpellerStatusTable.cs
- TabItemWrapperAutomationPeer.cs
- OdbcError.cs
- Point4DValueSerializer.cs
- SapiRecoContext.cs
- StringArrayConverter.cs
- Array.cs
- SinglePageViewer.cs
- XmlSchemaDatatype.cs
- PropertyGridCommands.cs
- EntityTypeBase.cs
- BamlBinaryReader.cs
- ReadWriteObjectLock.cs
- HelpProvider.cs
- FontFamilyValueSerializer.cs
- LinkClickEvent.cs
- ValidationErrorEventArgs.cs
- ConvertEvent.cs
- OleDbFactory.cs
- XhtmlBasicLinkAdapter.cs
- MulticastNotSupportedException.cs
- JournalEntryListConverter.cs
- CalendarDateChangedEventArgs.cs
- HtmlLink.cs
- CounterCreationDataConverter.cs
- SignatureResourcePool.cs
- COMException.cs
- RoleManagerModule.cs
- Overlapped.cs
- LayoutEngine.cs
- Image.cs
- TemplateBindingExtensionConverter.cs
- CodeIdentifier.cs
- XmlCountingReader.cs
- InheritanceContextChangedEventManager.cs
- SharedPersonalizationStateInfo.cs
- Encoder.cs
- RtfFormatStack.cs