package client.net.sf.saxon.ce.type; import client.net.sf.saxon.ce.trans.XPathException; import client.net.sf.saxon.ce.value.AtomicValue; /** * This is a marker interface used as the result methods that convert or cast values from one type * to another. It is implemented by AtomicValue, which indicates a successful conversion, and by * ValidationFailure, which indicates an unsuccessful conversion. An unsuccessful conversion does not * throw an exception because exceptions are expensive and should not be used on success paths. For example * when validating a union, conversion failures are to be expected. */ public interface ConversionResult { /** * Calling this method on a ConversionResult returns the AtomicValue that results * from the conversion if the conversion was successful, and throws a ValidationException * explaining the conversion error otherwise. * * <p>Use this method if you are calling a conversion method that returns a ConversionResult, * and if you want to throw an exception if the conversion fails.</p> * * @return the atomic value that results from the conversion if the conversion was successful * @throws XPathException if the conversion was not successful */ public AtomicValue asAtomic() throws XPathException; } // This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. // If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. // This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0.