Ejemplo n.º 1
0
 private void Initialize(IValueStoreDefinition value)
 {
     Name    = value.Name;
     MetaVar = Name;
     Store   = value;
     NumArgs = 1;
 }
Ejemplo n.º 2
0
        private static bool TryConvertFromGeneric(IValueStoreDefinition store, string value, out object obj)
        {
            var tempStore = new DummyValueStore
            {
                Name       = store.Name,
                Converters = store.Converters,
                Type       = store.Type.GetGenericArguments().First()
            };

            return(TryConvertFrom(tempStore, value, out obj));
        }
Ejemplo n.º 3
0
 private void Initialize(IValueStoreDefinition value)
 {
     Name    = value.Name;
     MetaVar = Name;
     Store   = value;
     NumArgs = 1;
     PromptIfValueMissing = new PromptIfValueMissing()
     {
         Enabled = false
     };
 }
Ejemplo n.º 4
0
        private static void AddStaticEnumFormat(StringBuilder builder, IValueStoreDefinition store)
        {
            builder.Append("{");
            var names = store.Type.GetFields(
                BindingFlags.Public | BindingFlags.Static)
                        .Where(f => f.IsInitOnly &&
                               store.Type.IsAssignableFrom(f.FieldType))
                        .Select(f => f.Name)
                        .ToArray();

            builder.Append(String.Join("|", names));
            builder.Append("}");
        }
Ejemplo n.º 5
0
        public VerbParserConfig(IParserConfig internalParserConfig, IValueStoreDefinition store, ParserOptions options)
            : base(options, null)
        {
            InternalParserConfig = internalParserConfig;
            Store = store;

            LongNameArguments   = InternalParserConfig.LongNameArguments;
            ShortNameArguments  = InternalParserConfig.ShortNameArguments;
            PositionalArguments = InternalParserConfig.PositionalArguments;
            Verbs            = InternalParserConfig.Verbs;
            PostParseMethods = InternalParserConfig.PostParseMethods;
            RequiredMutuallyExclusiveArguments = InternalParserConfig.RequiredMutuallyExclusiveArguments;
            RequiredNamedArguments             = InternalParserConfig.RequiredNamedArguments;
        }
Ejemplo n.º 6
0
        private static void AddEnumFormat(StringBuilder builder, IValueStoreDefinition store)
        {
            builder.Append("{");
            var names = Enum.GetNames(store.Type);

            for (var i = 0; i < names.Length; i++)
            {
                builder.Append(names[i]);
                if (i < names.Length - 1)
                {
                    builder.Append("|");
                }
            }
            builder.Append("}");
        }
Ejemplo n.º 7
0
 public static string[] GetEnumValues(IValueStoreDefinition store)
 {
     var typeInfo = store.Type.GetTypeInfo();
     if (IsClrEnum(store))
     {
         return Enum.GetNames(store.Type);
     }
     else if (IsStaticEnum(store))
     {
         return typeInfo.GetFields(
             BindingFlags.Public | BindingFlags.Static)
         .Where(f => f.IsInitOnly &&
                     typeInfo.IsAssignableFrom(f.FieldType))
         .Select(f => f.Name)
         .ToArray();
     }
     return new string[0];
 }
Ejemplo n.º 8
0
        private static IList CreateGenericList(IValueStoreDefinition store, IEnumerable initial)
        {
            var type = store.Type.GetGenericArguments();

            if (!type.Any())
            {
                return(null);
            }
            var list = (IList)Activator.CreateInstance(typeof(List <>).MakeGenericType(type));

            if (initial != null)
            {
                foreach (var elem in initial)
                {
                    list.Add(elem);
                }
            }
            return(list);
        }
Ejemplo n.º 9
0
        public static string[] GetEnumValues(IValueStoreDefinition store)
        {
            var typeInfo = store.Type.GetTypeInfo();

            if (IsClrEnum(store))
            {
                return(Enum.GetNames(store.Type));
            }
            else if (IsStaticEnum(store))
            {
                return(typeInfo.GetFields(
                           BindingFlags.Public | BindingFlags.Static)
                       .Where(f => f.IsInitOnly &&
                              typeInfo.IsAssignableFrom(f.FieldType))
                       .Select(f => f.Name)
                       .ToArray());
            }
            return(new string[0]);
        }
Ejemplo n.º 10
0
        private static bool TryConvertFrom(IValueStoreDefinition store, string value, out object obj)
        {
            var customConverter = store.Converters != null
                ? store.Converters
                                  .FirstOrDefault(c => c.CanConvertFrom(typeof(string)))
                : null;

            if (customConverter != null)
            {
                obj = customConverter.ConvertFromInvariantString(value);
                return(true);
            }

            var converter = TypeDescriptor.GetConverter(store.Type);

            if (converter.CanConvertFrom(typeof(string)))
            {
                obj = converter.ConvertFromInvariantString(value);
                return(true);
            }
            obj = null;
            return(false);
        }
Ejemplo n.º 11
0
 private static bool IsClrEnum(IValueStoreDefinition store)
 {
     return(store.Type.GetTypeInfo().IsSubclassOf(typeof(Enum)));
 }
Ejemplo n.º 12
0
 private static bool IsStaticEnum(IValueStoreDefinition store)
 {
     return (store.GetCustomAttribute<StaticEnumerationAttribute>() ??
             store.Type.GetTypeInfo().GetCustomAttribute<StaticEnumerationAttribute>()) != null;
 }
Ejemplo n.º 13
0
 private static bool IsClrEnum(IValueStoreDefinition store)
 {
     return store.Type.GetTypeInfo().IsSubclassOf(typeof(Enum));
 }
Ejemplo n.º 14
0
 public static bool IsEnum(IValueStoreDefinition store)
 {
     return IsClrEnum(store) || IsStaticEnum(store);
 }
Ejemplo n.º 15
0
 protected NamedBase(CliParserBuilder <TConfig> parser, IValueStoreDefinition store)
     : base(parser)
 {
     Arg            = new NamedArgument(store);
     HasDefaultName = false;
 }
Ejemplo n.º 16
0
 internal NamedList(CliParser <TConfig> parser, IValueStoreDefinition store)
     : base(parser, store)
 {
     Consumes = new Consumes <TConfig, NamedBase <TConfig, NamedList <TConfig, TArg>, TArg>, TArg>(this);
 }
Ejemplo n.º 17
0
 public PositionalArgument(IValueStoreDefinition store)
     : base(store)
 {
 }
Ejemplo n.º 18
0
 public PositionalArgument(IValueStoreDefinition store)
     : base(store)
 {
 }
Ejemplo n.º 19
0
 public NamedArgument(IValueStoreDefinition store)
     : base(store)
 {
 }
Ejemplo n.º 20
0
 public NamedArgument(IValueStoreDefinition store)
     : base(store)
 {
 }
Ejemplo n.º 21
0
 /// <summary>
 /// Create a new Argument.
 /// </summary>
 protected BaseArgument(IValueStoreDefinition value)
 {
     Initialize(value);
 }
Ejemplo n.º 22
0
 public static bool IsEnum(IValueStoreDefinition store)
 {
     return(IsClrEnum(store) || IsStaticEnum(store));
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Create a new Argument.
 /// </summary>
 protected BaseArgument(IValueStoreDefinition value)
 {
     Initialize(value);
 }
Ejemplo n.º 24
0
 internal Positional(CliParserBuilder <TConf> parser, IValueStoreDefinition store)
     : base(parser, store)
 {
 }
Ejemplo n.º 25
0
 private static bool IsStaticEnum(IValueStoreDefinition store)
 {
     return((store.GetCustomAttribute <StaticEnumerationAttribute>() ??
             store.Type.GetTypeInfo().GetCustomAttribute <StaticEnumerationAttribute>()) != null);
 }
Ejemplo n.º 26
0
 private void Initialize(IValueStoreDefinition value)
 {
     Name = value.Name;
     MetaVar = Name;
     Store = value;
     NumArgs = 1;
     PromptIfValueMissing = new PromptIfValueMissing()
     {
         Enabled = false
     };
 }
Ejemplo n.º 27
0
 protected PositionalBase(CliParser <TConfig> parser, IValueStoreDefinition store)
     : base(parser)
 {
     Arg = Arg = new PositionalArgument(store);
 }
Ejemplo n.º 28
0
 internal Named(CliParserBuilder <TConfig> parser, IValueStoreDefinition store)
     : base(parser, store)
 {
 }
Ejemplo n.º 29
0
 public PositionalList(CliParserBuilder <TConfig> parser, IValueStoreDefinition store)
     : base(parser, store)
 {
     Consumes = new Consumes <TConfig, PositionalList <TConfig, TArg>, TArg>(this);
 }