コード例 #1
0
 protected internal TokenFilterContext(int type, com.fasterxml.jackson.core.filter.TokenFilterContext
     parent, com.fasterxml.jackson.core.filter.TokenFilter filter, bool startHandled
     )
     : base()
 {
     /*
     /**********************************************************
     /* Simple instance reuse slots; speed up things
     /* a bit (10-15%) for docs with lots of small
     /* arrays/objects
     /**********************************************************
     */
     /*
     /**********************************************************
     /* Location/state information
     /**********************************************************
     */
     /*
     /**********************************************************
     /* Life-cycle
     /**********************************************************
     */
     _type = type;
     _parent = parent;
     _filter = filter;
     _index = -1;
     _startHandled = startHandled;
     _needToHandleName = false;
 }
コード例 #2
0
        /// <summary>Method called when a new potentially included context is found.</summary>
        /// <exception cref="System.IO.IOException"/>
        protected internal com.fasterxml.jackson.core.JsonToken _nextTokenWithBuffering(com.fasterxml.jackson.core.filter.TokenFilterContext
            buffRoot)
        {
            while (true)
            {
                com.fasterxml.jackson.core.JsonToken t = delegate_.nextToken();
                if (t == null)
                {
                    // is this even legal?
                    return t;
                }
                com.fasterxml.jackson.core.filter.TokenFilter f;
                switch (t.id())
                {
                    case JsonTokenIdConstants.ID_START_ARRAY:
                    {
                        // One simplification here: we know for a fact that the item filter is
                        // neither null nor 'include all', for most cases; the only exception
                        // being FIELD_NAME handling
                        f = _headContext.checkValue(_itemFilter);
                        if (f == null)
                        {
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        if (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            f = f.filterStartArray();
                        }
                        _itemFilter = f;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            _headContext = _headContext.createChildArrayContext(f, true);
                            return _nextBuffered(buffRoot);
                        }
                        _headContext = _headContext.createChildArrayContext(f, false);
                        goto main_loop_continue;
                    }

                    case JsonTokenIdConstants.ID_START_OBJECT:
                    {
                        f = _itemFilter;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            _headContext = _headContext.createChildObjectContext(f, true);
                            return t;
                        }
                        if (f == null)
                        {
                            // does this occur?
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        // Otherwise still iffy, need to check
                        f = _headContext.checkValue(f);
                        if (f == null)
                        {
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        if (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            f = f.filterStartObject();
                        }
                        _itemFilter = f;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            _headContext = _headContext.createChildObjectContext(f, true);
                            return _nextBuffered(buffRoot);
                        }
                        _headContext = _headContext.createChildObjectContext(f, false);
                        goto main_loop_continue;
                    }

                    case JsonTokenIdConstants.ID_END_ARRAY:
                    case JsonTokenIdConstants.ID_END_OBJECT:
                    {
                        // Unlike with other loops, here we know that content was NOT
                        // included (won't get this far otherwise)
                        f = _headContext.getFilter();
                        if ((f != null) && (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL
                            ))
                        {
                            f.filterFinishArray();
                        }
                        bool gotEnd = (_headContext == buffRoot);
                        bool returnEnd = gotEnd && _headContext.isStartHandled();
                        _headContext = ((com.fasterxml.jackson.core.filter.TokenFilterContext)_headContext
                            .getParent());
                        _itemFilter = _headContext.getFilter();
                        if (returnEnd)
                        {
                            return t;
                        }
                        // Hmmh. Do we need both checks, or should above suffice?
                        if (gotEnd || (_headContext == buffRoot))
                        {
                            return null;
                        }
                        goto main_loop_continue;
                    }

                    case JsonTokenIdConstants.ID_FIELD_NAME:
                    {
                        string name = delegate_.getCurrentName();
                        f = _headContext.setFieldName(name);
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            _itemFilter = f;
                            return _nextBuffered(buffRoot);
                        }
                        if (f == null)
                        {
                            // filter out the value
                            delegate_.nextToken();
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        f = f.includeProperty(name);
                        if (f == null)
                        {
                            // filter out the value
                            delegate_.nextToken();
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        _itemFilter = f;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            return _nextBuffered(buffRoot);
                        }
                        goto main_loop_continue;
                    }

                    default:
                    {
                        // scalar value
                        f = _itemFilter;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            return _nextBuffered(buffRoot);
                        }
                        if (f != null)
                        {
                            f = _headContext.checkValue(f);
                            if ((f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL) || ((f != null
                                ) && f.includeValue(delegate_)))
                            {
                                return _nextBuffered(buffRoot);
                            }
                        }
                        // Otherwise not included (leaves must be explicitly included)
                        goto main_loop_continue;
                    }
                }
            main_loop_continue: ;
            }
            main_loop_break: ;
        }
コード例 #3
0
        /// <summary>
        /// Offlined handling for cases where there was no buffered token to
        /// return, and the token read next could not be returned as-is,
        /// at least not yet, but where we have not yet established that
        /// buffering is needed.
        /// </summary>
        /// <exception cref="System.IO.IOException"/>
        protected internal com.fasterxml.jackson.core.JsonToken _nextToken2()
        {
            while (true)
            {
                com.fasterxml.jackson.core.JsonToken t = delegate_.nextToken();
                if (t == null)
                {
                    // is this even legal?
                    return (_currToken = t);
                }
                com.fasterxml.jackson.core.filter.TokenFilter f;
                switch (t.id())
                {
                    case JsonTokenIdConstants.ID_START_ARRAY:
                    {
                        f = _itemFilter;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            _headContext = _headContext.createChildArrayContext(f, true);
                            return (_currToken = t);
                        }
                        if (f == null)
                        {
                            // does this occur?
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        // Otherwise still iffy, need to check
                        f = _headContext.checkValue(f);
                        if (f == null)
                        {
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        if (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            f = f.filterStartArray();
                        }
                        _itemFilter = f;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            _headContext = _headContext.createChildArrayContext(f, true);
                            return (_currToken = t);
                        }
                        _headContext = _headContext.createChildArrayContext(f, false);
                        // but if we didn't figure it out yet, need to buffer possible events
                        if (_includePath)
                        {
                            t = _nextTokenWithBuffering(_headContext);
                            if (t != null)
                            {
                                _currToken = t;
                                return t;
                            }
                        }
                        goto main_loop_continue;
                    }

                    case JsonTokenIdConstants.ID_START_OBJECT:
                    {
                        f = _itemFilter;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            _headContext = _headContext.createChildObjectContext(f, true);
                            return (_currToken = t);
                        }
                        if (f == null)
                        {
                            // does this occur?
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        // Otherwise still iffy, need to check
                        f = _headContext.checkValue(f);
                        if (f == null)
                        {
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        if (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            f = f.filterStartObject();
                        }
                        _itemFilter = f;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            _headContext = _headContext.createChildObjectContext(f, true);
                            return (_currToken = t);
                        }
                        _headContext = _headContext.createChildObjectContext(f, false);
                        if (_includePath)
                        {
                            t = _nextTokenWithBuffering(_headContext);
                            if (t != null)
                            {
                                _currToken = t;
                                return t;
                            }
                        }
                        goto main_loop_continue;
                    }

                    case JsonTokenIdConstants.ID_END_ARRAY:
                    case JsonTokenIdConstants.ID_END_OBJECT:
                    {
                        bool returnEnd = _headContext.isStartHandled();
                        f = _headContext.getFilter();
                        if ((f != null) && (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL
                            ))
                        {
                            f.filterFinishArray();
                        }
                        _headContext = ((com.fasterxml.jackson.core.filter.TokenFilterContext)_headContext
                            .getParent());
                        _itemFilter = _headContext.getFilter();
                        if (returnEnd)
                        {
                            return (_currToken = t);
                        }
                        goto main_loop_continue;
                    }

                    case JsonTokenIdConstants.ID_FIELD_NAME:
                    {
                        string name = delegate_.getCurrentName();
                        f = _headContext.setFieldName(name);
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            _itemFilter = f;
                            return (_currToken = t);
                        }
                        if (f == null)
                        {
                            // filter out the value
                            delegate_.nextToken();
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        f = f.includeProperty(name);
                        if (f == null)
                        {
                            // filter out the value
                            delegate_.nextToken();
                            delegate_.skipChildren();
                            goto main_loop_continue;
                        }
                        _itemFilter = f;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            if (_includePath)
                            {
                                return (_currToken = t);
                            }
                            //                        if (_includeImmediateParent) { ...
                            goto main_loop_continue;
                        }
                        if (_includePath)
                        {
                            t = _nextTokenWithBuffering(_headContext);
                            if (t != null)
                            {
                                _currToken = t;
                                return t;
                            }
                        }
                        goto main_loop_continue;
                    }

                    default:
                    {
                        // scalar value
                        f = _itemFilter;
                        if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                        {
                            return (_currToken = t);
                        }
                        if (f != null)
                        {
                            f = _headContext.checkValue(f);
                            if ((f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL) || ((f != null
                                ) && f.includeValue(delegate_)))
                            {
                                return (_currToken = t);
                            }
                        }
                        // Otherwise not included (leaves must be explicitly included)
                        break;
                    }
                }
            main_loop_continue: ;
            }
            main_loop_break: ;
        }
コード例 #4
0
        /*
        /**********************************************************
        /* Public API, traversal
        /**********************************************************
        */
        /// <exception cref="System.IO.IOException"/>
        public override com.fasterxml.jackson.core.JsonToken nextToken()
        {
            // Anything buffered?
            com.fasterxml.jackson.core.filter.TokenFilterContext ctxt = _exposedContext;
            if (ctxt != null)
            {
                while (true)
                {
                    com.fasterxml.jackson.core.JsonToken t = ctxt.nextTokenToRead();
                    if (t != null)
                    {
                        _currToken = t;
                        return t;
                    }
                    // all done with buffered stuff?
                    if (ctxt == _headContext)
                    {
                        _exposedContext = null;
                        if (ctxt.inArray())
                        {
                            t = delegate_.getCurrentToken();
                            // Is this guaranteed to work without further checks?
                            //                        if (t != JsonToken.START_ARRAY) {
                            _currToken = t;
                            return t;
                        }
                        // Almost! Most likely still have the current token;
                        // with the sole exception of
                        /*
                        t = delegate.getCurrentToken();
                        if (t != JsonToken.FIELD_NAME) {
                        _currToken = t;
                        return t;
                        }
                        */
                        break;
                    }
                    // If not, traverse down the context chain
                    ctxt = _headContext.findChildOf(ctxt);
                    _exposedContext = ctxt;
                    if (ctxt == null)
                    {
                        // should never occur
                        throw _constructError("Unexpected problem: chain of filtered context broken");
                    }
                }
            }
            // If not, need to read more. If we got any:
            com.fasterxml.jackson.core.JsonToken t_1 = delegate_.nextToken();
            if (t_1 == null)
            {
                // no strict need to close, since we have no state here
                return (_currToken = t_1);
            }
            // otherwise... to include or not?
            com.fasterxml.jackson.core.filter.TokenFilter f;
            switch (t_1.id())
            {
                case JsonTokenIdConstants.ID_START_ARRAY:
                {
                    f = _itemFilter;
                    if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                    {
                        _headContext = _headContext.createChildArrayContext(f, true);
                        return (_currToken = t_1);
                    }
                    if (f == null)
                    {
                        // does this occur?
                        delegate_.skipChildren();
                        break;
                    }
                    // Otherwise still iffy, need to check
                    f = _headContext.checkValue(f);
                    if (f == null)
                    {
                        delegate_.skipChildren();
                        break;
                    }
                    if (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                    {
                        f = f.filterStartArray();
                    }
                    _itemFilter = f;
                    if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                    {
                        _headContext = _headContext.createChildArrayContext(f, true);
                        return (_currToken = t_1);
                    }
                    _headContext = _headContext.createChildArrayContext(f, false);
                    // Also: only need buffering if parent path to be included
                    if (_includePath)
                    {
                        t_1 = _nextTokenWithBuffering(_headContext);
                        if (t_1 != null)
                        {
                            _currToken = t_1;
                            return t_1;
                        }
                    }
                    break;
                }

                case JsonTokenIdConstants.ID_START_OBJECT:
                {
                    f = _itemFilter;
                    if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                    {
                        _headContext = _headContext.createChildObjectContext(f, true);
                        return (_currToken = t_1);
                    }
                    if (f == null)
                    {
                        // does this occur?
                        delegate_.skipChildren();
                        break;
                    }
                    // Otherwise still iffy, need to check
                    f = _headContext.checkValue(f);
                    if (f == null)
                    {
                        delegate_.skipChildren();
                        break;
                    }
                    if (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                    {
                        f = f.filterStartObject();
                    }
                    _itemFilter = f;
                    if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                    {
                        _headContext = _headContext.createChildObjectContext(f, true);
                        return (_currToken = t_1);
                    }
                    _headContext = _headContext.createChildObjectContext(f, false);
                    // Also: only need buffering if parent path to be included
                    if (_includePath)
                    {
                        t_1 = _nextTokenWithBuffering(_headContext);
                        if (t_1 != null)
                        {
                            _currToken = t_1;
                            return t_1;
                        }
                    }
                    // note: inclusion of surrounding Object handled separately via
                    // FIELD_NAME
                    break;
                }

                case JsonTokenIdConstants.ID_END_ARRAY:
                case JsonTokenIdConstants.ID_END_OBJECT:
                {
                    bool returnEnd = _headContext.isStartHandled();
                    f = _headContext.getFilter();
                    if ((f != null) && (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL
                        ))
                    {
                        f.filterFinishArray();
                    }
                    _headContext = ((com.fasterxml.jackson.core.filter.TokenFilterContext)_headContext
                        .getParent());
                    _itemFilter = _headContext.getFilter();
                    if (returnEnd)
                    {
                        return (_currToken = t_1);
                    }
                    break;
                }

                case JsonTokenIdConstants.ID_FIELD_NAME:
                {
                    string name = delegate_.getCurrentName();
                    // note: this will also set 'needToHandleName'
                    f = _headContext.setFieldName(name);
                    if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                    {
                        _itemFilter = f;
                        if (!_includePath)
                        {
                            // Minor twist here: if parent NOT included, may need to induce output of
                            // surrounding START_OBJECT/END_OBJECT
                            if (_includeImmediateParent && !_headContext.isStartHandled())
                            {
                                t_1 = _headContext.nextTokenToRead();
                                // returns START_OBJECT but also marks it handled
                                _exposedContext = _headContext;
                            }
                        }
                        return (_currToken = t_1);
                    }
                    if (f == null)
                    {
                        delegate_.nextToken();
                        delegate_.skipChildren();
                        break;
                    }
                    f = f.includeProperty(name);
                    if (f == null)
                    {
                        delegate_.nextToken();
                        delegate_.skipChildren();
                        break;
                    }
                    _itemFilter = f;
                    if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                    {
                        if (_includePath)
                        {
                            return (_currToken = t_1);
                        }
                    }
                    if (_includePath)
                    {
                        t_1 = _nextTokenWithBuffering(_headContext);
                        if (t_1 != null)
                        {
                            _currToken = t_1;
                            return t_1;
                        }
                    }
                    break;
                }

                default:
                {
                    // scalar value
                    f = _itemFilter;
                    if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
                    {
                        return (_currToken = t_1);
                    }
                    if (f != null)
                    {
                        f = _headContext.checkValue(f);
                        if ((f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL) || ((f != null
                            ) && f.includeValue(delegate_)))
                        {
                            return (_currToken = t_1);
                        }
                    }
                    // Otherwise not included (leaves must be explicitly included)
                    break;
                }
            }
            // We get here if token was not yet found; offlined handling
            return _nextToken2();
        }
コード例 #5
0
 /// <exception cref="System.IO.IOException"/>
 private com.fasterxml.jackson.core.JsonToken _nextBuffered(com.fasterxml.jackson.core.filter.TokenFilterContext
     buffRoot)
 {
     _exposedContext = buffRoot;
     com.fasterxml.jackson.core.filter.TokenFilterContext ctxt = buffRoot;
     com.fasterxml.jackson.core.JsonToken t = ctxt.nextTokenToRead();
     if (t != null)
     {
         return t;
     }
     while (true)
     {
         // all done with buffered stuff?
         if (ctxt == _headContext)
         {
             throw _constructError("Internal error: failed to locate expected buffered tokens"
                 );
         }
         /*
         _exposedContext = null;
         break;
         */
         // If not, traverse down the context chain
         ctxt = _exposedContext.findChildOf(ctxt);
         _exposedContext = ctxt;
         if (ctxt == null)
         {
             // should never occur
             throw _constructError("Unexpected problem: chain of filtered context broken");
         }
         t = _exposedContext.nextTokenToRead();
         if (t != null)
         {
             return t;
         }
     }
 }
コード例 #6
0
 public FilteringParserDelegate(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.core.filter.TokenFilter
     f, bool includePath, bool allowMultipleMatches)
     : base(p)
 {
     /*
     /**********************************************************
     /* Configuration
     /**********************************************************
     */
     /* NOTE: this feature is included in the first version (2.6), but
     * there is no public API to enable it, yet, since there isn't an
     * actual use case. But it seemed possible need could arise, which
     * is feature has not yet been removed. If no use is found within
     * first version or two, just remove.
     *
     * Marked as deprecated since its status is uncertain.
     */
     /*
     /**********************************************************
     /* State
     /**********************************************************
     */
     /*
     /**********************************************************
     /* Construction, initialization
     /**********************************************************
     */
     rootFilter = f;
     // and this is the currently active filter for root values
     _itemFilter = f;
     _headContext = com.fasterxml.jackson.core.filter.TokenFilterContext.createRootContext
         (f);
     _includePath = includePath;
     _allowMultipleMatches = allowMultipleMatches;
 }
コード例 #7
0
 public virtual com.fasterxml.jackson.core.filter.TokenFilterContext createChildObjectContext(com.fasterxml.jackson.core.filter.TokenFilter filter, bool writeStart)
 {
     com.fasterxml.jackson.core.filter.TokenFilterContext ctxt = _child;
     if (ctxt == null)
     {
         _child = ctxt = new com.fasterxml.jackson.core.filter.TokenFilterContext(TYPE_OBJECT
             , this, filter, writeStart);
         return ctxt;
     }
     return ctxt.reset(TYPE_OBJECT, filter, writeStart);
 }
コード例 #8
0
 /// <exception cref="System.IO.IOException"/>
 public override void writeStartObject()
 {
     if (_itemFilter == null)
     {
         _filterContext = _filterContext.createChildObjectContext(_itemFilter, false);
         return;
     }
     if (_itemFilter == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
     {
         _filterContext = _filterContext.createChildObjectContext(_itemFilter, true);
         delegate_.writeStartObject();
         return;
     }
     com.fasterxml.jackson.core.filter.TokenFilter f = _filterContext.checkValue(_itemFilter
         );
     if (f == null)
     {
         return;
     }
     if (f != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
     {
         f = f.filterStartObject();
     }
     if (f == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
     {
         _checkParentPath();
         _filterContext = _filterContext.createChildObjectContext(f, true);
         delegate_.writeStartObject();
     }
     else
     {
         // filter out
         _filterContext = _filterContext.createChildObjectContext(f, false);
     }
 }
コード例 #9
0
 /// <exception cref="System.IO.IOException"/>
 public override void writeStartArray(int size)
 {
     if (_itemFilter == null)
     {
         _filterContext = _filterContext.createChildArrayContext(null, false);
         return;
     }
     if (_itemFilter == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
     {
         _filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
         delegate_.writeStartArray(size);
         return;
     }
     _itemFilter = _filterContext.checkValue(_itemFilter);
     if (_itemFilter == null)
     {
         _filterContext = _filterContext.createChildArrayContext(null, false);
         return;
     }
     if (_itemFilter != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
     {
         _itemFilter = _itemFilter.filterStartArray();
     }
     if (_itemFilter == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
     {
         _checkParentPath();
         _filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
         delegate_.writeStartArray(size);
     }
     else
     {
         _filterContext = _filterContext.createChildArrayContext(_itemFilter, false);
     }
 }
コード例 #10
0
 /*
 /**********************************************************
 /* Public API, write methods, structural
 /**********************************************************
 */
 /// <exception cref="System.IO.IOException"/>
 public override void writeStartArray()
 {
     // First things first: whole-sale skipping easy
     if (_itemFilter == null)
     {
         _filterContext = _filterContext.createChildArrayContext(null, false);
         return;
     }
     if (_itemFilter == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
     {
         // include the whole sub-tree?
         _filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
         delegate_.writeStartArray();
         return;
     }
     // Ok; regular checking state then
     _itemFilter = _filterContext.checkValue(_itemFilter);
     if (_itemFilter == null)
     {
         _filterContext = _filterContext.createChildArrayContext(null, false);
         return;
     }
     if (_itemFilter != com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
     {
         _itemFilter = _itemFilter.filterStartArray();
     }
     if (_itemFilter == com.fasterxml.jackson.core.filter.TokenFilter.INCLUDE_ALL)
     {
         _checkParentPath();
         _filterContext = _filterContext.createChildArrayContext(_itemFilter, true);
         delegate_.writeStartArray();
     }
     else
     {
         _filterContext = _filterContext.createChildArrayContext(_itemFilter, false);
     }
 }
コード例 #11
0
 /// <exception cref="System.IO.IOException"/>
 public override void writeEndObject()
 {
     _filterContext = _filterContext.closeObject(delegate_);
     if (_filterContext != null)
     {
         _itemFilter = _filterContext.getFilter();
     }
 }