/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.search;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
import org.apache.commons.io.IOUtils;
import org.elasticsearch.ElasticSearchException;
import org.springframework.stereotype.Component;
/**
* Created by IntelliJ IDEA.
* User: rmh
* Date: 11/22/11
* Time: 3:55 PM
*/
@Component("indexMappingProvider")
final class ConfigFileMappingProvider
implements IndexMappingProvider
{
public String getMapping( final String indexName, final String indexType )
{
InputStream stream = ConfigFileMappingProvider.class.getResourceAsStream( createMappingFileName( indexName, indexType ) );
if ( stream == null )
{
throw new ElasticSearchException( "Mapping-file not found: " + createMappingFileName( indexName, indexType ) );
}
StringWriter writer = new StringWriter();
try
{
IOUtils.copy( stream, writer, "UTF-8" );
return writer.toString();
}
catch ( IOException e )
{
throw new ElasticSearchException( "Failed to get mapping-file as stream", e );
}
}
private String createMappingFileName( final String indexName, final String indexType )
{
return indexName + "_" + indexType + "_mapping.json";
}
}