FileSource.java
/*
* Created on 2007/06/08
* Copyright (C) 2007 Koga Laboratory. All rights reserved.
*
*/
package org.mklab.tool.control.system.source;
import java.io.IOException;
import org.mklab.nfc.matrix.ComplexNumericalMatrix;
import org.mklab.nfc.matrix.MatrixFileType;
import org.mklab.nfc.matrix.RealNumericalMatrix;
import org.mklab.nfc.scalar.ComplexNumericalScalar;
import org.mklab.nfc.scalar.RealNumericalScalar;
/**
* ファイルからの入力器を表わすクラスです。
*
* @author koga
* @version $Revision: 1.8 $, 2007/06/08
* @param <RS> type of real scalar
* @param <RM> type of real matrix
* @param <CS> type of complex scalar
* @param <CM> type of complex matrix
*/
public class FileSource<RS extends RealNumericalScalar<RS,RM,CS,CM>, RM extends RealNumericalMatrix<RS,RM,CS,CM>, CS extends ComplexNumericalScalar<RS,RM,CS,CM>, CM extends ComplexNumericalMatrix<RS,RM,CS,CM>> extends ImportSource<RS,RM,CS,CM> {
/** ファイル名 */
private String fileName;
/** ファイルの形式 */
private MatrixFileType fileType = MatrixFileType.MAT_DATA;
/**
* 新しく生成された<code>FileSource</code>オブジェクトを初期化します。
* @param sunit unit of scalar
*/
public FileSource(RS sunit) {
super(sunit);
}
/**
* @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;
}
FileSource<RS,RM,CS,CM> castedObj = (FileSource<RS,RM,CS,CM>)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;
}
}