/// <summary>
        /// Helper method for Clone.
        /// </summary>
        protected static void DoClone(LabelAxis b, LabelAxis a)
        {
            Axis.DoClone(b, a);

            a.labels_  = (ArrayList)b.labels_.Clone();
            a.numbers_ = (ArrayList)b.numbers_.Clone();

            // a_.property = this.property
        }
        /// <summary>
        /// Deep copy of LinearAxis.
        /// </summary>
        /// <returns>A copy of the LinearAxis Class</returns>
        public override object Clone()
        {
            LabelAxis a = new LabelAxis();

            // ensure that this isn't being called on a derived type. If it is, then oh no!
            if (GetType() != a.GetType())
            {
                throw new System.Exception("Clone not defined in derived type. Help!");
            }
            DoClone(this, a);
            return(a);
        }