DoubleFileSource.java
/*
* Created on 2007/06/08
* Copyright (C) 2007 Koga Laboratory. All rights reserved.
*
*/
package org.mklab.tool.control.system.source;
import java.io.File;
import java.io.IOException;
import org.mklab.nfc.matrix.DoubleMatrix;
import org.mklab.nfc.matrix.MatrixFileType;
import org.mklab.nfc.matx.MatxMatrix;
/**
* ファイルからの入力器を表わすクラスです。
*
* @author koga
* @version $Revision: 1.8 $, 2007/06/08
*/
public class DoubleFileSource extends DoubleImportSource {
/** ファイル名 */
private String fileName;
/** ファイルの形式 */
private MatrixFileType fileType = MatrixFileType.MAT_DATA;
/**
* 新しく生成された<code>FileSource</code>オブジェクトを初期化します。
*/
public DoubleFileSource() {
super();
}
/**
* @see org.mklab.tool.control.system.source.Importer#close()
*/
public void close() {
//
}
/**
* @see org.mklab.tool.control.system.source.Importer#importData()
*/
public void importData() throws IOException {
if (isActive()) {
return;
}
if (this.fileName == null || this.fileName.length() == 0) {
return;
}
if (this.fileType == MatrixFileType.MAT_DATA) {
setData((DoubleMatrix)MatxMatrix.readMatFormat(new File(this.fileName)));
} else if (this.fileType == MatrixFileType.MX_DATA) {
setData((DoubleMatrix)MatxMatrix.readMxFormat(new File(this.fileName)));
} else if (this.fileType == MatrixFileType.CSV_DATA) {
setData(DoubleMatrix.readCsvFormat(new File(this.fileName)));
} else {
throw new IOException(Messages.getString("FileSource.0")); //$NON-NLS-1$
}
}
/**
* @see org.mklab.tool.control.system.source.Importer#open()
*/
public void open() {
//
}
// /**
// * @see org.mklab.tool.control.system.source.ImportSource#initialize()
// */
// @Override
// public void initialize() {
// super.initialize();
//
// try {
// importData();
// } catch (IOException e) {
// throw new SystemOperatorException(e);
// }
// }
/**
* ファイル名を設定します。
*
* @param fileName ファイル名
*/
public void setFileName(final String fileName) {
if (this.fileName == null || this.fileName.equals(fileName) == false) {
this.fileName = fileName;
setData(null);
}
}
/**
* ファイル名を返します。
*
* @return ファイル名
*/
public String getFileName() {
return this.fileName;
}
/**
* ファイルの形式を設定します。
*
* @param fileType ファイルの形式
*/
public void setFileType(final MatrixFileType fileType) {
this.fileType = fileType;
}
/**
* ファイルの形式を返します。
*
* @return ファイルの形式
*/
public MatrixFileType getFileType() {
return this.fileType;
}
/**
* @see org.mklab.tool.control.system.SystemOperator#equals(java.lang.Object)
*/
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!super.equals(o)) {
return false;
}
if (o == null) {
return false;
}
if (o.getClass() != getClass()) {
return false;
}
DoubleFileSource castedObj = (DoubleFileSource)o;
return ((this.fileName == null ? castedObj.fileName == null : this.fileName.equals(castedObj.fileName)) && (this.fileType == null ? castedObj.fileType == null : this.fileType
.equals(castedObj.fileType)));
}
/**
* @see org.mklab.tool.control.system.SystemOperator#hashCode()
*/
@Override
public int hashCode() {
int hashCode = super.hashCode();
hashCode = 31 * hashCode + (this.fileName == null ? 0 : this.fileName.hashCode());
hashCode = 31 * hashCode + (this.fileType == null ? 0 : this.fileType.hashCode());
return hashCode;
}
}