package de.unisiegen.gtitool.ui.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import de.unisiegen.gtitool.ui.logic.ConvertGrammarDialog.ConvertGrammarType;
import de.unisiegen.gtitool.ui.logic.ConvertMachineDialog.ConvertMachineType;
import de.unisiegen.gtitool.ui.logic.ConvertRegexToMachineDialog.ConvertRegexType;
import de.unisiegen.gtitool.ui.preferences.PreferenceManager;
/**
* Helper class for loading texts from files
*/
public class TextLoader
{
/**
* Loads the algorithm for a given {@link ConvertGrammarType}
*
* @param type The {@link ConvertGrammarType}
* @return The algorithm
*/
public String loadAlgorithm ( ConvertGrammarType type )
{
String filename = "/de/unisiegen/gtitool/ui/algorithms/"; //$NON-NLS-1$
filename += PreferenceManager.getInstance ().getLanguageItem ()
.getLocale ().toString ()
+ "/" + type.toString () + ".txt"; //$NON-NLS-1$ //$NON-NLS-2$
return loadTextFromFile ( filename );
}
/**
* Loads the algorithm for a given {@link ConvertMachineType}
*
* @param type The {@link ConvertMachineType}
* @return The algorithm
*/
public String loadAlgorithm ( ConvertMachineType type )
{
String filename = "/de/unisiegen/gtitool/ui/algorithms/"; //$NON-NLS-1$
filename += PreferenceManager.getInstance ().getLanguageItem ()
.getLocale ().toString ()
+ "/" + type.toString () + ".txt"; //$NON-NLS-1$ //$NON-NLS-2$
return loadTextFromFile ( filename );
}
/**
* Loads the algorithm for a given {@link ConvertRegexType}
*
* @param type The {@link ConvertRegexType}
* @return The algorithm
*/
public String loadAlgorithm ( ConvertRegexType type )
{
String filename = "/de/unisiegen/gtitool/ui/algorithms/"; //$NON-NLS-1$
filename += PreferenceManager.getInstance ().getLanguageItem ()
.getLocale ().toString ()
+ "/" + type.toString () + ".txt"; //$NON-NLS-1$ //$NON-NLS-2$
return loadTextFromFile ( filename );
}
/**
* Loads the algorithm for minimize machine
*
* @return The algorithm
*/
public String loadMinimizeAlgorithm ()
{
String filename = "/de/unisiegen/gtitool/ui/algorithms/"; //$NON-NLS-1$
filename += PreferenceManager.getInstance ().getLanguageItem ()
.getLocale ().toString ()
+ "/MINIMIZE_MACHINE.txt"; //$NON-NLS-1$
return loadTextFromFile ( filename );
}
/**
* Loads a text from a file with a given filename
*
* @param filename The filename
* @return The text
*/
private String loadTextFromFile ( String filename )
{
String text = new String ();
try
{
BufferedReader reader = new BufferedReader ( new InputStreamReader (
getClass ().getResourceAsStream ( filename ), "UTF8" ) );//$NON-NLS-1$
String input;
boolean first = true;
while ( ( input = reader.readLine () ) != null )
{
if ( !first )
{
text += "\n";//$NON-NLS-1$
}
first = false;
text += input;
}
}
catch ( IOException exc )
{
exc.printStackTrace ();
System.exit ( 1 );
}
return text;
}
}