/**
* Copyright (c) 2014-2017 by the respective copyright holders.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.eclipse.smarthome.config.xml.osgi;
import org.eclipse.smarthome.config.xml.internal.ConfigDescriptionReader;
/**
* The {@link XmlDocumentProvider} is responsible managing any created objects
* by a {@link ConfigDescriptionReader} for a certain module.
* <p>
* Each instance of this class is assigned to exactly one module.
*
* @author Michael Grammling - Initial Contribution
*
* @param <T> the result type of the conversion
*/
public interface XmlDocumentProvider<T> {
/**
* Adds a new result object from the XML processing for further processing.
*
* @param object the result object to be processed (could be null)
*/
void addingObject(T object);
/**
* Signals that all available result objects from the XML processing of the
* certain module have been added.
*/
void addingFinished();
/**
* Releases any added result objects from the XML processing.
*/
void release();
}