package com.vitco.util.misc;
import javax.swing.*;
import javax.xml.transform.stream.StreamSource;
import java.awt.*;
import java.io.InputStream;
import java.net.URL;
/**
* Wraps the ClassLoader interface to access resources.
*/
public class SaveResourceLoader {
private final String resourceName;
private final URL resource;
public final boolean error;
public SaveResourceLoader(String resourceName) {
this.resourceName = resourceName;
resource = ClassLoader.getSystemResource(resourceName);
error = resource == null;
}
public Image asImage() {
return Toolkit.getDefaultToolkit().getImage(resource);
}
public ImageIcon asIconImage() {
return new ImageIcon(asImage());
}
public StreamSource asStreamSource() {
InputStream stream = asInputStream();
return new StreamSource(stream);
}
public InputStream asInputStream() {
InputStream stream = ClassLoader.getSystemResourceAsStream(resourceName);
if (stream == null) {
System.err.println("Resource \"" + resourceName + "\" is undefined.");
}
return stream;
}
public String asString() {
java.util.Scanner s = new java.util.Scanner(asInputStream()).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}
public String[] asLines() {
return asString().split("\n");
}
}