001package ca.uhn.fhir.parser; 002 003/* 004 * #%L 005 * HAPI FHIR - Core Library 006 * %% 007 * Copyright (C) 2014 - 2016 University Health Network 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023/** 024 * Error handler 025 */ 026public interface IParserErrorHandler { 027 028 /** 029 * Invoked when an element repetition (e.g. a second repetition of something) is found for a field 030 * which is non-repeating. 031 * 032 * @param theLocation The location in the document. WILL ALWAYS BE NULL currently, as this is not yet implemented, but this parameter is included so that locations can be added in the future without changing the API. 033 * @param theElementName The name of the element that was found. 034 * @since 1.2 035 */ 036 void unexpectedRepeatingElement(IParseLocation theLocation, String theElementName); 037 038 /** 039 * Invoked when an unknown element is found in the document. 040 * 041 * @param theLocation The location in the document. WILL ALWAYS BE NULL currently, as this is not yet implemented, but this parameter is included so that locations can be added in the future without changing the API. 042 * @param theAttributeName The name of the attribute that was found. 043 */ 044 void unknownAttribute(IParseLocation theLocation, String theAttributeName); 045 046 /** 047 * Invoked when an unknown element is found in the document. 048 * 049 * @param theLocation The location in the document. WILL ALWAYS BE NULL currently, as this is not yet implemented, but this parameter is included so that locations can be added in the future without changing the API. 050 * @param theElementName The name of the element that was found. 051 */ 052 void unknownElement(IParseLocation theLocation, String theElementName); 053 054 /** 055 * For now this is an empty interface. Error handling methods include a parameter of this 056 * type which will currently always be set to null. This interface is included here so that 057 * locations can be added to the API in a future release without changing the API. 058 */ 059 public interface IParseLocation { 060 // nothing for now 061 } 062 063}