/** * Creates a new URL based source builder from a given URL. A URL based source is either * interpreted as {@link Source#hasBytes() binary} or {@link Source#hasCharacters() character} * source depending on the {@link LanguageInfo#getDefaultMimeType() default MIME type} of the * language, the {@link SourceBuilder#content(ByteSequence) contents} or the specified * {@link SourceBuilder#mimeType(String) MIME type}. A language may be detected from an existing * file using {@link #findLanguage(URL)}. * <p> * Example usage: {@link SourceSnippets#fromURL} * * @param language the language id, must not be <code>null</code> * @param url the URL to use and load, must not be <code>null</code> * @since 1.0 */ public static SourceBuilder newBuilder(String language, URL url) { return EMPTY.new LiteralBuilder(language, url); }
/** * Creates a new file based source builder from a given file. A file based source is either * interpreted as {@link Source#hasBytes() binary} or {@link Source#hasCharacters() character} * source depending on the {@link LanguageInfo#getDefaultMimeType() default MIME type} of the * language, the {@link SourceBuilder#content(ByteSequence) contents} or the specified * {@link SourceBuilder#mimeType(String) MIME type}. A language may be detected from an existing * file using {@link #findLanguage(TruffleFile)}. * <p> * Example usage: {@link SourceSnippets#fromFile} * * @param language the language id, must not be <code>null</code> * @param file the file to use and load, must not be <code>null</code> * @since 1.0 */ public static SourceBuilder newBuilder(String language, TruffleFile file) { return EMPTY.new LiteralBuilder(language, file); }
/** * Creates a new character based source from a character sequence. The given characters must not * mutate after they were accessed for the first time. * <p> * Example usage: {@link SourceSnippets#fromAString} * * @param language the language id, must not be <code>null</code> * @param characters the character sequence or string, must not be <code>null</code> * @param name the name of the source, if <code>null</code> then <code>"Unnamed"</code> will be * used as name. * @since 1.0 */ public static LiteralBuilder newBuilder(String language, CharSequence characters, String name) { return EMPTY.new LiteralBuilder(language, characters).name(name); }
/** * Creates a new byte based source from a byte sequence. The given bytes must not mutate after * they were accessed for the first time. * <p> * Example usage: {@link SourceSnippets#fromBytes} * * @param language the language id, must not be <code>null</code> * @param bytes the byte sequence or string, must not be <code>null</code> * @param name the name of the source, if <code>null</code> then <code>"Unnamed"</code> will be * used as name. * @since 1.0 */ public static LiteralBuilder newBuilder(String language, ByteSequence bytes, String name) { return EMPTY.new LiteralBuilder(language, bytes).name(name); }
static SourceBuilder newBuilder(String language, File source) { return EMPTY.new LiteralBuilder(language, source); }
/** * Creates new character based source from a reader. * * <p> * Example usage: {@link SourceSnippets#fromReader} * * @since 1.0 */ public static SourceBuilder newBuilder(String language, Reader source, String name) { return EMPTY.new LiteralBuilder(language, source).name(name); }