Beispiel #1
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void visitDocument(int n, index.StoredFieldVisitor visitor) throws java.io.IOException
        public override void visitDocument(int n, StoredFieldVisitor visitor)
        {
            @in.seek(offsets[n]);
            readLine();
            Debug.Assert(StringHelper.StartsWith(scratch, NUM));
            int numFields = parseIntAt(NUM.length);

            for (int i = 0; i < numFields; i++)
            {
                readLine();
                Debug.Assert(StringHelper.StartsWith(scratch, FIELD));
                int       fieldNumber = parseIntAt(FIELD.length);
                FieldInfo fieldInfo   = fieldInfos.fieldInfo(fieldNumber);
                readLine();
                Debug.Assert(StringHelper.StartsWith(scratch, NAME));
                readLine();
                Debug.Assert(StringHelper.StartsWith(scratch, TYPE));

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final util.BytesRef type;
                BytesRef type;
                if (equalsAt(TYPE_STRING, scratch, TYPE.length))
                {
                    type = TYPE_STRING;
                }
                else if (equalsAt(TYPE_BINARY, scratch, TYPE.length))
                {
                    type = TYPE_BINARY;
                }
                else if (equalsAt(TYPE_INT, scratch, TYPE.length))
                {
                    type = TYPE_INT;
                }
                else if (equalsAt(TYPE_LONG, scratch, TYPE.length))
                {
                    type = TYPE_LONG;
                }
                else if (equalsAt(TYPE_FLOAT, scratch, TYPE.length))
                {
                    type = TYPE_FLOAT;
                }
                else if (equalsAt(TYPE_DOUBLE, scratch, TYPE.length))
                {
                    type = TYPE_DOUBLE;
                }
                else
                {
                    throw new Exception("unknown field type");
                }

                switch (visitor.needsField(fieldInfo))
                {
                case YES:
                    readField(type, fieldInfo, visitor);
                    break;

                case NO:
                    readLine();
                    Debug.Assert(StringHelper.StartsWith(scratch, VALUE));
                    break;

                case STOP:
                    return;
                }
            }
        }