예제 #1
0
        /// <param name="st">
        ///            is a sequence type. </param>
        /// <param name="sc">
        ///            is a static context. </param>
        public SeqType(SequenceType st, StaticContext sc, ResultSequence rs)
        {
            occ = mapSequenceTypeOccurrence(st.occurrence());
            // figure out the item is
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.eclipse.wst.xml.xpath2.processor.internal.ast.ItemType item = st.item_type();
            ItemType item  = st.item_type();
            KindTest ktest = null;

            switch (item.type())
            {
            case ItemType.ITEM:
                typeClass = typeof(AnyType);
                return;

            // XXX IMPLEMENT THIS
            case ItemType.QNAME:
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.eclipse.wst.xml.xpath2.processor.internal.types.AnyAtomicType aat = make_atomic(sc, item.qname());
                AnyAtomicType aat = make_atomic(sc, item.qname());

                Debug.Assert(aat != null);
                anytype = aat;
                if (item.qname().Equals(ANY_ATOMIC_TYPE))
                {
                    typeClass = typeof(AnyAtomicType);
                }
                else
                {
                    typeClass = anytype.GetType();
                }
                return;

            case ItemType.KINDTEST:
                ktest = item.kind_test();
                break;
            }

            if (ktest == null)
            {
                return;
            }

            typeClass = ktest.XDMClassType;
            anytype   = ktest.createTestType(rs, sc);
            nodeName  = ktest.name();
            wild      = ktest.Wild;
        }