public DateTimeMethodOps Validate(DateTimeMethodValidateContext context)
            {
                var asArrayOfString = new DateTimeMethodOpsReformat();

                asArrayOfString.ReturnType       = typeof(string[]);
                asArrayOfString.LongOp           = new DateTimeMethodModeStaticMethod(typeof(MyLocalDTMArrayOfStringUtility), "AsArrayOfStringOne");
                asArrayOfString.DateTimeExOp     = new DateTimeMethodModeStaticMethod(typeof(MyLocalDTMArrayOfStringUtility), "AsArrayOfStringThree");
                asArrayOfString.DateTimeOffsetOp = new DateTimeMethodModeStaticMethod(typeof(MyLocalDTMArrayOfStringUtility), "AsArrayOfStringFour");
                asArrayOfString.DateTimeOp       = new DateTimeMethodModeStaticMethod(typeof(MyLocalDTMArrayOfStringUtility), "AsArrayOfStringFive");
                return(asArrayOfString);
            }
        public DTMPluginReformatForge(
            Type inputType,
            DateTimeMethodOpsReformat reformatOp,
            IList <ExprNode> reformatOpParams)
        {
            _reformatOp       = reformatOp;
            _reformatOpParams = reformatOpParams;
            ValidateDTMStaticMethodAllowNull(inputType, reformatOp.LongOp, typeof(long), reformatOpParams);
            ValidateDTMStaticMethodAllowNull(inputType, reformatOp.DateTimeExOp, typeof(DateTimeEx), reformatOpParams);
            ValidateDTMStaticMethodAllowNull(inputType, reformatOp.DateTimeOffsetOp, typeof(DateTimeOffset), reformatOpParams);
            ValidateDTMStaticMethodAllowNull(inputType, reformatOp.DateTimeOp, typeof(DateTime), reformatOpParams);

            if (reformatOp.ReturnType == null || reformatOp.ReturnType == typeof(void))
            {
                throw new ExprValidationException("Invalid return type for reformat operation, return type is " + reformatOp.ReturnType);
            }
        }