コード例 #1
0
        /**
         * Returns the list of Transliterator objects for the
         * given list of SingleID objects.
         *
         * @param ids list vector of SingleID objects.
         * @return Actual transliterators for the list of SingleIDs
         */
        internal static IList <Transliterator> InstantiateList(IList <SingleID> ids)
        {
            Transliterator        t;
            List <Transliterator> translits = new List <Transliterator>();

            foreach (SingleID single in ids)
            {
                if (single.BasicID.Length == 0)
                {
                    continue;
                }
                t = single.GetInstance();
                if (t == null)
                {
                    throw new ArgumentException("Illegal ID " + single.CanonID);
                }
                translits.Add(t);
            }

            // An empty list is equivalent to a Null transliterator.
            if (translits.Count == 0)
            {
                t = Transliterator.GetBasicInstance("Any-Null", null);
                if (t == null)
                {
                    // Should never happen
                    throw new ArgumentException("Internal error; cannot instantiate Any-Null");
                }
                translits.Add(t);
            }
            return(translits);
        }
コード例 #2
0
            internal Transliterator GetInstance()
            {
                Transliterator t;

                if (BasicID == null || BasicID.Length == 0)
                {
                    t = Transliterator.GetBasicInstance("Any-Null", CanonID);
                }
                else
                {
                    t = Transliterator.GetBasicInstance(BasicID, CanonID);
                }
                if (t != null)
                {
                    if (Filter != null)
                    {
                        t.Filter = new UnicodeSet(Filter);
                    }
                }
                return(t);
            }