Beispiel #1
0
        public uint[] Translate(string moduleName, string name)
        {
            if (moduleName == null)
            {
                throw new ArgumentNullException("moduleName");
            }

            if (moduleName.Length == 0)
            {
                throw new ArgumentException("module cannot be empty");
            }

            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            if (name.Length == 0)
            {
                throw new ArgumentException("name cannot be empty");
            }

            if (!name.Contains("."))
            {
                return(_tree.Find(moduleName, name).GetNumericalForm());
            }

            string[] content = name.Split('.');
            if (content.Length != 2)
            {
                throw new ArgumentException("name can only contain one dot");
            }

            int  value;
            bool succeeded = int.TryParse(content[1], out value);

            if (!succeeded)
            {
                throw new ArgumentException("not a decimal after dot");
            }

            uint[] oid = _tree.Find(moduleName, content[0]).GetNumericalForm();
            return(Definition.AppendTo(oid, (uint)value));
        }