/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.kernel.repository.model;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
/**
* @author Adolfo PĂ©rez
*/
public class FileContentReference {
public static final FileContentReference fromBytes(
long fileEntryId, String sourceFileName, String extension,
String mimeType, byte[] bytes) {
return fromInputStream(
fileEntryId, sourceFileName, extension, mimeType,
new ByteArrayInputStream(bytes), bytes.length);
}
public static final FileContentReference fromBytes(
String sourceFileName, String extension, String mimeType,
byte[] bytes) {
return fromInputStream(
0, sourceFileName, extension, mimeType,
new ByteArrayInputStream(bytes), bytes.length);
}
public static final FileContentReference fromFile(
long fileEntryId, String sourceFileName, String extension,
String mimeType, File file) {
return new FileContentReference(
fileEntryId, sourceFileName, extension, mimeType, file, null, 0);
}
public static final FileContentReference fromFile(
String sourceFileName, String extension, String mimeType, File file) {
return fromFile(0, sourceFileName, extension, mimeType, file);
}
public static final FileContentReference fromInputStream(
long fileEntryId, String sourceFileName, String extension,
String mimeType, InputStream inputStream, long size) {
return new FileContentReference(
fileEntryId, sourceFileName, extension, mimeType, null, inputStream,
size);
}
public static final FileContentReference fromInputStream(
String sourceFileName, String extension, String mimeType,
InputStream inputStream, long size) {
return fromInputStream(
0, sourceFileName, extension, mimeType, inputStream, size);
}
public String getExtension() {
return _extension;
}
public long getFileEntryId() {
return _fileEntryId;
}
public String getMimeType() {
return _mimeType;
}
public long getSize() {
if (_inputStream != null) {
return _size;
}
if (_file != null) {
return _file.length();
}
return 0;
}
public String getSourceFileName() {
return _sourceFileName;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #FileContentReference(long,
* String, String, String, File, InputStream, long)}
*/
@Deprecated
protected FileContentReference(
String sourceFileName, String extension, String mimeType, File file,
InputStream inputStream, long size) {
this(0, sourceFileName, extension, mimeType, file, inputStream, size);
}
private FileContentReference(
long fileEntryId, String sourceFileName, String extension,
String mimeType, File file, InputStream inputStream, long size) {
_fileEntryId = fileEntryId;
_sourceFileName = sourceFileName;
_extension = extension;
_mimeType = mimeType;
_file = file;
_inputStream = inputStream;
_size = size;
}
private final String _extension;
private final File _file;
private final long _fileEntryId;
private final InputStream _inputStream;
private final String _mimeType;
private final long _size;
private final String _sourceFileName;
}