Exemplo n.º 1
0
        public string ToString(UnifiedName unifiedName)
        {
            StringBuilder sb = new StringBuilder( );

            sb.Append(unifiedName.Parts.First( ).ToLower( ));
            foreach (string p in unifiedName.Parts)
            {
                if (p == unifiedName.Parts.First( ))
                {
                    continue;
                }

                if (char.IsUpper(p[0]))
                {
                    sb.Append(p);
                }
                else
                {
                    sb.Append(char.ToUpper(p[0]));
                    sb.Append(p.Substring(1));
                }
            }

            return(sb.ToString( ));
        }
Exemplo n.º 2
0
 public void Init( )
 {
     _un = new UnifiedName(
         "short",
         "test",
         "name",
         "FTW");
 }
Exemplo n.º 3
0
        private IOption GetOptionForName(string name)
        {
            UnifiedName optUnName = _specDeriverConfig.PropertyNamingStyle.FromString(name);
            IOption     opt       = _spec.Options.FirstOrDefault(o => o.Name.Equals(optUnName));

            if (opt == null)
            {
                throw new Exception(
                          $"property {name} has no corresponding {nameof( IOption )} with unified name {optUnName}");
            }
            return(opt);
        }
Exemplo n.º 4
0
 public Option(
     UnifiedName name,
     bool optional                = true,
     char?flagAlias               = null,
     IArgument dynamicArgument    = null,
     IEnumerable <IArgument> args = null) : this(
         name,
         optional,
         flagAlias,
         dynamicArgument,
         args?.ToArray( ))
 {
 }
Exemplo n.º 5
0
        public Option(
            UnifiedName name,
            bool optional             = true,
            char?flagAlias            = null,
            IArgument dynamicArgument = null,
            params IArgument[] args) : base(optional, dynamicArgument, args)
        {
            if (name == null)
            {
                throw new NullReferenceException($"{nameof( name )} must not be null");
            }

            Name      = name;
            FlagAlias = flagAlias;
        }
Exemplo n.º 6
0
        public IItem GetItem(string propertyName)
        {
            PropertyInfo pi = _t.GetProperty(propertyName);

            if (pi == null)
            {
                throw new Exception($"{_t} has no property {propertyName}");
            }

            IItem           item;
            OptionAttribute oa = pi.GetCustomAttribute <OptionAttribute>( );
            FlagAttribute   fa = pi.GetCustomAttribute <FlagAttribute>( );

            if (oa != null)
            {
                UnifiedName optionName =
                    _specDeriverConfig.PropertyNamingStyle.FromString(
                        string.IsNullOrEmpty(oa.Name)? pi.Name : oa.Name);
                item = _spec.Options.FirstOrDefault(o => o.Name.Equals(optionName));
                if (item == null)
                {
                    throw new Exception($"no option mapped to property {propertyName}");
                }
            }
            else if (fa != null)
            {
                item = _spec.Flags.FirstOrDefault(f => f.Name == fa.Name);
                if (item == null)
                {
                    throw new Exception($"no flag mapped to property {propertyName}");
                }
            }
            else
            {
                throw new Exception($"no item mapped to property {propertyName}");
            }

            return(item);
        }
Exemplo n.º 7
0
 public string ToString(UnifiedName unifiedName)
 {
     return(unifiedName.Parts.Aggregate(
                (a, b) => $"{FormatWordOrAbbreviation( a )}{_delimiter}{FormatWordOrAbbreviation( b )}"));
 }