This file is indexed.

/usr/include/ITK-4.5/itkCSVArray2DDataObject.h is in libinsighttoolkit4-dev 4.5.0-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/*=========================================================================
 *
 *  Copyright Insight Software Consortium
 *
 *  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.txt
 *
 *  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.
 *
 *=========================================================================*/

#ifndef __itkCSVArray2DDataObject_h
#define __itkCSVArray2DDataObject_h

#include "itkObjectFactory.h"
#include "itkDataObject.h"
#include "itkArray2D.h"
#include "itkMacro.h"
#include <vector>

namespace itk
{
/** \class CSVArray2DDataObject
 * \brief Stores parsed data from csv files.
 *
 * CSVArray2DDataObject contains methods for accessing data from the
 * Array2D object. It is used in the CSVFileToArray2DReader class for storing
 * parsed data. The CSVArray2DDataObject comprises of an Array2D object
 * and two std string vectors for storing row and column headers. Individual
 * rows, columns and data fields can be accessed either by the names of the
 * headers or by indices. There are also some mutator methods that can be used
 * to modify values in the Array2D object as well as PushBack functions for
 * pushing column and row headers into their respective vectors.
 *
 * \ingroup ITKIOCSV
 */

template <typename TData>
class CSVArray2DDataObject:public DataObject
{
public:
  /* Standard class typedefs */
  typedef CSVArray2DDataObject        Self;
  typedef DataObject                  SuperClass;
  typedef SmartPointer<Self>          Pointer;
  typedef SmartPointer<const Self>    ConstPointer;

  /** Standard New method. */
  itkNewMacro(Self);

  /** Run-time type information (and related methods). */
  itkTypeMacro(Self,Superclass);

  /* Vector typedefs. */
  typedef typename std::vector<TData>              NumericVectorType;
  typedef typename std::vector<std::string>        StringVectorType;

  /** Typedef for the Array2D object. */
  typedef typename itk::Array2D<TData>  MatrixType;

  /** Set macros */
  itkSetMacro(HasColumnHeaders,bool);
  itkSetMacro(HasRowHeaders,bool);
  itkBooleanMacro(HasColumnHeaders);
  itkBooleanMacro(HasRowHeaders);

  /** Get macros for Column and Row headers. */
  itkGetConstMacro(HasColumnHeaders, bool);
  itkGetConstMacro(HasRowHeaders, bool);

  /** Get macro for the matrix. */
  itkGetMacro(Matrix,MatrixType);

  /** Returns the Column Headers. */
  StringVectorType GetColumnHeaders() const;

  /** Returns the Row Headers. */
  StringVectorType GetRowHeaders() const;

  /** Returns a Row index by name. */
  unsigned int GetRowIndexByName(const std::string &) const;

  /** Returns a Column index by name. */
  unsigned int GetColumnIndexByName(const std::string &) const;

  /** Returns a row. Input to the method is a row header string. */
  NumericVectorType GetRow(const std::string &) const;

  /** Returns a Row. Input to the method is a row index. */
  NumericVectorType GetRow(const unsigned int & ) const;

  /** Returns a Column. Input to the method is a column header string. */
  NumericVectorType GetColumn(const std::string & ) const;

  /** Get Column method. Input to the method is a column index. */
  NumericVectorType GetColumn(const unsigned int &) const;

  /** Method to access a data field from the Array2D object. Inputs are row and
  *  column header strings in that order. */
  TData GetData(const std::string &, const std::string &) const;

  /** Method to access a data field from the Array2D object. Inputs are row and
  *  column indices in that order. */
  TData GetData(const unsigned int &, const unsigned int &) const;

  /** Method to access a data field from a particular column. Inputs are the
  *  column header string and the row index. */
  TData GetColumnData(const std::string &, const unsigned int &) const;

  /** Method to access a data field from a particular row. Inputs are the row
  *  header string and the column index. */
  TData GetRowData(const std::string &, const unsigned int &) const;

  /** Method to access a data field from the Array2D object using the ()
  *  operator.Inputs are the row and column header strings in that order. */
  TData operator()(const std::string &, const std::string &) const;

  /** Method to access a data field from the Array2D object using the ()
  *  operator. Inputs are the row and column indices in that order. */
  TData operator()(const unsigned int &, const unsigned int &) const;

  /** Method to set the size of the Array2D object. */
  void SetMatrixSize(unsigned int, unsigned int);

  /** Method to fill the Array2D object with a value. */
  void FillMatrix(TData value);

  /** Method to set the Array2D object with data at particular row and column
  *  indices. */
  void SetMatrixData(unsigned int, unsigned int, TData);

  /** Method to add a row header to the vector of row headers. */
  void RowHeadersPushBack(const std::string &);

  /** Method to add a column header to the vector of column headers. */
  void ColumnHeadersPushBack(const std::string &);

  /** Method to erase the first column header if it is the name of the table. */
  void EraseFirstColumnHeader();

protected:

  CSVArray2DDataObject();
  virtual ~CSVArray2DDataObject() {}
  /** Print method */
  void PrintSelf(std::ostream & os, Indent indent) const;

private:
  MatrixType             m_Matrix;
  StringVectorType       m_ColumnHeaders;
  StringVectorType       m_RowHeaders;
  bool                   m_HasRowHeaders;
  bool                   m_HasColumnHeaders;

  CSVArray2DDataObject(const Self &); //purposely not implemented
  void operator=(const Self &);       //purposely not implemented
};

} //end namespace itk

#ifndef ITK_MANUAL_INSTANTIATION
#include "itkCSVArray2DDataObject.hxx"
#endif

#endif