Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* Jackson JSON-processor.
   *
   * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi
   */
  
  package divconq.json3;

Shared base class for streaming processing contexts used during reading and writing of Json content using Streaming API. This context is also exposed to applications: context object can be used by applications to get an idea of relative position of the parser/generator within json content being processed. This allows for some contextual processing: for example, output within Array context can differ from that of Object context.
 
 public abstract class JsonStreamContext
 {
     // // // Type constants used internally
 
     protected final static int TYPE_ROOT = 0;
     protected final static int TYPE_ARRAY = 1;
     protected final static int TYPE_OBJECT = 2;
 
     protected int _type;

    
Index of the currently processed entry. Starts with -1 to signal that no entries have been started, and gets advanced each time a new entry is started, either by encountering an expected separator, or with new values if no separators are expected (the case for root context).
 
     protected int _index;
 
     /*
     /**********************************************************
     /* Life-cycle
     /**********************************************************
      */
 
     protected JsonStreamContext() { }
 
     /*
     /**********************************************************
     /* Public API, accessors
     /**********************************************************
      */
 
     /*
      * Accessor for finding parent context of this context; will
      * return null for root context.
      * 
      * @return	parent context
      */
     public abstract JsonStreamContext getParent();
 
     /*
      * Method that returns true if this context is an Array context;
      * that is, content is being read from or written to a Json Array.
      * 
      * @return true if were are in the process of filling in an array
      */
     public final boolean inArray() { return  == ; }
 
     /*
      * Method that returns true if this context is a Root context;
      * that is, content is being read from or written to without
      * enclosing array or object structure.
      * 
      * @return true if this context is a Root context
      */
     public final boolean inRoot() { return  == ; }
 
     /*
      * Method that returns true if this context is an Object context;
      * that is, content is being read from or written to a Json Object.
      * 
      * @return true if this context is an Object context
      */
     public final boolean inObject() { return  == ; }
 
     /*
      * Method for accessing simple type description of current context;
      * either ROOT (for root-level values), OBJECT (for field names and
      * values of JSON Objects) or ARRAY (for values of JSON Arrays)
      * 
      * @return type of the current parsing context
      */
     public final String getTypeDesc() {
         switch () {
         case return "ROOT";
         case return "ARRAY";
         case return "OBJECT";
         }
         return "?";
     }
 
    /*
     * @return Number of entries that are complete and started.
     */
    public final int getEntryCount() { return  + 1; }
    /*
     * @return Index of the currently processed entry, if any
     */
    public final int getCurrentIndex() { return ( < 0) ? 0 : ; }
    /*
     * Method for accessing name associated with the current location.
     * Non-null for <code>FIELD_NAME</code> and value events that directly
     * follow field names; null for root level and array values.
     * 
     * @return field name when building objects
     */
    public abstract String getCurrentName();
New to GrepCode? Check out our FAQ X