All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.wjybxx.dson.DsonReaderState Maven / Gradle / Ivy

There is a newer version: 2.2.0
Show newest version
/*
 * Copyright 2023-2024 wjybxx([email protected])
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package cn.wjybxx.dson;

/**
 * Object、Header上下文循环 [TYPE-NAME-VALUE], [TYPE-NAME-VALUE]...
 * Array上下文循环 [TYPE-VALUE], [TYPE-VALUE]...
 * 顶层上下文循环 [INITIAL-VALUE], [TYPE-VALUE], [TYPE-VALUE]...END_OF_FILE
 * 

* 由于type必须先读取,因此type需要独立的状态;又由于name可以单独读取,因此name也需要单独的转态,因此需要type-name-value三个状态。 * * @author wjybxx * date - 2023/4/22 */ public enum DsonReaderState { /** 顶层上下文的初始状态 */ INITIAL, /** * 已确定是一个Array/Object,等待用户调用readStartXXX方法 * 正常情况下不会出现该状态,Object/Array由于存在Header,我们通常需要读取header之后才能正确解码, * 我们需要能在读取header之后重新恢复到需要调用readStartXXX的方法,才不会影响业务代码,也避免数据流回退 *

* 简单说,用于peek一部分数据之后,重新设置为等待readStartXXX状态,避免数据流的回滚 */ WAIT_START_OBJECT, /** 等待读取类型 */ TYPE, /** 等待用户读取name(fullNumber) */ NAME, /** 等待读取value */ VALUE, /** 当前对象读取完毕;等待用户调用writeEndXXX */ WAIT_END_OBJECT, /** 到达输入的尾部 */ END_OF_FILE, }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy