VTK  9.3.20240419
vtkSortFileNames.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
22 #ifndef vtkSortFileNames_h
23 #define vtkSortFileNames_h
24 
25 #include "vtkIOCoreModule.h" // For export macro
26 #include "vtkObject.h"
27 
28 VTK_ABI_NAMESPACE_BEGIN
29 class vtkStringArray;
30 
31 // this is a helper class defined in the .cxx file
32 class vtkStringArrayVector;
33 
34 class VTKIOCORE_EXPORT vtkSortFileNames : public vtkObject
35 {
36 public:
37  vtkTypeMacro(vtkSortFileNames, vtkObject);
38  void PrintSelf(ostream& os, vtkIndent indent) override;
39  static vtkSortFileNames* New();
40 
42 
49  vtkSetMacro(Grouping, vtkTypeBool);
50  vtkGetMacro(Grouping, vtkTypeBool);
51  vtkBooleanMacro(Grouping, vtkTypeBool);
53 
55 
63  vtkSetMacro(NumericSort, vtkTypeBool);
64  vtkGetMacro(NumericSort, vtkTypeBool);
65  vtkBooleanMacro(NumericSort, vtkTypeBool);
67 
69 
73  vtkSetMacro(IgnoreCase, vtkTypeBool);
74  vtkGetMacro(IgnoreCase, vtkTypeBool);
75  vtkBooleanMacro(IgnoreCase, vtkTypeBool);
77 
79 
84  vtkSetMacro(SkipDirectories, vtkTypeBool);
85  vtkGetMacro(SkipDirectories, vtkTypeBool);
86  vtkBooleanMacro(SkipDirectories, vtkTypeBool);
88 
90 
94  vtkGetObjectMacro(InputFileNames, vtkStringArray);
96 
101 
109  virtual int GetNumberOfGroups();
110 
116  virtual vtkStringArray* GetNthGroup(int i);
117 
123  virtual void Update();
124 
125 protected:
127  ~vtkSortFileNames() override;
128 
133 
135 
138  vtkStringArrayVector* Groups;
139 
143  virtual void Execute();
144 
148  virtual void SortFileNames(vtkStringArray* input, vtkStringArray* output);
149 
153  virtual void GroupFileNames(vtkStringArray* input, vtkStringArrayVector* output);
154 
155 private:
156  vtkSortFileNames(const vtkSortFileNames&) = delete;
157  void operator=(const vtkSortFileNames&) = delete;
158 };
159 
160 VTK_ABI_NAMESPACE_END
161 #endif
a simple class to control print indentation
Definition: vtkIndent.h:108
abstract base class for most VTK objects
Definition: vtkObject.h:162
Group and sort a set of filenames.
vtkTypeBool SkipDirectories
vtkTypeBool Grouping
void SetInputFileNames(vtkStringArray *input)
Set a list of file names to group and sort.
static vtkSortFileNames * New()
virtual void Update()
Update the output filenames from the input filenames.
~vtkSortFileNames() override
virtual vtkStringArray * GetNthGroup(int i)
Get the Nth group of file names.
vtkTypeBool NumericSort
vtkTypeBool IgnoreCase
virtual void SortFileNames(vtkStringArray *input, vtkStringArray *output)
Sort the input string array, and append the results to the output.
virtual vtkStringArray * GetFileNames()
Get the full list of sorted filenames.
vtkStringArray * FileNames
virtual int GetNumberOfGroups()
Get the number of groups that the names were split into, if grouping is on.
virtual void GroupFileNames(vtkStringArray *input, vtkStringArrayVector *output)
Separate a string array into groups and append them to the output.
vtkTimeStamp UpdateTime
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkStringArray * InputFileNames
vtkStringArrayVector * Groups
virtual void Execute()
Fill the output.
a vtkAbstractArray subclass for strings
record modification and/or execution time
Definition: vtkTimeStamp.h:44
int vtkTypeBool
Definition: vtkABI.h:64