package amidst.gui;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import amidst.logging.Log;
import amidst.resources.ResourceLoader;
public class License {
private InputStream fileStream;
private String name;
private String contents;
private boolean loaded = false;
public License(String name, String path) {
this.name = name;
try {
fileStream = ResourceLoader.getResourceStream(path);
} catch (NullPointerException e) {
Log.w("Error finding license for: " + name + " at path: " + path);
e.printStackTrace();
}
}
public String getName() {
return name;
}
public void load() {
if (loaded)
return;
BufferedReader fileReader = new BufferedReader(new InputStreamReader(fileStream));
BufferedReader bufferedReader = new BufferedReader(fileReader);
try {
StringBuilder stringBuilder = new StringBuilder();
String line = bufferedReader.readLine();
while (line != null) {
stringBuilder.append(line);
stringBuilder.append('\n');
line = bufferedReader.readLine();
}
contents = stringBuilder.toString();
loaded = true;
} catch (IOException e) {
Log.w("Unable to read file: " + name + ".");
e.printStackTrace();
} finally {
try {
bufferedReader.close();
} catch (IOException e) {
Log.w("Unable to close BufferedReader for: " + name + ".");
e.printStackTrace();
}
}
}
public String getContents() {
return contents;
}
public boolean isLoaded() {
return loaded;
}
@Override
public String toString() {
return name;
}
}