com.amazon.ion.SpanProvider Maven / Gradle / Ivy
Show all versions of ion-java Show documentation
/*
* Copyright 2007-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* or in the "license" file accompanying this file. This file 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 com.amazon.ion;
/**
* Provide the ability to retrieve {@link Span}s (abstract value positions)
* of Ion data.
*
* WARNING: This interface should not be implemented or extended by
* code outside of this library.
*
* This functionality may be accessed as a facet of most {@link IonReader}s.
*
*/
public interface SpanProvider
{
/**
* Gets the current span of this object, generally covering a single value
* on the source.
*/
public Span currentSpan();
/**
* Gets a span covering all the children of the current span, which must
* be a container.
*
* @throws IonException if the current span covers anything other than a
* single container.
*/
// public Span contentSpan(); // TODO later
// TODO move to Span interface?
/**
* Gets a span covering the container of the current span.
*
* @throws IonException if the current span is at top-level.
*/
// public Span containerSpan(); // TODO later
// TODO move to Span interface?
}