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
- TimeZone.cs
- ListBoxItemWrapperAutomationPeer.cs
- DataTemplateKey.cs
- RelationshipEntry.cs
- OracleParameter.cs
- NotConverter.cs
- HttpPostedFile.cs
- ResourcePermissionBaseEntry.cs
- CacheSection.cs
- SqlClientWrapperSmiStreamChars.cs
- CustomError.cs
- SimpleBitVector32.cs
- DbCommandTree.cs
- SmtpSection.cs
- FocusWithinProperty.cs
- SchemaCollectionPreprocessor.cs
- TextTrailingCharacterEllipsis.cs
- Deserializer.cs
- CompilerGeneratedAttribute.cs
- RelationshipEnd.cs
- WeakKeyDictionary.cs
- DiscreteKeyFrames.cs
- Synchronization.cs
- OdbcUtils.cs
- BuildProviderAppliesToAttribute.cs
- WebSysDefaultValueAttribute.cs
- serverconfig.cs
- CollectionBase.cs
- TemplateField.cs
- SafeSystemMetrics.cs
- QueryContinueDragEvent.cs
- XmlSchemaSubstitutionGroup.cs
- DatatypeImplementation.cs
- TextBoxBaseDesigner.cs
- WebPartDisplayMode.cs
- ParameterSubsegment.cs
- ViewGenerator.cs
- DbParameterCollectionHelper.cs
- StringValueSerializer.cs
- LineBreakRecord.cs
- Or.cs
- Mappings.cs
- ReflectionTypeLoadException.cs
- Selection.cs
- SoapUnknownHeader.cs
- DiscoveryUtility.cs
- HttpListenerContext.cs
- TraceFilter.cs
- ServicePointManager.cs
- PropertyDescriptorGridEntry.cs
- FrameworkRichTextComposition.cs
- AuthorizationSection.cs
- PublisherIdentityPermission.cs
- TimeSpan.cs
- TraceContext.cs
- brushes.cs
- PropertyGeneratedEventArgs.cs
- MultitargetUtil.cs
- MouseWheelEventArgs.cs
- XmlSerializationReader.cs
- ExceptionHandlersDesigner.cs
- InkCanvasSelectionAdorner.cs
- QueryLifecycle.cs
- AssemblyFilter.cs
- ToolStripSplitStackLayout.cs
- LayoutSettings.cs
- TileBrush.cs
- NativeActivityAbortContext.cs
- COM2PictureConverter.cs
- GridViewUpdatedEventArgs.cs
- Window.cs
- SecurityPermission.cs
- DBSchemaTable.cs
- newitemfactory.cs
- MarkerProperties.cs
- Model3D.cs
- Attributes.cs
- UpdatePanel.cs
- GZipDecoder.cs
- Schedule.cs
- EditorBrowsableAttribute.cs
- RouteItem.cs
- CacheEntry.cs
- ConstrainedDataObject.cs
- PasswordValidationException.cs
- TableCell.cs
- CustomErrorCollection.cs
- ModuleElement.cs
- DataGridViewRowEventArgs.cs
- AuthorizationRuleCollection.cs
- ModuleConfigurationInfo.cs
- sqlpipe.cs
- SessionPageStateSection.cs
- ApplicationException.cs
- SchemaNames.cs
- TrackingValidationObjectDictionary.cs
- SQLInt32Storage.cs
- ItemCollection.cs
- ActionFrame.cs
- PartialTrustVisibleAssemblyCollection.cs