/**
 * 
 */
package eu.dnetlib.data.information;

import eu.dnetlib.data.mdstore.IMDStoreService;
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException;

/**
 * MdStore data source resolver implementation
 * @author jochen
 *
 */
public class MDStoreDataSourceResolverImpl extends AbstractMDStoreResolver implements DataSourceResolver {

	/* (non-Javadoc)
	 * @see eu.dnetlib.data.information.DataSourceResolver#resolve(java.lang.String)
	 */
	@Override
	public DataSource resolve(final String aDescriptor) {

		try {
			final MDStoreParameters params = parseDescriptor(aDescriptor);
			final IMDStoreService mdStoreService = getMDStoreService(params.getId());
			final MDStoreDataSourceImpl ds = new MDStoreDataSourceImpl();
			ds.setMdStore(mdStoreService, params.getId(), params.getParameters().getProperty("from", ""));
			return ds;
		} catch (ISLookUpException e) {
			throw new IllegalStateException(e);
		}

	}

}
