|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
package com.github.javaparser; |
|
|
|
import java.io.File; |
|
import java.io.FileInputStream; |
|
import java.io.FileNotFoundException; |
|
import java.io.IOException; |
|
import java.io.InputStream; |
|
import java.io.Reader; |
|
import java.nio.charset.Charset; |
|
import java.nio.file.Files; |
|
import java.nio.file.Path; |
|
|
|
import static com.github.javaparser.utils.Utils.assertNotNull; |
|
|
|
|
|
|
|
|
|
*/ |
|
public final class Providers { |
|
public static final Charset UTF8 = Charset.forName("utf-8"); |
|
|
|
private Providers() { |
|
} |
|
|
|
public static Provider provider(Reader reader) { |
|
return new StreamProvider(assertNotNull(reader)); |
|
} |
|
|
|
public static Provider provider(InputStream input, Charset encoding) { |
|
assertNotNull(input); |
|
assertNotNull(encoding); |
|
try { |
|
return new StreamProvider(input, encoding.name()); |
|
} catch (IOException e) { |
|
// The only one that is thrown is UnsupportedCharacterEncodingException, |
|
|
|
throw new RuntimeException(e); |
|
} |
|
} |
|
|
|
public static Provider provider(InputStream input) { |
|
return provider(input, UTF8); |
|
} |
|
|
|
public static Provider provider(File file, Charset encoding) throws FileNotFoundException { |
|
return provider(new FileInputStream(assertNotNull(file)), assertNotNull(encoding)); |
|
} |
|
|
|
public static Provider provider(File file) throws FileNotFoundException { |
|
return provider(assertNotNull(file), UTF8); |
|
} |
|
|
|
public static Provider provider(Path path, Charset encoding) throws IOException { |
|
return provider(Files.newInputStream(assertNotNull(path)), assertNotNull(encoding)); |
|
} |
|
|
|
public static Provider provider(Path path) throws IOException { |
|
return provider(assertNotNull(path), UTF8); |
|
} |
|
|
|
public static Provider provider(String source) { |
|
return new StringProvider(assertNotNull(source)); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
public static Provider resourceProvider(ClassLoader classLoader, String pathToResource, Charset encoding) throws IOException { |
|
InputStream resourceAsStream = classLoader.getResourceAsStream(pathToResource); |
|
if (resourceAsStream == null) { |
|
throw new IOException("Cannot find " + pathToResource); |
|
} |
|
return provider(resourceAsStream, encoding); |
|
} |
|
|
|
|
|
|
|
|
|
*/ |
|
public static Provider resourceProvider(String pathToResource, Charset encoding) throws IOException { |
|
ClassLoader classLoader = Provider.class.getClassLoader(); |
|
return resourceProvider(classLoader, pathToResource, encoding); |
|
} |
|
|
|
|
|
|
|
|
|
*/ |
|
public static Provider resourceProvider(String pathToResource) throws IOException { |
|
return resourceProvider(pathToResource, UTF8); |
|
} |
|
|
|
public interface PreProcessor { |
|
Provider process(Provider innerProvider); |
|
} |
|
} |