Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Documents / ValidationHelper.cs / 1 / ValidationHelper.cs
//---------------------------------------------------------------------------- // // File: ValidationHelper.cs // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: Helpers for TOM parameter validation. // //--------------------------------------------------------------------------- namespace System.Windows.Documents { using MS.Internal; // Invariant.Assert using System.ComponentModel; using System.Windows; using System.Windows.Media; internal static class ValidationHelper { //----------------------------------------------------- // // Internal Methods // //----------------------------------------------------- #region Internal Methods // Verifies a TextPointer is non-null and // is associated with a given TextContainer. // // Throws an appropriate exception if a test fails. internal static void VerifyPosition(ITextContainer tree, ITextPointer position) { VerifyPosition(tree, position, "position"); } // Verifies a TextPointer is non-null and is associated with a given TextContainer. // // Throws an appropriate exception if a test fails. internal static void VerifyPosition(ITextContainer container, ITextPointer position, string paramName) { if (position == null) { throw new ArgumentNullException(paramName); } if (position.TextContainer != container) { throw new ArgumentException(SR.Get(SRID.NotInAssociatedTree, paramName)); } } // Verifies two positions are safe to use as a logical text span. // // Throws ArgumentNullException if startPosition == null || endPosition == null // ArgumentException if startPosition.TextContainer != endPosition.TextContainer or // startPosition > endPosition internal static void VerifyPositionPair(ITextPointer startPosition, ITextPointer endPosition) { if (startPosition == null) { throw new ArgumentNullException("startPosition"); } if (endPosition == null) { throw new ArgumentNullException("endPosition"); } if (startPosition.TextContainer != endPosition.TextContainer) { throw new ArgumentException(SR.Get(SRID.InDifferentTextContainers, "startPosition", "endPosition")); } if (startPosition.CompareTo(endPosition) > 0) { throw new ArgumentException(SR.Get(SRID.BadTextPositionOrder, "startPosition", "endPosition")); } } // Throws an ArgumentException if direction is not a valid enum. internal static void VerifyDirection(LogicalDirection direction, string argumentName) { if (direction != LogicalDirection.Forward && direction != LogicalDirection.Backward) { throw new InvalidEnumArgumentException(argumentName, (int)direction, typeof(LogicalDirection)); } } // Throws an ArgumentException if edge is not a valid enum. internal static void VerifyElementEdge(ElementEdge edge, string param) { if (edge != ElementEdge.BeforeStart && edge != ElementEdge.AfterStart && edge != ElementEdge.BeforeEnd && edge != ElementEdge.AfterEnd) { throw new InvalidEnumArgumentException(param, (int)edge, typeof(ElementEdge)); } } // ............................................................... // // TextSchema Validation // // ............................................................... // Checks whether it is valid to insert the child object at passed position. internal static void ValidateChild(TextPointer position, object child, string paramName) { Invariant.Assert(position != null); Invariant.Assert(position.Parent != null); if (child == null) { throw new ArgumentNullException(paramName); } if (!TextSchema.IsValidChild(/*position:*/position, /*childType:*/child.GetType())) { throw new ArgumentException(SR.Get(SRID.TextSchema_ChildTypeIsInvalid, position.Parent.GetType().Name, child.GetType().Name)); } // The new child should not be currently in other text tree if (child is TextElement) { if (((TextElement)child).Parent != null) { throw new ArgumentException(SR.Get(SRID.TextSchema_TheChildElementBelongsToAnotherTreeAlready, child.GetType().Name)); } } else { Invariant.Assert(child is UIElement); // Cannot call UIElement.Parent across assembly boundary. So skip this part of validation. This condition will be checked elsewhere anyway. //if (((UIElement)child).Parent != null) //{ // throw new ArgumentException(SR.Get(SRID.TextSchema_TheChildElementBelongsToAnotherTreeAlready, child.GetType().Name)); //} } } #endregion Internal methods } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolTip.cs
- SmiConnection.cs
- Bitmap.cs
- SessionStateModule.cs
- Timer.cs
- WorkItem.cs
- RoutedPropertyChangedEventArgs.cs
- AsyncOperationManager.cs
- CodeSubDirectory.cs
- MediaEntryAttribute.cs
- SubMenuStyleCollection.cs
- Sequence.cs
- VariableReference.cs
- ExpressionPrinter.cs
- AppModelKnownContentFactory.cs
- ButtonBase.cs
- XhtmlBasicSelectionListAdapter.cs
- UnsafeNativeMethodsCLR.cs
- TextServicesCompartmentEventSink.cs
- Symbol.cs
- ChannelPool.cs
- Dump.cs
- XXXInfos.cs
- SafeThemeHandle.cs
- Context.cs
- TextContainerChangeEventArgs.cs
- NumberFormatInfo.cs
- BinaryObjectWriter.cs
- EdmToObjectNamespaceMap.cs
- listitem.cs
- exports.cs
- GenerateHelper.cs
- VirtualDirectoryMapping.cs
- ArraySegment.cs
- Matrix3DStack.cs
- CfgParser.cs
- OracleParameterBinding.cs
- ColumnMapVisitor.cs
- DrawingGroup.cs
- SqlDataAdapter.cs
- Int32AnimationUsingKeyFrames.cs
- ArrangedElement.cs
- SafeBitVector32.cs
- DefaultValueAttribute.cs
- WorkflowQueue.cs
- User.cs
- PathParser.cs
- XDeferredAxisSource.cs
- MostlySingletonList.cs
- TemplateBindingExpressionConverter.cs
- SmtpNetworkElement.cs
- NetPeerTcpBindingCollectionElement.cs
- CheckBoxPopupAdapter.cs
- sapiproxy.cs
- PersonalizationProviderHelper.cs
- WasEndpointConfigContainer.cs
- CodeIterationStatement.cs
- SynchronizedDispatch.cs
- VarInfo.cs
- ResourceSet.cs
- RIPEMD160.cs
- ConditionCollection.cs
- WebControlParameterProxy.cs
- BuilderPropertyEntry.cs
- DbDataSourceEnumerator.cs
- PathSegmentCollection.cs
- SecurityDescriptor.cs
- RightNameExpirationInfoPair.cs
- DataListItemCollection.cs
- MaterialGroup.cs
- ipaddressinformationcollection.cs
- ValidationResult.cs
- Accessible.cs
- WorkflowCreationContext.cs
- UnionCodeGroup.cs
- HttpWebRequestElement.cs
- ReferencedAssembly.cs
- TextBoxView.cs
- XmlDictionaryString.cs
- ActiveDocumentEvent.cs
- ListBoxItemWrapperAutomationPeer.cs
- WebPartDisplayModeCancelEventArgs.cs
- Stylesheet.cs
- HttpStreamFormatter.cs
- TabItemWrapperAutomationPeer.cs
- Light.cs
- KnownTypesHelper.cs
- IssuanceLicense.cs
- serverconfig.cs
- ObjectTypeMapping.cs
- Models.cs
- EffectiveValueEntry.cs
- RoutingEndpointTrait.cs
- FieldDescriptor.cs
- BamlLocalizer.cs
- RetrieveVirtualItemEventArgs.cs
- MinimizableAttributeTypeConverter.cs
- SmtpFailedRecipientException.cs
- TextTreeUndo.cs
- DecoratedNameAttribute.cs