Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / Structures / IfJoinedCondition.cs / 2 / IfJoinedCondition.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Text; using System.Collections.Generic; using System.Diagnostics; namespace System.Data.Mapping.ViewGeneration.Structures { // A class that denotes the boolean expression: "IfJoined(var)", i.e. in // a jointree, if a tuple is received from the right side of an LOJ, this // variable is true on the right child of the LOJ node -- useful for compositions internal class IfJoinedCondition : TrueFalseLiteral { // effects: Given a join tree slot "node", returns a boolean // expression of the form "IfJoined(node) in {true}" internal IfJoinedCondition(JoinTreeNode node) { m_var = new JoinTreeSlot(node); } #region Fields private JoinTreeSlot m_var; #endregion #region Properties // effects: Returns the variable in this internal JoinTreeSlot Var { get { return m_var; } } #endregion #region String methods internal override void ToCompactString(StringBuilder builder) { builder.Append("IfJoined("); Var.ToCompactString(builder); builder.Append(")"); } #endregion #region BoolLiteral Members // effects: See BoolExpression.RemapBool internal override BoolLiteral RemapBool(Dictionaryremap) { JoinTreeSlot newVar = (JoinTreeSlot)m_var.RemapSlot(remap); return new IfJoinedCondition(newVar.JoinTreeNode); } internal override StringBuilder AsCql(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { // CHANGE_[....]_FEATURE_COMPOSITION Debug.Fail("Support for compositions missing"); return builder; } internal override StringBuilder AsUserString(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { return AsCql(builder, blockAlias, canSkipIsNotNull); } internal override StringBuilder AsNegatedUserString(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { builder.Append("NOT("); builder = AsUserString(builder, blockAlias, canSkipIsNotNull); builder.Append(")"); return builder; } // effects: See BoolExpression.GetRequiredSlots internal override void GetRequiredSlots(MemberPathMapBase projectedSlotMap, bool[] requiredSlots) { // Simply get the slot for the variable var in "var in values" MemberPath member = Var.MemberPath; int slotNum = projectedSlotMap.IndexOf(member); requiredSlots[slotNum] = true; } #endregion protected override bool IsEqualTo(BoolLiteral right) { IfJoinedCondition rightCond = right as IfJoinedCondition; if (rightCond == null) { return false; } if (object.ReferenceEquals(this, rightCond)) { return true; } return JoinTreeSlot.EqualityComparer.Equals(m_var, rightCond.m_var); } protected override int GetHash() { int result = JoinTreeSlot.EqualityComparer.GetHashCode(m_var); return result; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Text; using System.Collections.Generic; using System.Diagnostics; namespace System.Data.Mapping.ViewGeneration.Structures { // A class that denotes the boolean expression: "IfJoined(var)", i.e. in // a jointree, if a tuple is received from the right side of an LOJ, this // variable is true on the right child of the LOJ node -- useful for compositions internal class IfJoinedCondition : TrueFalseLiteral { // effects: Given a join tree slot "node", returns a boolean // expression of the form "IfJoined(node) in {true}" internal IfJoinedCondition(JoinTreeNode node) { m_var = new JoinTreeSlot(node); } #region Fields private JoinTreeSlot m_var; #endregion #region Properties // effects: Returns the variable in this internal JoinTreeSlot Var { get { return m_var; } } #endregion #region String methods internal override void ToCompactString(StringBuilder builder) { builder.Append("IfJoined("); Var.ToCompactString(builder); builder.Append(")"); } #endregion #region BoolLiteral Members // effects: See BoolExpression.RemapBool internal override BoolLiteral RemapBool(Dictionaryremap) { JoinTreeSlot newVar = (JoinTreeSlot)m_var.RemapSlot(remap); return new IfJoinedCondition(newVar.JoinTreeNode); } internal override StringBuilder AsCql(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { // CHANGE_[....]_FEATURE_COMPOSITION Debug.Fail("Support for compositions missing"); return builder; } internal override StringBuilder AsUserString(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { return AsCql(builder, blockAlias, canSkipIsNotNull); } internal override StringBuilder AsNegatedUserString(StringBuilder builder, string blockAlias, bool canSkipIsNotNull) { builder.Append("NOT("); builder = AsUserString(builder, blockAlias, canSkipIsNotNull); builder.Append(")"); return builder; } // effects: See BoolExpression.GetRequiredSlots internal override void GetRequiredSlots(MemberPathMapBase projectedSlotMap, bool[] requiredSlots) { // Simply get the slot for the variable var in "var in values" MemberPath member = Var.MemberPath; int slotNum = projectedSlotMap.IndexOf(member); requiredSlots[slotNum] = true; } #endregion protected override bool IsEqualTo(BoolLiteral right) { IfJoinedCondition rightCond = right as IfJoinedCondition; if (rightCond == null) { return false; } if (object.ReferenceEquals(this, rightCond)) { return true; } return JoinTreeSlot.EqualityComparer.Equals(m_var, rightCond.m_var); } protected override int GetHash() { int result = JoinTreeSlot.EqualityComparer.GetHashCode(m_var); return result; } } } // 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
- WebControlAdapter.cs
- QueueProcessor.cs
- SqlTrackingService.cs
- WindowsMenu.cs
- StringAnimationUsingKeyFrames.cs
- APCustomTypeDescriptor.cs
- SqlTypesSchemaImporter.cs
- XmlAttributeAttribute.cs
- SID.cs
- XmlSignificantWhitespace.cs
- FieldNameLookup.cs
- InvalidPropValue.cs
- Debug.cs
- CodeGen.cs
- StaticFileHandler.cs
- UnmanagedMemoryStream.cs
- CollectionBase.cs
- ContourSegment.cs
- HandledEventArgs.cs
- SizeFConverter.cs
- DisplayInformation.cs
- GridViewColumnCollection.cs
- OrderedDictionaryStateHelper.cs
- CompositeKey.cs
- ObservableCollection.cs
- BamlVersionHeader.cs
- EditorZoneAutoFormat.cs
- NullableDoubleMinMaxAggregationOperator.cs
- BindToObject.cs
- FormViewPagerRow.cs
- DeadCharTextComposition.cs
- SoapCodeExporter.cs
- ChangePassword.cs
- SAPICategories.cs
- TcpProcessProtocolHandler.cs
- ADMembershipUser.cs
- UpdateException.cs
- EqualityComparer.cs
- ResourceContainerWrapper.cs
- TemplateBindingExtensionConverter.cs
- XhtmlTextWriter.cs
- Column.cs
- HttpResponseHeader.cs
- RootBuilder.cs
- MultipartIdentifier.cs
- ControlAdapter.cs
- HttpListenerResponse.cs
- DynamicDataManager.cs
- WebPartConnectionsDisconnectVerb.cs
- MultipleViewPattern.cs
- SecurityKeyType.cs
- FixUpCollection.cs
- TableLayoutSettingsTypeConverter.cs
- GorillaCodec.cs
- HttpRawResponse.cs
- CustomTypeDescriptor.cs
- TimersDescriptionAttribute.cs
- OraclePermissionAttribute.cs
- BindingExpression.cs
- SocketStream.cs
- GeneralTransform.cs
- CellTreeNodeVisitors.cs
- followingquery.cs
- ConnectivityStatus.cs
- DecimalConverter.cs
- TemplatePropertyEntry.cs
- LineBreak.cs
- HtmlToClrEventProxy.cs
- StrongName.cs
- CompatibleComparer.cs
- XmlCharCheckingReader.cs
- AnnotationDocumentPaginator.cs
- CustomCategoryAttribute.cs
- ThreadSafeMessageFilterTable.cs
- GlyphsSerializer.cs
- ControlIdConverter.cs
- PathBox.cs
- SimpleRecyclingCache.cs
- XsltConvert.cs
- AdditionalEntityFunctions.cs
- XmlElementAttributes.cs
- Dump.cs
- HttpApplication.cs
- DataTrigger.cs
- ColorConverter.cs
- CodeSnippetStatement.cs
- PersonalizationStateInfo.cs
- CommonGetThemePartSize.cs
- PropertyEmitterBase.cs
- filewebrequest.cs
- CodePageEncoding.cs
- Inline.cs
- QuaternionAnimationUsingKeyFrames.cs
- SchemaCollectionPreprocessor.cs
- TimelineClockCollection.cs
- CurrentChangedEventManager.cs
- RegexRunnerFactory.cs
- ImageListStreamer.cs
- HwndHostAutomationPeer.cs
- FormViewUpdateEventArgs.cs