org.faktorips.runtime.productdataprovider
Interface IProductDataProvider

All Known Implementing Classes:
AbstractProductDataProvider, ClassLoaderProductDataProvider

public interface IProductDataProvider

A IProductDataProvider provides the content of product data identified by its toc entry. To get the table of contents you have to call 'loadToc'. The product data could change over time. If the user tries to request data from product data provider that has changed since creation a DataModifiedException is thrown. To get the actual product data the user have to create a new IProductDataProvider.

Author:
dirmeier

Method Summary
 InputStream getEnumContentAsStream(EnumContentTocEntry tocEntry)
          Getting the input stream of enum content for given tocEntry.
 Element getProductCmptData(ProductCmptTocEntry tocEntry)
          Getting the product component data element for given tocEntry.
 Element getProductCmptGenerationData(GenerationTocEntry tocEntry)
          Getting the product component generation data element for given tocEntry.
 InputStream getTableContentAsStream(TableContentTocEntry tocEntry)
          Getting the input stream of table content for given tocEntry.
 Element getTestcaseElement(TestCaseTocEntry tocEntry)
          Getting the test case data element for given tocEntry.
 IReadonlyTableOfContents getToc()
          Getting the toc in the product data provider and returns it.
<T> Element
getTocEntryData(CustomTocEntryObject<T> tocEntry)
          Getting the data element for the given tocEntry.
 String getVersion()
          Getting the version of the product data provider.
 boolean isCompatibleToBaseVersion()
          Return true if the version is compatible to the base version of this IProductDataProvider.
 

Method Detail

getToc

IReadonlyTableOfContents getToc()
Getting the toc in the product data provider and returns it. Calling the method twice should not reload the table of content.

Returns:
The loaded toc

getProductCmptData

Element getProductCmptData(ProductCmptTocEntry tocEntry)
                           throws DataModifiedException
Getting the product component data element for given tocEntry. If the toc has been modified this method throws a DataModifiedException. To update the modification time you have to reload the toc.

Parameters:
tocEntry - The toc entry for the product component you want to load
Returns:
the xml element of the requested product component
Throws:
DataModifiedException - when toc data was modified

getProductCmptGenerationData

Element getProductCmptGenerationData(GenerationTocEntry tocEntry)
                                     throws DataModifiedException
Getting the product component generation data element for given tocEntry. If the toc has been modified this method throws a DataModifiedException. To update the modification time you have to reload the toc.

Parameters:
tocEntry - The toc entry for the product component generation you want to load
Returns:
the xml element of the requested product component generation
Throws:
DataModifiedException - when toc data was modified

getTestcaseElement

Element getTestcaseElement(TestCaseTocEntry tocEntry)
                           throws DataModifiedException
Getting the test case data element for given tocEntry. If the toc has been modified this method throws a DataModifiedException. To update the modification time you have to reload the toc.

Parameters:
tocEntry - The toc entry for the test case element you want to load
Returns:
the xml element of the requested test case element
Throws:
DataModifiedException - when toc data was modified

getTableContentAsStream

InputStream getTableContentAsStream(TableContentTocEntry tocEntry)
                                    throws DataModifiedException
Getting the input stream of table content for given tocEntry. If the toc has been modified this method throws a DataModifiedException. To update the modification time you have to reload the toc.

Parameters:
tocEntry - The toc entry for the table content you want to load
Returns:
the input stream of the requested table content
Throws:
DataModifiedException - when toc data was modified

getEnumContentAsStream

InputStream getEnumContentAsStream(EnumContentTocEntry tocEntry)
                                   throws DataModifiedException
Getting the input stream of enum content for given tocEntry. If the toc has been modified this method throws a DataModifiedException. To update the modification time you have to reload the toc.

Parameters:
tocEntry - The toc entry for the enum content you want to load
Returns:
the input stream of the requested enum content
Throws:
DataModifiedException - when toc data was modified

getVersion

String getVersion()
Getting the version of the product data provider. This is the version of the product data when this IProductDataProvider was created. The version should be final. Once product data has changed this IProductDataProvider getting useless and a new one should be created.

Returns:
the version of the product data provider

isCompatibleToBaseVersion

boolean isCompatibleToBaseVersion()
Return true if the version is compatible to the base version of this IProductDataProvider. The base version is the really actual version of the product data and should not be cached.

Returns:
true if version is compatible

getTocEntryData

<T> Element getTocEntryData(CustomTocEntryObject<T> tocEntry)
                        throws DataModifiedException
Getting the data element for the given tocEntry. If the toc has been modified this method throws a DataModifiedException. To update the modification time you have to reload the toc.

Type Parameters:
T - the class of the runtime object you want to load
Parameters:
tocEntry - The toc entry for the runtime object of class T you want to load
Returns:
the xml element of the requested object
Throws:
DataModifiedException - when toc data was modified


Copyright © 2015. All rights reserved.