18 using TypePtr = std::shared_ptr<Type>;
42 const std::string& pre,
43 const std::string& post)
const = 0;
74 virtual const std::string
75 key(int64_t fieldindex)
const = 0;
80 haskey(
const std::string& key)
const = 0;
84 virtual const std::vector<std::string>
Abstract superclass of all high level types (flat hierarchy).
Definition: Type.h:23
bool parameter_isstring(const std::string &key) const
Returns true if the parameter associated with key is a string; false otherwise.
util::Parameters parameters_
See parameters.
Definition: Type.h:223
bool parameters_empty() const
Internal function to determine if there are no parameters except __categorical__.
virtual const ContentPtr empty() const =0
Returns an empty array (Content) with this type.
bool parameter_equals(const std::string &key, const std::string &value) const
Returns true if the parameter associated with key exists and is equal to value; false otherwise.
const std::string parameter(const std::string &key) const
Custom parameters inherited from the Content that this type describes.
const std::string tostring() const
Returns a string representation of the type as a Datashape or its typestr overload (if non-empty).
virtual const TypePtr shallow_copy() const =0
Copies this Type without copying any hierarchically nested types.
const std::string compare(TypePtr supertype)
Returns a string showing a side-by-side comparison of two types, highlighting differences.
bool get_typestr(std::string &output) const
Internal function that replaces output in-place with the typestr and returns true if the typestr is n...
virtual const std::string key(int64_t fieldindex) const =0
The record name associated with a given field index or the tuple index as a string (e....
virtual bool equal(const TypePtr &other, bool check_parameters) const =0
Returns true if this type is equal to other; false otherwise.
virtual int64_t numfields() const =0
The number of fields in the first nested tuple or records or -1 if this array does not contain a Reco...
std::string wrap_categorical(const std::string &output) const
Internal function that wraps output with categorical[type= and ] if __categorical__ is true; passes t...
bool parameters_equal(const util::Parameters &other, bool check_all) const
Returns true if all parameters of this type are equal to the other parameters.
virtual std::string tostring_part(const std::string &indent, const std::string &pre, const std::string &post) const =0
Internal function to build an output string for tostring.
virtual int64_t fieldindex(const std::string &key) const =0
The position of a tuple or record key name if this array contains a RecordType.
const std::string parameter_asstring(const std::string &key) const
Returns the parameter associated with key as a string if parameter_isstring; raises an error otherwis...
const std::string typestr() const
Optional string that overrides the default string representation (missing if empty).
void setparameter(const std::string &key, const std::string &value)
Assign one parameter to this type (in-place).
void setparameters(const util::Parameters ¶meters)
Assign one parameter for this type (in-place).
bool parameter_isname(const std::string &key) const
Returns true if the parameter associated with key is a string that matches [A-Za-z_][A-Za-z_0-9]*; fa...
Type(const util::Parameters ¶meters, const std::string &typestr)
Called by all subclass constructors; assigns parameters and typestr upon construction.
virtual const std::vector< std::string > keys() const =0
A list of RecordType keys or an empty list if this type does not contain a RecordType.
virtual ~Type()
Virtual destructor acts as a first non-inline virtual function that determines a specific translation...
const std::string string_parameters() const
Internal function to format parameters as part of the tostring string.
const std::string typestr_
See typestr.
Definition: Type.h:225
const util::Parameters parameters() const
Get one parameter from this type.
virtual bool haskey(const std::string &key) const =0
Returns true if the type contains a RecordType with the specified key; false otherwise.
#define LIBAWKWARD_EXPORT_SYMBOL
Definition: common.h:45
std::map< std::string, std::string > Parameters
Definition: util.h:165
Definition: BitMaskedArray.h:15
std::shared_ptr< Content > ContentPtr
Definition: Content.h:15
std::shared_ptr< Type > TypePtr
Definition: Content.h:23