Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / Utils / Boolean / Literal.cs / 1305376 / Literal.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.Collections.ObjectModel;
using System.Diagnostics;
namespace System.Data.Common.Utils.Boolean
{
///
/// Represents a literal in a normal form expression of the form:
///
/// Term
///
/// or
///
/// !Term
///
///
internal sealed class Literal : NormalFormNode,
IEquatable>
{
private readonly TermExpr _term;
private readonly bool _isTermPositive;
///
/// Initialize a new literal.
///
/// Term
/// Sign of term
internal Literal(TermExpr term, bool isTermPositive)
: base(isTermPositive ? (BoolExpr)term : (BoolExpr)new NotExpr(term))
{
Debug.Assert(null != term);
_term = term;
_isTermPositive = isTermPositive;
}
///
/// Gets literal term.
///
internal TermExpr Term
{
get { return _term; }
}
///
/// Gets sign of term.
///
internal bool IsTermPositive
{
get { return _isTermPositive; }
}
///
/// Creates a negated version of this literal.
///
/// !this
internal Literal MakeNegated()
{
return IdentifierService.Instance.NegateLiteral(this);
}
public override string ToString()
{
return StringUtil.FormatInvariant("{0}{1}",
_isTermPositive ? String.Empty : "!",
_term);
}
public override bool Equals(object obj)
{
Debug.Fail("use typed Equals");
return Equals(obj as Literal);
}
public bool Equals(Literal other)
{
return null != other &&
other._isTermPositive == _isTermPositive &&
other._term.Equals(_term);
}
public override int GetHashCode()
{
return _term.GetHashCode();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.Collections.ObjectModel;
using System.Diagnostics;
namespace System.Data.Common.Utils.Boolean
{
///
/// Represents a literal in a normal form expression of the form:
///
/// Term
///
/// or
///
/// !Term
///
///
internal sealed class Literal : NormalFormNode,
IEquatable>
{
private readonly TermExpr _term;
private readonly bool _isTermPositive;
///
/// Initialize a new literal.
///
/// Term
/// Sign of term
internal Literal(TermExpr term, bool isTermPositive)
: base(isTermPositive ? (BoolExpr)term : (BoolExpr)new NotExpr(term))
{
Debug.Assert(null != term);
_term = term;
_isTermPositive = isTermPositive;
}
///
/// Gets literal term.
///
internal TermExpr Term
{
get { return _term; }
}
///
/// Gets sign of term.
///
internal bool IsTermPositive
{
get { return _isTermPositive; }
}
///
/// Creates a negated version of this literal.
///
/// !this
internal Literal MakeNegated()
{
return IdentifierService.Instance.NegateLiteral(this);
}
public override string ToString()
{
return StringUtil.FormatInvariant("{0}{1}",
_isTermPositive ? String.Empty : "!",
_term);
}
public override bool Equals(object obj)
{
Debug.Fail("use typed Equals");
return Equals(obj as Literal);
}
public bool Equals(Literal other)
{
return null != other &&
other._isTermPositive == _isTermPositive &&
other._term.Equals(_term);
}
public override int GetHashCode()
{
return _term.GetHashCode();
}
}
}
// 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
- TreeNodeSelectionProcessor.cs
- AsyncCodeActivityContext.cs
- X509Extension.cs
- OdbcTransaction.cs
- StandardBindingElementCollection.cs
- cryptoapiTransform.cs
- MinMaxParagraphWidth.cs
- MailMessageEventArgs.cs
- Label.cs
- SqlDataSourceCustomCommandPanel.cs
- CaseInsensitiveComparer.cs
- _SslStream.cs
- Accessible.cs
- StubHelpers.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ListControl.cs
- CellRelation.cs
- DesignerForm.cs
- SortedDictionary.cs
- DataGridColumnStyleMappingNameEditor.cs
- StyleConverter.cs
- BamlStream.cs
- FolderBrowserDialog.cs
- DoubleStorage.cs
- SymbolType.cs
- ReflectionUtil.cs
- ProcessProtocolHandler.cs
- SoapWriter.cs
- HashMembershipCondition.cs
- HwndStylusInputProvider.cs
- DetailsViewModeEventArgs.cs
- MouseButton.cs
- WaitHandleCannotBeOpenedException.cs
- RectConverter.cs
- SqlDataSource.cs
- HtmlElement.cs
- HeaderedContentControl.cs
- StreamSecurityUpgradeInitiatorBase.cs
- PublisherMembershipCondition.cs
- CurrentChangedEventManager.cs
- Util.cs
- TimelineClockCollection.cs
- LogWriteRestartAreaState.cs
- XPathSelfQuery.cs
- EndpointReference.cs
- TypeSource.cs
- clipboard.cs
- OverlappedAsyncResult.cs
- MatchSingleFxEngineOpcode.cs
- PropertyEmitter.cs
- HttpHandler.cs
- StringValidator.cs
- ByteAnimationBase.cs
- RelationalExpressions.cs
- FusionWrap.cs
- SymbolEqualComparer.cs
- BindingValueChangedEventArgs.cs
- TitleStyle.cs
- SecurityDocument.cs
- ProviderIncompatibleException.cs
- returneventsaver.cs
- TypeDescriptorFilterService.cs
- PropertyMap.cs
- HtmlInputSubmit.cs
- WebRequestModulesSection.cs
- ConstraintConverter.cs
- Canvas.cs
- IteratorFilter.cs
- SqlNode.cs
- Rotation3DAnimationBase.cs
- HyperlinkAutomationPeer.cs
- TextEditorDragDrop.cs
- StrongName.cs
- RectangleGeometry.cs
- Command.cs
- CookieProtection.cs
- TimeManager.cs
- ProcessModule.cs
- Adorner.cs
- RecordManager.cs
- TextAction.cs
- UpWmlPageAdapter.cs
- BindingGroup.cs
- _Win32.cs
- RegexBoyerMoore.cs
- XhtmlBasicControlAdapter.cs
- Publisher.cs
- XPathNode.cs
- DbFunctionCommandTree.cs
- TableSectionStyle.cs
- WebPartAuthorizationEventArgs.cs
- EventLogHandle.cs
- ButtonFieldBase.cs
- QilXmlWriter.cs
- ExtensionQuery.cs
- InstanceValue.cs
- JournalNavigationScope.cs
- DataSourceExpression.cs
- PassportPrincipal.cs
- DataBoundControlAdapter.cs