/** * (C) Copyright IBM Corp. 2010, 2015 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *  */ package com.ibm.bi.dml.lops; import com.ibm.bi.dml.hops.HopsException; /** * class to maintain output parameters for a lop. * */ public class OutputParameters { public enum Format { TEXT, BINARY, MM, CSV }; private boolean _blocked = true; private long _num_rows = -1; private long _num_cols = -1; private long _nnz = -1; private long _num_rows_in_block = -1; private long _num_cols_in_block = -1; private String _file_name = null; private String _file_label = null; Format matrix_format = Format.BINARY; public String getFile_name() { return _file_name; } public void setFile_name(String fileName) { _file_name = fileName; } public String getLabel() { return _file_label; } public void setLabel(String label) { _file_label = label; } public void setDimensions(long rows, long cols, long rows_per_block, long cols_per_block, long nnz) throws HopsException { _num_rows = rows; _num_cols = cols; _nnz = nnz; _num_rows_in_block = rows_per_block; _num_cols_in_block = cols_per_block; if ( _num_rows_in_block == 0 && _num_cols_in_block == 0 ) { _blocked = false; } else if (_num_rows_in_block == -1 && _num_cols_in_block == -1) { _blocked = false; } else if ( _num_rows_in_block > 0 && _num_cols_in_block > 0 ) { _blocked = true; } else { throw new HopsException("In OutputParameters Lop, Invalid values for blocking dimensions: [" + _num_rows_in_block + "," + _num_cols_in_block +"]."); } } public Format getFormat() { return matrix_format; } public void setFormat(Format fmt) { matrix_format = fmt; } public boolean isBlocked() { return _blocked; } public void setBlocked(boolean blocked) { _blocked = blocked; } public long getNumRows() { return _num_rows; } public void setNumRows(long rows) { _num_rows = rows; } public long getNumCols() { return _num_cols; } public void setNumCols(long cols) { _num_cols = cols; } public Long getNnz() { return _nnz; } public void setNnz(long nnz) { _nnz = nnz; } public long getRowsInBlock() { return _num_rows_in_block; } public void setRowsInBlock(long rows_in_block) { _num_rows_in_block = rows_in_block; } public long getColsInBlock() { return _num_cols_in_block; } public void setColsInBlock(long cols_in_block) { _num_cols_in_block = cols_in_block; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("rows=" + getNumRows() + Lop.VALUETYPE_PREFIX); sb.append("cols=" + getNumCols() + Lop.VALUETYPE_PREFIX); sb.append("nnz=" + getNnz() + Lop.VALUETYPE_PREFIX); sb.append("rowsInBlock=" + getRowsInBlock() + Lop.VALUETYPE_PREFIX); sb.append("colsInBlock=" + getColsInBlock() + Lop.VALUETYPE_PREFIX); sb.append("isBlockedRepresentation=" + isBlocked() + Lop.VALUETYPE_PREFIX); sb.append("format=" + getFormat() + Lop.VALUETYPE_PREFIX); sb.append("label=" + getLabel() + Lop.VALUETYPE_PREFIX); sb.append("filename=" + getFile_name()); return sb.toString(); } }