public class TripleTable2MAT
extends java.lang.Object
三元组表是大型矩阵的一种 easy-read 的组织形式. 在大规模矩阵中它将多行多列的矩阵表转为多行少列的文本数据组织形式.
狭义的 "三元" 指行元、列元、值 三列数据, 在这里 MAT 处理广义的三元组表, 它的 "值" 可以是很多值信息.
限定符和类型 | 方法和说明 |
---|---|
TripleTable2MAT |
addField(java.lang.String fieldName,
FieldType fieldType)
添加 MAT 文件的列名及其类型
|
TripleTable2MAT |
addField(java.lang.String fieldName,
FieldType fieldType,
java.lang.Object missingValue)
添加 MAT 文件的列名及其类型
|
TripleTable2MAT |
addFields(java.util.Map<java.lang.String,FieldType> fields)
添加 MAT 文件的列名及其类型
|
TripleTable2MAT |
addFields(java.util.Map<java.lang.String,FieldType> fields,
java.util.Map<java.lang.String,java.lang.Object> missingValues)
添加 MAT 文件的列名及其类型
|
TripleTable2MAT |
addInitElement(java.lang.String element)
添加 MAT 文件的初始成员信息
|
TripleTable2MAT |
addInitElements(java.lang.Iterable<java.lang.String> elements)
添加 MAT 文件的初始成员信息
|
TripleTable2MAT |
addMeta(edu.sysu.pmglab.container.ByteCode key,
edu.sysu.pmglab.container.ByteCode value)
从外部直接注入注释字段
|
TripleTable2MAT |
addMeta(CCFMeta meta)
从外部直接注入注释字段
|
TripleTable2MAT |
addMeta(java.lang.String key,
java.lang.String value)
从外部直接注入注释字段
|
TripleTable2MAT |
addMetaLineListener(java.util.function.Consumer<edu.sysu.pmglab.container.VolumeByteStream> listener)
设置注释行数据转换器
通常用于监听注释数据, 并使用 addMeta 进行数据注入
|
TripleTable2MAT |
addRecordFilter(java.util.function.Function<IRecord,java.lang.Boolean> filter)
按照 MAT 记录进行过滤, 它在一条记录读取结束后执行过滤
|
TripleTable2MAT |
addRecordListener(java.util.function.Consumer<IRecord> recordListener)
记录映射器
在数据填充进 IRecord 之后, 根据更复杂的列元之间的相互规则重新赋予数据
|
TripleTable2MAT |
addTSVFilter(java.util.function.Function<java.util.Map<java.lang.String,edu.sysu.pmglab.container.ByteCode>,java.lang.Boolean> tsvFilter)
按照 TSV 记录进行过滤, 它在一条记录读取之前执行过滤
|
TripleTable2MAT |
addValueConverter(java.util.function.BiConsumer<java.util.Map<java.lang.String,edu.sysu.pmglab.container.ByteCode>,IRecord> converter)
添加字段转换器
|
edu.sysu.pmglab.container.File |
convert()
文件转换
|
FieldType |
getDefaultValueType()
设置默认值的类型
|
edu.sysu.pmglab.container.File |
getOutputFile()
获取输出文件对象
|
static TripleTable2MAT |
of(java.io.File inputFile)
构造器方法
|
static TripleTable2MAT |
of(java.io.File inputFile,
java.io.File outputFile)
构造器方法
|
static TripleTable2MAT |
of(java.lang.String inputFileName)
构造器方法
|
static TripleTable2MAT |
of(java.lang.String inputFileName,
java.io.File outputFileName)
构造器方法
|
TripleTable2MAT |
setAutoMeta(boolean autoMeta)
自动识别数据段模式. ## 识别为注释行, # 识别为标题行
|
TripleTable2MAT |
setDefaultValueType(FieldType defaultValueType)
设置默认的值类型
|
TripleTable2MAT |
setElementFieldIndex(int rowFieldIndex,
int columnFieldIndex)
设置行列元所在的字段索引
|
TripleTable2MAT |
setElementSep(byte elementSep)
设置不同列的元素分隔符
|
TripleTable2MAT |
setHeader(boolean noHeaderLine,
int skipLineNum,
java.lang.String validTsvStartsWith)
设置标题行的识别方式
首先通过 skipLineNums 跳过指定个数的行;
接着寻找满足 validTsvStartsWith 的行, 该行将被识别为标题行;
如果设置了 noHeaderLine, 则 inputHeaderStartsWith 被识别为数据行
|
TripleTable2MAT |
setMatrixType(MatrixType matrixType)
设置矩阵类型
|
TripleTable2MAT |
storeOriginMeta(boolean storeOriginMeta)
是否储存文件自带的 meta 信息
|
TripleTable2MAT |
throwExceptionWhenParsingFailed(boolean throwExceptionWhenParsingFailed)
当一行解析错误时抛出异常
true 时一行错误则程序结束,false 则跳过错误的行
|
java.lang.String |
toString() |
public static TripleTable2MAT of(java.lang.String inputFileName) throws java.io.IOException
inputFileName
- 输入文件名java.io.IOException
- 输入文件不存在时抛出 IO 异常public static TripleTable2MAT of(java.io.File inputFile) throws java.io.IOException
inputFile
- 输入文件对象java.io.IOException
- 输入文件不存在时抛出 IO 异常public static TripleTable2MAT of(java.lang.String inputFileName, java.io.File outputFileName) throws java.io.IOException
inputFileName
- 输入文件名outputFileName
- 输出文件名java.io.IOException
- 输入文件不存在时抛出 IO 异常public static TripleTable2MAT of(java.io.File inputFile, java.io.File outputFile) throws java.io.IOException
inputFile
- 输入文件对象outputFile
- 输出文件对象java.io.IOException
- 输入文件不存在时抛出 IO 异常public TripleTable2MAT setElementFieldIndex(int rowFieldIndex, int columnFieldIndex)
rowFieldIndex
- 行元所在的字段索引columnFieldIndex
- 列元所在的字段索引public TripleTable2MAT setDefaultValueType(FieldType defaultValueType)
defaultValueType
- 默认值类型public FieldType getDefaultValueType()
public edu.sysu.pmglab.container.File getOutputFile()
public TripleTable2MAT addInitElement(java.lang.String element)
element
- 初始成员信息public TripleTable2MAT addInitElements(java.lang.Iterable<java.lang.String> elements)
elements
- 初始成员信息public TripleTable2MAT setMatrixType(MatrixType matrixType)
matrixType
- 矩阵类型public TripleTable2MAT addField(java.lang.String fieldName, FieldType fieldType)
fieldName
- 列名fieldType
- 列类型public TripleTable2MAT addField(java.lang.String fieldName, FieldType fieldType, java.lang.Object missingValue)
fieldName
- 列名fieldType
- 列类型missingValue
- 矩阵缺失值填充public TripleTable2MAT addFields(java.util.Map<java.lang.String,FieldType> fields)
fields
- 列名及其类型public TripleTable2MAT addFields(java.util.Map<java.lang.String,FieldType> fields, java.util.Map<java.lang.String,java.lang.Object> missingValues)
fields
- 列名及其类型missingValues
- 矩阵缺失值填充public TripleTable2MAT addMeta(java.lang.String key, java.lang.String value)
key
- 注释键value
- 注释值public TripleTable2MAT addMeta(edu.sysu.pmglab.container.ByteCode key, edu.sysu.pmglab.container.ByteCode value)
key
- 注释键value
- 注释值public TripleTable2MAT setAutoMeta(boolean autoMeta)
autoMeta
- 自动设置注释字段public TripleTable2MAT addMeta(CCFMeta meta)
meta
- 注释字段前缀树public TripleTable2MAT storeOriginMeta(boolean storeOriginMeta)
storeOriginMeta
- 储存 meta 信息public TripleTable2MAT addMetaLineListener(java.util.function.Consumer<edu.sysu.pmglab.container.VolumeByteStream> listener)
listener
- 注释行数据转换器public TripleTable2MAT addValueConverter(java.util.function.BiConsumer<java.util.Map<java.lang.String,edu.sysu.pmglab.container.ByteCode>,IRecord> converter)
converter
- 字段转换函数, Entry 的 key 对应该字段的值, Record 则是当前行的记录细节public TripleTable2MAT addRecordFilter(java.util.function.Function<IRecord,java.lang.Boolean> filter)
filter
- 记录过滤器public TripleTable2MAT addTSVFilter(java.util.function.Function<java.util.Map<java.lang.String,edu.sysu.pmglab.container.ByteCode>,java.lang.Boolean> tsvFilter)
tsvFilter
- TSV 字段过滤器public TripleTable2MAT setHeader(boolean noHeaderLine, int skipLineNum, java.lang.String validTsvStartsWith)
noHeaderLine
- 无标题行模式skipLineNum
- 跳过的行数validTsvStartsWith
- 标题行以指定的字段作为开始public TripleTable2MAT setElementSep(byte elementSep)
elementSep
- 元素分隔符public TripleTable2MAT addRecordListener(java.util.function.Consumer<IRecord> recordListener)
recordListener
- 记录映射器public TripleTable2MAT throwExceptionWhenParsingFailed(boolean throwExceptionWhenParsingFailed)
throwExceptionWhenParsingFailed
- 当一行解析错误时抛出异常public edu.sysu.pmglab.container.File convert() throws java.io.IOException
java.io.IOException
- 文件读取过程中产生的 IO 异常 (包括占用、指针异常、不存在等)public java.lang.String toString()
toString
在类中 java.lang.Object