// Path: src/main/java/net/trustyuri/AbstractTrustyUriModule.java
// public abstract class AbstractTrustyUriModule implements TrustyUriModule {
// 
// 	private final String pattern;
// 
// 	/**
// 	 * Initializes this abstract class.
// 	 */
// 	public AbstractTrustyUriModule() {
// 		pattern = ".*[^A-Za-z0-9\\-_]" + getModuleId() + "[A-Za-z0-9\\-_]{" + getDataPartLength() + "}";
// 	}
// 
// 	public boolean matches(IRI uri) {
// 		return uri.stringValue().matches(pattern);
// 	}
// 
// }
// 
// Path: src/main/java/net/trustyuri/TrustyUriResource.java
// public class TrustyUriResource {
// 
// 	private String filename;
// 	private String mimetype;
// 	private InputStream in;
// 	private String artifactCode;
// 	private boolean compressed;
// 
// 	public TrustyUriResource(String mimetype, File file, String hash) throws IOException {
// 		init(file.toString(), mimetype, new FileInputStream(file), hash);
// 	}
// 
// 	public TrustyUriResource(String mimetype, File file) throws IOException {
// 		String n = file.toString();
// 		String ac = TrustyUriUtils.getArtifactCode(n);
// 		init(n, mimetype, new FileInputStream(file), ac);
// 	}
// 
// 	public TrustyUriResource(File file, String artifactCode) throws IOException {
// 		String n = file.toString();
// 		init(n, TrustyUriUtils.getMimetype(n), new FileInputStream(file), artifactCode);
// 	}
// 
// 	public TrustyUriResource(File file) throws IOException {
// 		String n = file.toString();
// 		String ac = TrustyUriUtils.getArtifactCode(n);
// 		init(n, TrustyUriUtils.getMimetype(n), new FileInputStream(file), ac);
// 	}
// 
// 	public TrustyUriResource(String mimetype, URL url, String artifactCode) throws IOException {
// 		URLConnection conn = url.openConnection();
// 		init(url.toString(), mimetype, conn.getInputStream(), artifactCode);
// 	}
// 
// 	public TrustyUriResource(String mimetype, URL url) throws IOException {
// 		String n = url.toString();
// 		URLConnection conn = url.openConnection();
// 		String ac = TrustyUriUtils.getArtifactCode(n);
// 		init(n, mimetype, conn.getInputStream(), ac);
// 	}
// 
// 	public TrustyUriResource(URL url, String artifactCode) throws IOException {
// 		URLConnection conn = url.openConnection();
// 		init(url.toString(), conn.getContentType(), conn.getInputStream(), artifactCode);
// 	}
// 
// 	public TrustyUriResource(URL url) throws IOException {
// 		String n = url.toString();
// 		URLConnection conn = url.openConnection();
// 		String ac = TrustyUriUtils.getArtifactCode(n);
// 		init(n, conn.getContentType(), conn.getInputStream(), ac);
// 	}
// 
// 	private void init(String filename, String mimetype, InputStream in, String artifactCode) throws IOException {
// 		if (filename.matches(".*\\.(gz|gzip)")) {
// 			this.in = new GZIPInputStream(in);
// 		} else {
// 			this.in = in;
// 		}
// 		this.filename = filename;
// 		this.mimetype = mimetype;
// 		this.artifactCode = artifactCode;
// 	}
// 
// 	public String getFilename() {
// 		return filename;
// 	}
// 
// 	public String getMimetype() {
// 		return mimetype;
// 	}
// 
// 	public InputStream getInputStream() {
// 		return in;
// 	}
// 
// 	public InputStreamReader getInputStreamReader() {
// 		return new InputStreamReader(in, Charset.forName("UTF-8"));
// 	}
// 
// 	public String getArtifactCode() {
// 		return artifactCode;
// 	}
// 
// 	public boolean isCompressed() {
// 		return compressed;
// 	}
// 
// 	public String getModuleId() {
// 		return TrustyUriUtils.getModuleId(artifactCode);
// 	}
// 
// 	public RDFFormat getFormat(RDFFormat defaultFormat) {
// 		Optional<RDFFormat> format = Rio.getParserFormatForMIMEType(getMimetype());
// 		if (!format.isPresent()) {
// 			format = Rio.getParserFormatForFileName(getFilename());
// 		}
// 		if (format.isPresent()) {
// 			return format.get();
// 		}
// 		return defaultFormat;
// 	}
// 
// }


import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import net.trustyuri.AbstractTrustyUriModule;
import net.trustyuri.TrustyUriResource;
package net.trustyuri.file;



public class FileModule extends AbstractTrustyUriModule {

	public static final String MODULE_ID = "FA";

	@Override
	public String getModuleId() {
		return MODULE_ID;
	}

	@Override
	public String getAlgorithmId() {
		return "sha-256";
	}

	@Override
// Path: src/main/java/net/trustyuri/AbstractTrustyUriModule.java
// public abstract class AbstractTrustyUriModule implements TrustyUriModule {
// 
// 	private final String pattern;
// 
// 	/**
// 	 * Initializes this abstract class.
// 	 */
// 	public AbstractTrustyUriModule() {
// 		pattern = ".*[^A-Za-z0-9\\-_]" + getModuleId() + "[A-Za-z0-9\\-_]{" + getDataPartLength() + "}";
// 	}
// 
// 	public boolean matches(IRI uri) {
// 		return uri.stringValue().matches(pattern);
// 	}
// 
// }
// 
// Path: src/main/java/net/trustyuri/TrustyUriResource.java
// public class TrustyUriResource {
// 
// 	private String filename;
// 	private String mimetype;
// 	private InputStream in;
// 	private String artifactCode;
// 	private boolean compressed;
// 
// 	public TrustyUriResource(String mimetype, File file, String hash) throws IOException {
// 		init(file.toString(), mimetype, new FileInputStream(file), hash);
// 	}
// 
// 	public TrustyUriResource(String mimetype, File file) throws IOException {
// 		String n = file.toString();
// 		String ac = TrustyUriUtils.getArtifactCode(n);
// 		init(n, mimetype, new FileInputStream(file), ac);
// 	}
// 
// 	public TrustyUriResource(File file, String artifactCode) throws IOException {
// 		String n = file.toString();
// 		init(n, TrustyUriUtils.getMimetype(n), new FileInputStream(file), artifactCode);
// 	}
// 
// 	public TrustyUriResource(File file) throws IOException {
// 		String n = file.toString();
// 		String ac = TrustyUriUtils.getArtifactCode(n);
// 		init(n, TrustyUriUtils.getMimetype(n), new FileInputStream(file), ac);
// 	}
// 
// 	public TrustyUriResource(String mimetype, URL url, String artifactCode) throws IOException {
// 		URLConnection conn = url.openConnection();
// 		init(url.toString(), mimetype, conn.getInputStream(), artifactCode);
// 	}
// 
// 	public TrustyUriResource(String mimetype, URL url) throws IOException {
// 		String n = url.toString();
// 		URLConnection conn = url.openConnection();
// 		String ac = TrustyUriUtils.getArtifactCode(n);
// 		init(n, mimetype, conn.getInputStream(), ac);
// 	}
// 
// 	public TrustyUriResource(URL url, String artifactCode) throws IOException {
// 		URLConnection conn = url.openConnection();
// 		init(url.toString(), conn.getContentType(), conn.getInputStream(), artifactCode);
// 	}
// 
// 	public TrustyUriResource(URL url) throws IOException {
// 		String n = url.toString();
// 		URLConnection conn = url.openConnection();
// 		String ac = TrustyUriUtils.getArtifactCode(n);
// 		init(n, conn.getContentType(), conn.getInputStream(), ac);
// 	}
// 
// 	private void init(String filename, String mimetype, InputStream in, String artifactCode) throws IOException {
// 		if (filename.matches(".*\\.(gz|gzip)")) {
// 			this.in = new GZIPInputStream(in);
// 		} else {
// 			this.in = in;
// 		}
// 		this.filename = filename;
// 		this.mimetype = mimetype;
// 		this.artifactCode = artifactCode;
// 	}
// 
// 	public String getFilename() {
// 		return filename;
// 	}
// 
// 	public String getMimetype() {
// 		return mimetype;
// 	}
// 
// 	public InputStream getInputStream() {
// 		return in;
// 	}
// 
// 	public InputStreamReader getInputStreamReader() {
// 		return new InputStreamReader(in, Charset.forName("UTF-8"));
// 	}
// 
// 	public String getArtifactCode() {
// 		return artifactCode;
// 	}
// 
// 	public boolean isCompressed() {
// 		return compressed;
// 	}
// 
// 	public String getModuleId() {
// 		return TrustyUriUtils.getModuleId(artifactCode);
// 	}
// 
// 	public RDFFormat getFormat(RDFFormat defaultFormat) {
// 		Optional<RDFFormat> format = Rio.getParserFormatForMIMEType(getMimetype());
// 		if (!format.isPresent()) {
// 			format = Rio.getParserFormatForFileName(getFilename());
// 		}
// 		if (format.isPresent()) {
// 			return format.get();
// 		}
// 		return defaultFormat;
// 	}
// 
// }


// Path: src/main/java/net/trustyuri/file/FileModule.java
import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import net.trustyuri.AbstractTrustyUriModule;
import net.trustyuri.TrustyUriResource;

package net.trustyuri.file;



public class FileModule extends AbstractTrustyUriModule {

	public static final String MODULE_ID = "FA";

	@Override
	public String getModuleId() {
		return MODULE_ID;
	}

	@Override
	public String getAlgorithmId() {
		return "sha-256";
	}

	@Override
	public int getDataPartLength() {