Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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(Dictionary remap) {
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(Dictionary remap) {
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
- GeneralTransform3DTo2D.cs
- ReadingWritingEntityEventArgs.cs
- PointAnimationUsingKeyFrames.cs
- PageHandlerFactory.cs
- MemberHolder.cs
- DbConnectionHelper.cs
- ArcSegment.cs
- CqlLexer.cs
- Formatter.cs
- ByeMessageApril2005.cs
- ACE.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- activationcontext.cs
- RemotingSurrogateSelector.cs
- SurrogateChar.cs
- UrlMappingCollection.cs
- GcHandle.cs
- RemoteWebConfigurationHost.cs
- StringArrayConverter.cs
- ByteAnimationBase.cs
- Int32Rect.cs
- TrackingCondition.cs
- FontFamily.cs
- ToolStripSplitStackLayout.cs
- TextTrailingWordEllipsis.cs
- PackageRelationshipSelector.cs
- WebPartManager.cs
- XslCompiledTransform.cs
- Application.cs
- ResXBuildProvider.cs
- MessageDirection.cs
- FlagsAttribute.cs
- wmiprovider.cs
- CustomAttributeBuilder.cs
- FontStyleConverter.cs
- HtmlContainerControl.cs
- DummyDataSource.cs
- LinqDataSourceContextData.cs
- CellCreator.cs
- ConfigurationSectionGroupCollection.cs
- DataServiceQuery.cs
- Tuple.cs
- ConfigXmlElement.cs
- Point3D.cs
- NotificationContext.cs
- TryExpression.cs
- UniqueEventHelper.cs
- CompareValidator.cs
- Padding.cs
- NavigationProperty.cs
- GeneralTransformCollection.cs
- SocketElement.cs
- DataGridViewColumnCollection.cs
- SqlProvider.cs
- SecurityTokenProviderContainer.cs
- BufferedGraphics.cs
- SHA512Managed.cs
- MimeTypeMapper.cs
- SkinBuilder.cs
- _RequestLifetimeSetter.cs
- SiteIdentityPermission.cs
- ApplicationInterop.cs
- XmlSchemaExternal.cs
- SmiEventSink_DeferedProcessing.cs
- RtfControlWordInfo.cs
- StreamingContext.cs
- SettingsPropertyValueCollection.cs
- XmlFormatExtensionPrefixAttribute.cs
- RequestCacheManager.cs
- CheckBoxFlatAdapter.cs
- WindowsRebar.cs
- Stack.cs
- DependencyObject.cs
- xml.cs
- MessageVersionConverter.cs
- TreeView.cs
- XmlLinkedNode.cs
- XmlStrings.cs
- OutputCacheProviderCollection.cs
- FontSource.cs
- ExecutedRoutedEventArgs.cs
- BindingsCollection.cs
- TryExpression.cs
- XmlNodeChangedEventArgs.cs
- ScalarOps.cs
- SafeArrayRankMismatchException.cs
- ProviderUtil.cs
- SecurityKeyType.cs
- GradientStop.cs
- UInt32Storage.cs
- EmptyReadOnlyDictionaryInternal.cs
- PasswordDeriveBytes.cs
- NullReferenceException.cs
- XmlSchemaSimpleTypeRestriction.cs
- InheritanceContextHelper.cs
- DateTimeFormatInfo.cs
- AccessibleObject.cs
- CacheVirtualItemsEvent.cs
- RegexNode.cs
- XmlExtensionFunction.cs