text: /*=========================================================================
  
    Program:   Visualization Toolkit
    Module:    vtkUnicodeStringArray.h
  
  -------------------------------------------------------------------------
    Copyright 2008 Sandia Corporation.
    Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
    the U.S. Government retains certain rights in this software.
  -------------------------------------------------------------------------
  
    Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
    All rights reserved.
    See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
  
       This software is distributed WITHOUT ANY WARRANTY; without even
       the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
       PURPOSE.  See the above copyright notice for more information.
  
  =========================================================================*/
  
  /**
   * @class   vtkUnicodeStringArray
   * @brief   Subclass of vtkAbstractArray that holds vtkUnicodeStrings
   *
   *
   *
   * @par Thanks:
   * Developed by Timothy M. Shead (tshead@sandia.gov) at Sandia National Laboratories.
   */
  
  #ifndef vtkUnicodeStringArray_h
  #define vtkUnicodeStringArray_h
  
  #include "vtkAbstractArray.h"
  #include "vtkCommonCoreModule.h" // For export macro
  #include "vtkUnicodeString.h"    // For value type
  
  class VTK_DEPRECATED_IN_9_1_0(
    "Use vtkStringArray instead.") VTKCOMMONCORE_EXPORT vtkUnicodeStringArray
    : public vtkAbstractArray
  {
  public:
    static vtkUnicodeStringArray* New();
    static vtkUnicodeStringArray* ExtendedNew();
    vtkTypeMacro(vtkUnicodeStringArray, vtkAbstractArray);
    void PrintSelf(ostream& os, vtkIndent indent) override;
  
    vtkTypeBool Allocate(vtkIdType sz, vtkIdType ext = 1000) override;
    void Initialize() override;
    int GetDataType() const override;
    int GetDataTypeSize() const override;
    int GetElementComponentSize() const override;
    void SetNumberOfTuples(vtkIdType number) override;
    void SetTuple(vtkIdType i, vtkIdType j, vtkAbstractArray* source) override;
    void InsertTuple(vtkIdType i, vtkIdType j, vtkAbstractArray* source) override;
    void InsertTuples(vtkIdList* dstIds, vtkIdList* srcIds, vtkAbstractArray* source) override;
    void InsertTuples(
      vtkIdType dstStart, vtkIdType n, vtkIdType srcStart, vtkAbstractArray* source) override;
    vtkIdType InsertNextTuple(vtkIdType j, vtkAbstractArray* source) override;
    void* GetVoidPointer(vtkIdType id) override;
    void DeepCopy(vtkAbstractArray* da) override;
    void InterpolateTuple(
      vtkIdType i, vtkIdList* ptIndices, vtkAbstractArray* source, double* weights) override;
    void InterpolateTuple(vtkIdType i, vtkIdType id1, vtkAbstractArray* source1, vtkIdType id2,
      vtkAbstractArray* source2, double t) override;
    void Squeeze() override;
    vtkTypeBool Resize(vtkIdType numTuples) override;
    void SetVoidArray(void* array, vtkIdType size, int save) override;
    void SetVoidArray(void* array, vtkIdType size, int save, int deleteMethod) override;
    void SetArrayFreeFunction(void (*callback)(void*)) override;
    unsigned long GetActualMemorySize() const override; // in bytes
    int IsNumeric() const override;
    VTK_NEWINSTANCE vtkArrayIterator* NewIterator() override;
    vtkVariant GetVariantValue(vtkIdType idx) override;
    vtkIdType LookupValue(vtkVariant value) override;
    void LookupValue(vtkVariant value, vtkIdList* ids) override;
  
    void SetVariantValue(vtkIdType idx, vtkVariant value) override;
    void InsertVariantValue(vtkIdType idx, vtkVariant value) override;
    void DataChanged() override;
    void ClearLookup() override;
  
    vtkIdType InsertNextValue(const vtkUnicodeString&);
    void InsertValue(vtkIdType idx, const vtkUnicodeString&); // Ranged checked
    void SetValue(vtkIdType i, const vtkUnicodeString&);      // Not ranged checked
    vtkUnicodeString& GetValue(vtkIdType i);
  
    void InsertNextUTF8Value(const char*);
    void SetUTF8Value(vtkIdType i, const char*);
    const char* GetUTF8Value(vtkIdType i);
  
  protected:
    vtkUnicodeStringArray();
    ~vtkUnicodeStringArray() override;
  
  private:
    vtkUnicodeStringArray(const vtkUnicodeStringArray&) = delete;
    void operator=(const vtkUnicodeStringArray&) = delete;
  
    class Implementation;
    Implementation* Internal;
  };
  
  #endif
  
  // VTK-HeaderTest-Exclude: vtkUnicodeStringArray.h
  