public override Property ConvertProperty(Property p, PropertyList pList, FObj fo)
        {
            if (p is LengthRangeProperty)
            {
                return(p);
            }
            if (!(p is EnumProperty))
            {
                p = m_shorthandMaker.ConvertProperty(p, pList, fo);
            }
            if (p != null)
            {
                Property    prop = MakeCompound(pList, fo);
                LengthRange pval = prop.GetLengthRange();

                pval.SetComponent("minimum", p, false);
                pval.SetComponent("optimum", p, false);
                pval.SetComponent("maximum", p, false);
                return(prop);
            }
            else
            {
                return(null);
            }
        }
        protected override Property SetSubprop(Property baseProp, string subpropName, Property subProp)
        {
            LengthRange val = baseProp.GetLengthRange();

            val.SetComponent(subpropName, subProp, false);
            return(baseProp);
        }
        protected override Property MakeCompound(PropertyList pList, FObj fo)
        {
            LengthRange p = new LengthRange();
            Property    subProp;

            subProp = GetSubpropMaker("minimum").Make(pList,
                                                      GetDefaultForMinimum(), fo);
            p.SetComponent("minimum", subProp, true);

            subProp = GetSubpropMaker("optimum").Make(pList,
                                                      GetDefaultForOptimum(), fo);
            p.SetComponent("optimum", subProp, true);

            subProp = GetSubpropMaker("maximum").Make(pList,
                                                      GetDefaultForMaximum(), fo);
            p.SetComponent("maximum", subProp, true);

            return(new LengthRangeProperty(p));
        }