All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.softicar.platform.common.io.resource.file.FileResource Maven / Gradle / Ivy

Go to download

The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.

There is a newer version: 50.0.0
Show newest version
package com.softicar.platform.common.io.resource.file;

import com.softicar.platform.common.io.file.FileInputStreamFactory;
import com.softicar.platform.common.io.mime.IMimeType;
import com.softicar.platform.common.io.mime.MimeType;
import com.softicar.platform.common.io.resource.IResource;
import com.softicar.platform.common.io.resource.hash.AbstractHashableResource;
import java.io.File;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.Optional;

/**
 * An {@link IResource} implementation based on a {@link File} object.
 *
 * @author Oliver Richers
 */
public class FileResource extends AbstractHashableResource {

	private final File file;
	private final MimeType mimeType;

	public FileResource(File file) {

		this(file, MimeType.getByFilenameOrDefault(file.getName()));
	}

	public FileResource(File file, MimeType mimeType) {

		this.file = file;
		this.mimeType = mimeType;
	}

	@Override
	public InputStream getResourceAsStream() {

		return FileInputStreamFactory.create(file);
	}

	@Override
	public IMimeType getMimeType() {

		return mimeType;
	}

	@Override
	public Optional getCharset() {

		return Optional.empty();
	}

	@Override
	public Optional getFilename() {

		return Optional.of(file.getName());
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy