package org.teiid.designer.metadata.runtime.api;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.teiid.core.designer.TeiidDesignerException;
import org.teiid.core.designer.util.CoreArgCheck;
import org.teiid.core.designer.util.CoreStringUtil;
import org.teiid.core.designer.util.FileUtil;
/**
* @since 8.0
*/
public class MetadataSourceUtil {
public static String getFileContentAsString( String path,
MetadataSource iss ) throws TeiidDesignerException {
File f = iss.getFile(path);
if (f == null) {
return null;
}
try {
return FileUtil.readSafe(f);
} catch (IOException e) {
throw new TeiidDesignerException(e, "MetadataSourceUtil.ioExceptionConvertingFileToString");
}
}
/**
* @throws TeiidDesignerException
* @see org.teiid.designer.core.index.IndexSelector#getFileContent(java.lang.String, java.lang.String[],
* java.lang.String[])
* @since 4.2
*/
public static InputStream getFileContent( final String path,
MetadataSource iss,
final String[] tokens,
final String[] tokenReplacements ) throws TeiidDesignerException {
CoreArgCheck.isNotNull(tokens);
CoreArgCheck.isNotNull(tokenReplacements);
CoreArgCheck.isEqual(tokens.length, tokenReplacements.length);
String fileContents = getFileContentAsString(path, iss);
if (fileContents != null) {
for (int i = 0; i < tokens.length; i++) {
final String token = tokens[i];
final String tokenReplacement = tokenReplacements[i];
fileContents = CoreStringUtil.replaceAll(fileContents, token, tokenReplacement);
}
return new ByteArrayInputStream(fileContents.getBytes());
}
return null;
}
}