package er.attachment.model;
import java.io.File;
import er.extensions.foundation.ERXFileUtilities;
/**
* <div class="en">
* ERPendingAttachment is just a convenience wrapper for tracking
* uploaded file state for later passing into an attachment processor.
* </div>
*
* <div class="ja">
* ERPendingAttachment はファイル・アップロード・ステータスを調べるための簡単なラッパーです。
* </div>
*
* @author mschrag
*/
public class ERPendingAttachment {
private File _uploadedFile;
private String _recommendedFilePath;
private String _mimeType;
private String _configurationName;
private String _ownerID;
private int _width;
private int _height;
private boolean _pendingDelete;
/**
* <div class="en">
* Constructs an ERPendingAttachment.
* </div>
*
* <div class="ja">
* コンストラクター
* </div>
*
* @param uploadedFile <div class="en">the uploaded temporary file (which will be deleted at the end)</div>
* <div class="ja">アップロードする一時的ファイル(最後には削除される)</div>
*/
public ERPendingAttachment(File uploadedFile) {
this(uploadedFile, uploadedFile.getName(), null, null, null);
}
/**
* <div class="en">
* Constructs an ERPendingAttachment.
* </div>
*
* <div class="ja">
* コンストラクター
* </div>
*
* @param uploadedFile <div class="en">the uploaded temporary file (which will be deleted at the end)</div>
* <div class="ja">アップロードする一時的ファイル(最後には削除される)</div>
* @param recommendedFilePath <div class="en">the path recommended by the user during import</div>
* <div class="ja">ユーザによる希望のファイル・パス</div>
*/
public ERPendingAttachment(File uploadedFile, String recommendedFilePath) {
this(uploadedFile, recommendedFilePath, null, null, null);
}
/**
* <div class="en">
* Constructs an ERPendingAttachment.
* </div>
*
* <div class="ja">
* コンストラクター
* </div>
*
* @param uploadedFile <div class="en">the uploaded temporary file (which will be deleted at the end)</div>
* <div class="ja">アップロードする一時的ファイル(最後には削除される)</div>
* @param recommendedFilePath <div class="en">the path recommended by the user during import</div>
* <div class="ja">ユーザによる希望のファイル・パス</div>
* @param mimeType <div class="en">the mimeType to use (null = guess based on file extension)</div>
* <div class="ja">使用する mimeType (null = ファイル拡張子で自動認識)</div>
*/
public ERPendingAttachment(File uploadedFile, String recommendedFilePath, String mimeType) {
this(uploadedFile, recommendedFilePath, mimeType, null, null);
}
/**
* <div class="en">
* Constructs an ERPendingAttachment.
* </div>
*
* <div class="ja">
* コンストラクター
* </div>
*
* @param uploadedFile <div class="en">the uploaded temporary file (which will be deleted at the end)</div>
* <div class="ja">アップロードする一時的ファイル(最後には削除される)</div>
* @param recommendedFilePath <div class="en">the path recommended by the user during import</div>
* <div class="ja">ユーザによる希望のファイル・パス</div>
* @param mimeType <div class="en">the mimeType to use (null = guess based on file extension)</div>
* <div class="ja">使用する mimeType (null = ファイル拡張子で自動認識)</div>
* @param configurationName <div class="en">the name of the configuration settings to use for this processor (see top level docs)</div>
* <div class="ja">定義設定の名称</div>
* @param ownerID <div class="en">an arbitrary string that represents the ID of the "owner" of this thumbnail (Person.primaryKey, for instance)</div>
* <div class="ja">サムナイルの「owner」を持つ表記文字列 (例えば、Person.primaryKey)</div>
*/
public ERPendingAttachment(File uploadedFile, String recommendedFilePath, String mimeType, String configurationName, String ownerID) {
this(uploadedFile, recommendedFilePath, mimeType, -1, -1, configurationName, ownerID);
}
/**
* <div class="en">
* Constructs an ERPendingAttachment.
* </div>
*
* <div class="ja">
* コンストラクター
* </div>
*
* @param uploadedFile <div class="en">the uploaded temporary file (which will be deleted at the end)</div>
* <div class="ja">アップロードする一時的ファイル(最後には削除される)</div>
* @param recommendedFilePath <div class="en">the path recommended by the user during import</div>
* <div class="ja">ユーザによる希望のファイル・パス</div>
* @param mimeType <div class="en">the mimeType to use (null = guess based on file extension)</div>
* <div class="ja">使用する mimeType (null = ファイル拡張子で自動認識)</div>
* @param width <div class="en">the desired width of the attachment</div>
* <div class="ja">アタッチメントの希望幅</div>
* @param height <div class="en">the desired height of the attachment</div>
* <div class="ja">アタッチメントの希望高</div>
* @param configurationName <div class="en">the name of the configuration settings to use for this processor (see top level docs)</div>
* <div class="ja">定義設定の名称</div>
* @param ownerID <div class="en">an arbitrary string that represents the ID of the "owner" of this thumbnail (Person.primaryKey, for instance)</div>
* <div class="ja">サムナイルの「owner」を持つ表記文字列 (例えば、Person.primaryKey)</div>
*/
public ERPendingAttachment(File uploadedFile, String recommendedFilePath, String mimeType, int width, int height, String configurationName, String ownerID) {
_uploadedFile = uploadedFile;
if (recommendedFilePath == null) {
_recommendedFilePath = _uploadedFile.getName();
}
else {
_recommendedFilePath = recommendedFilePath;
}
_width = width;
_height = height;
_mimeType = mimeType;
_configurationName = configurationName;
_ownerID = ownerID;
_pendingDelete = true;
}
/**
* <div class="en">
* Returns the uploaded temporary file (which will be deleted at the end).
* </div>
*
* <div class="ja">
* 一時的のアップロード・ファイルを戻します。(最後には削除される)
* </div>
*
* @return <div class="en">the uploaded temporary file</div>
* <div class="ja">一時的のアップロード・ファイル</div>
*/
public File uploadedFile() {
return _uploadedFile;
}
/**
* <div class="en">
* Sets the uploaded temporary file (which will be deleted at the end).
* </div>
*
* <div class="ja">
* 一時的のアップロード・ファイルをセットします。(最後には削除される)
* </div>
*
* @param uploadedFile <div class="en">the uploaded temporary file</div>
* <div class="ja">一時的のアップロード・ファイル</div>
*/
public void setUploadedFile(File uploadedFile) {
_uploadedFile = uploadedFile;
}
/**
* <div class="en">
* Returns the path recommended by the user during import.
* </div>
*
* <div class="ja">
* ユーザによる希望のファイル・パスを戻します。
* </div>
*
* @return <div class="en">the path recommended by the user during import</div>
* <div class="ja">ユーザによる希望のファイル・パス</div>
*/
public String recommendedFilePath() {
return _recommendedFilePath;
}
/**
* <div class="en">
* Sets the path recommended by the user during import.
* </div>
*
* <div class="ja">
* ユーザによる希望のファイル・パスをセットします。
* </div>
*
* @param recommendedFilePath <div class="en">the path recommended by the user during import</div>
* <div class="ja">ユーザによる希望のファイル・パス</div>
*/
public void setRecommendedFilePath(String recommendedFilePath) {
_recommendedFilePath = recommendedFilePath;
}
/**
* <div class="en">
* Returns the cleansed file name recommended by the user during import.
* </div>
*
* <div class="ja">
* ユーザによる希望のファイル名を戻します。
* </div>
*
* @return <div class="en">the cleansed file name recommended by the user during import</div>
* <div class="ja">ユーザによる希望のファイル名</div>
*/
public String recommendedFileName() {
return ERXFileUtilities.fileNameFromBrowserSubmittedPath(_recommendedFilePath);
}
/**
* <div class="en">
* Returns the mime type (or null if there isn't an explicit one) for this file.
* </div>
*
* <div class="ja">
* このファイルの mime type (指定が無い場合には null) を戻します。
* </div>
*
* @return <div class="en">the mime type (or null if there isn't an explicit one) for this file</div>
* <div class="ja">このファイルの mime type (指定が無い場合には null)</div>
*/
public String mimeType() {
return _mimeType;
}
/**
* <div class="en">
* Sets the mime type (or null if there isn't an explicit one) for this file.
* </div>
*
* <div class="ja">
* このファイルの mime type (指定が無い場合には null) をセットします。
* </div>
*
* @param mimeType <div class="en">the mime type (or null if there isn't an explicit one) for this file</div>
* <div class="ja">このファイルの mime type (指定が無い場合には null)</div>
*/
public void setMimeType(String mimeType) {
_mimeType = mimeType;
}
/**
* <div class="en">
* Returns the name of the configuration settings to use for this upload.
* </div>
*
* <div class="ja">
* このアップロードに使用する定義ファイル名を戻します。
* </div>
*
* @return <div class="en">the name of the configuration settings to use for this upload</div>
* <div class="ja">このアップロードに使用する定義ファイル名</div>
*/
public String configurationName() {
return _configurationName;
}
/**
* <div class="en">
* Sets the name of the configuration settings to use for this upload.
* </div>
*
* <div class="ja">
* このアップロードに使用する定義ファイル名をセットします。
* </div>
*
* @param configurationName <div class="en">the name of the configuration settings to use for this upload</div>
* <div class="ja">このアップロードに使用する定義ファイル名</div>
*/
public void setConfigurationName(String configurationName) {
_configurationName = configurationName;
}
/**
* <div class="en">
* Returns the arbitrary string that represents the ID of the "owner" of this attachment (Person.primaryKey, for instance).
* </div>
*
* <div class="ja">
* 「owner」を持つ表記文字列 (例えば、Person.primaryKey) を戻します。
* </div>
*
* @return <div class="en">the arbitrary string that represents the ID of the "owner" of this attachment (Person.primaryKey, for instance)</div>
* <div class="ja">「owner」を持つ表記文字列 (例えば、Person.primaryKey)</div>
*/
public String ownerID() {
return _ownerID;
}
/**
* <div class="en">
* Sets the arbitrary string that represents the ID of the "owner" of this attachment (Person.primaryKey, for instance).
* </div>
*
* <div class="ja">
* 「owner」を持つ表記文字列 (例えば、Person.primaryKey) をセットします。
* </div>
*
* @param ownerID <div class="en">the arbitrary string that represents the ID of the "owner" of this attachment</div>
* <div class="ja">「owner」を持つ表記文字列 (例えば、Person.primaryKey)</div>
*/
public void setOwnerID(String ownerID) {
_ownerID = ownerID;
}
/**
* <div class="en">
* Sets whether or not this attachment should be deleted after import.
* </div>
*
* <div class="ja">
* インポート後にアタッチメントを削除するかどうかをセットします。
* </div>
*
* @param pendingDelete <div class="en">whether or not this attachment should be deleted after import</div>
* <div class="ja">インポート後にアタッチメントを削除するかどうか</div>
*/
public void setPendingDelete(boolean pendingDelete) {
_pendingDelete = pendingDelete;
}
/**
* <div class="en">
* Returns whether or not this attachment should be deleted after import.
* </div>
*
* <div class="ja">
* インポート後にアタッチメントを削除するかどうかを戻します。
* </div>
*
* @return <div class="en">whether or not this attachment should be deleted after import</div>
* <div class="ja">インポート後にアタッチメントを削除するかどうか</div>
*/
public boolean isPendingDelete() {
return _pendingDelete;
}
/**
* <div class="en">
* Sets the desired width of this attachment (or -1 to not specify).
* </div>
*
* <div class="ja">
* アタッチメントの希望幅をセットします。 (又は -1 は未設定)
* </div>
*
* @param width <div class="en">the desired width of this attachment</div>
* <div class="ja">アタッチメントの希望幅</div>
*/
public void setWidth(int width) {
_width = width;
}
/**
* <div class="en">
* Returns the desired width of this attachment.
* </div>
*
* <div class="ja">
* アタッチメントの希望幅を戻します。
* </div>
*
* @return <div class="en">the desired width of this attachment</div>
* <div class="ja">アタッチメントの希望幅</div>
*/
public int width() {
return _width;
}
/**
* <div class="en">
* Sets the desired height of this attachment (or -1 to not specify).
* </div>
*
* <div class="ja">
* アタッチメントの希望高をセットします。 (又は -1 は未設定)
* </div>
*
* @param height <div class="en">the desired height of this attachment</div>
* <div class="ja">アタッチメントの希望高</div>
*/
public void setHeight(int height) {
_height = height;
}
/**
* <div class="en">
* Returns the desired height of this attachment.
* </div>
*
* <div class="ja">
* アタッチメントの希望高を戻します。
* </div>
*
* @return <div class="en">the desired height of this attachment</div>
* <div class="ja">アタッチメントの希望高</div>
*/
public int height() {
return _height;
}
@Override
public String toString() {
return "[ERPendingAttachment: file = " + _uploadedFile + "]";
}
}