com.kapil.framework.reader.MessageReaderFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of iframework Show documentation
Show all versions of iframework Show documentation
This is a set of utilities and classes that I have found useful over the years.
In my career spanning over a decade, I have time and again written the same code or
some part of the code over and over again. I never found the time to collate the details
in a reusable library. This project will be a collection of such files.
The work that I have been doing is more than 5 years old, however the project has been
conceived in 2011.
/*******************************************************************************
* Copyright 2011 @ Kapil Viren Ahuja
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License 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.kapil.framework.reader;
import java.util.ArrayList;
import java.util.List;
/**
*
* Factory to initialize different kinds of message readers. This factory takes away the responsibility from the
* consumer of the framework to initialize readers. Any change in underlying implementations will not impact application
* code.
*
*/
public class MessageReaderFactory
{
/** The INSTANCE. */
private static MessageReaderFactory INSTANCE;
/**
* Only constructor which is made private, forcing a Singleton instance.
*/
private MessageReaderFactory()
{
}
/**
* Gets the single instance of MessageReaderFactory.
*
* @return instance of MessageReaderFactory
*/
public static MessageReaderFactory getInstance()
{
if (INSTANCE == null)
{
INSTANCE = new MessageReaderFactory();
}
return INSTANCE;
}
/**
* Creates a new instance of the {@link ResourceBundleMessageReader} for multiple data sources.
*
* @param dataSources list of data sources needed to initialise the bundle reader
*
* @return new instance of the {@link ResourceBundleMessageReader}
*/
public IMessageReader getReader(String type, List dataSources)
{
if ("ResourceBundle".equals(type))
{
return new ResourceBundleMessageReader(dataSources);
}
else
{
throw new RuntimeException("Message Reader Factory can not return any instance of type [" + type + "]");
}
}
/**
* Creates a new instance of the {@link ResourceBundleMessageReader} for a single data source.
*
* @param dataSource the data source
*
* @return new instance of the {@link ResourceBundleMessageReader}
*/
public IMessageReader getReader(String type, String dataSource)
{
List dataSourceList = new ArrayList();
dataSourceList.add(dataSource);
return getReader(type, dataSourceList);
}
/**
* Creates a new instance of the {@link XMLConfigurationReader} for a single data source.
*
*
* @param dataSource the data source
* @return new instance of the {@link ResourceBundleMessageReader}
*/
public IMessageReader getXmlConfigurationReader(final String dataSourceName)
{
return new XMLConfigurationReader(dataSourceName);
}
}