private void _given(AlignmentEntityType entityType)
 {
     m_RequestedEntityType = entityType;
 }
        /// <summary>
        /// Factory method that creates the correct wrapper for a specified
        /// entity type.
        /// </summary>
        /// <remarks>
        /// This method was provided to be able to test the correct wrapper
        /// class is created for all supported entity types. Users should
        /// not call this method directly because it returns an empty
        /// wrapper. Instead, users should call WrapEntity(), which
        /// initializes the wrapper after is created.
        /// </remarks>
        /// <param name="type"></param>
        /// <returns></returns>
        internal static AAlignmentEntity CreateWrapper(AlignmentEntityType type)
        {
            switch (type)
            {
            case AlignmentEntityType.Line:
                return(new AlignmentEntityLine());

            case AlignmentEntityType.Arc:
                return(new AlignmentEntityCurve());

            case AlignmentEntityType.Spiral:
                return(new AlignmentEntitySpiral());

            case AlignmentEntityType.SpiralCurveSpiral:
                return(new AlignmentEntitySCS());

            case AlignmentEntityType.SpiralLineSpiral:
                return(new AlignmentEntitySLS());

            case AlignmentEntityType.SpiralLine:
                return(new AlignmentEntitySL());

            case AlignmentEntityType.LineSpiral:
                return(new AlignmentEntityLS());

            case AlignmentEntityType.SpiralCurve:
                return(new AlignmentEntitySC());

            case AlignmentEntityType.CurveSpiral:
                return(new AlignmentEntityCS());

            case AlignmentEntityType.SpiralSpiralCurveSpiralSpiral:
                return(new AlignmentEntitySSCSS());

            case AlignmentEntityType.SpiralCurveSpiralCurveSpiral:
                return(new AlignmentEntitySCSCS());

            case AlignmentEntityType.SpiralCurveSpiralSpiralCurveSpiral:
                return(new AlignmentEntitySCSSCS());

            case AlignmentEntityType.SpiralSpiral:
                return(new AlignmentEntitySS());

            case AlignmentEntityType.SpiralSpiralCurve:
                return(new AlignmentEntitySSC());

            case AlignmentEntityType.CurveSpiralSpiral:
                return(new AlignmentEntityCSS());

            // Not used for now.
            // case AlignmentEntityType.MultipleSegments:
            //

            case AlignmentEntityType.CurveLineCurve:
                return(new AlignmentEntityCLC());

            case AlignmentEntityType.CurveReverseCurve:
                return(new AlignmentEntityCRC());

            case AlignmentEntityType.CurveCurveReverseCurve:
                return(new AlignmentEntityCCRC());

            default:
                throw new NotImplementedException(
                          "Specified entity wrapper not implemented.");
            }
        }