|
91 | 91 | * |
92 | 92 | * 6. Similarly, we use the \ref DEFINE_REGISTERED_FIELD macro to define getter methods for other |
93 | 93 | * \ref AQNWB::NWB::RegisteredType "RegisteredType" objects that we own, such as a |
94 | | - * \ref AQNWB::NWB::ElectrodeTable "ElectrodeTable" that owns |
| 94 | + * \ref AQNWB::NWB::ElectrodesTable "ElectrodesTable" that owns |
95 | 95 | * predefined \ref AQNWB::NWB::VectorData "VectorData" columns: |
96 | 96 | * @code |
97 | 97 | * DEFINE_REGISTERED_FIELD(readGroupNameColumn, VectorData<std::string>, "group_name", "the name of the ElectrodeGroup") |
|
273 | 273 | * the same as the `neurodata_type`. However, in some cases this may not be possible. |
274 | 274 | * In this case, we need to use \ref REGISTER_SUBCLASS_WITH_TYPENAME macro instead of |
275 | 275 | * \ref REGISTER_SUBCLASS. E.g. using |
276 | | - * ``REGISTER_SUBCLASS_WITH_TYPENAME(ElectrodeTable, "core", "DynamicTable")``, |
| 276 | + * ``REGISTER_SUBCLASS_WITH_TYPENAME(ElectrodesTable, "core", "DynamicTable")``, |
277 | 277 | * the class will be registered in the registry, under the ``core::ElectrodesTable`` key, |
278 | 278 | * but with "DynamicTable" as the typename value and the `ElectrodesTable.getTypeName` |
279 | 279 | * automatic override returning the indicated typename instead of the classname. |
|
284 | 284 | * An example is \ref AQNWB::NWB::VectorData "VectorData" which uses a template parameter to define the |
285 | 285 | * data type of data that is manages. |
286 | 286 | * 2. A class for a modified type that does not have its own `neurodata_type` |
287 | | - * in the NWB schema. An example is `ElectrodesTable` in NWB <v2.7, which |
| 287 | + * in the NWB schema. An example is `ElectrodesTable` in NWB <v2.9, which |
288 | 288 | * did not have an assigned `neurodata_type`, but was implemented as a regular |
289 | | - * `DynamicTable`. To allow us to define a class `ElectrodeTable` to help with writing the table |
290 | | - * we can then use ``REGISTER_SUBCLASS_WITH_TYPENAME(ElectrodeTable, "core", "DynamicTable")`` |
291 | | - * in the \ref AQNWB::NWB::ElectrodeTable "ElectrodeTable" class. This ensures that the `neurodata_type` attribute is set |
292 | | - * correctly to `DynamicTable` on write instead of `ElectrodeTable`. |
| 289 | + * `DynamicTable`. To allow us to define a class `ElectrodesTable` to help with writing the table |
| 290 | + * we can then use ``REGISTER_SUBCLASS_WITH_TYPENAME(ElectrodesTable, "core", "DynamicTable")`` |
| 291 | + * in the \ref AQNWB::NWB::ElectrodesTable "ElectrodesTable" class. This ensures that the `neurodata_type` attribute is set |
| 292 | + * correctly to `DynamicTable` on write instead of `ElectrodesTable`. |
293 | 293 | * |
294 | 294 | * \subsection implement_templated_registered_type Templated RegisteredType Classes |
295 | 295 | * |
|
387 | 387 | * |
388 | 388 | * The main limitaton of the \ref REGISTER_SUBCLASS_WITH_TYPENAME approach is that on read, AqNWB |
389 | 389 | * will use the default class associated with the `neurodata_type`. E.g., in the case of |
390 | | - * the \ref AQNWB::NWB::ElectrodeTable "ElectrodeTable" class, by default the regular |
| 390 | + * the \ref AQNWB::NWB::ElectrodesTable "ElectrodesTable" class, by default the regular |
391 | 391 | * \ref AQNWB::NWB::DynamicTable "DynamicTable" class will be used since that is what |
392 | 392 | * the schema is indicating to use. Similarly, for \ref AQNWB::NWB::VectorData "VectorData" |
393 | 393 | * the default `VectorData<std::any>` will be used on read. To support reading using the |
394 | 394 | * more specific types, we can use the \ref DEFINE_REGISTERED_FIELD macro to define |
395 | 395 | * read methods that will return the approbriate type, e.g.: |
396 | 396 | * |
397 | 397 | * \code |
398 | | - * DEFINE_REGISTERED_FIELD(readElectrodeTable, |
399 | | - * ElectrodeTable, |
400 | | - * ElectrodeTable::electrodeTablePath, |
| 398 | + * DEFINE_REGISTERED_FIELD(readElectrodesTable, |
| 399 | + * ElectrodesTable, |
| 400 | + * ElectrodesTable::electrodeTablePath, |
401 | 401 | * "table with the extracellular electrodes") |
402 | 402 | * \endcode |
403 | 403 | * |
404 | | - * in \ref AQNWB::NWB::NWBFile "NWBFile" to read the \ref AQNWB::NWB::ElectrodeTable "ElectrodeTable", |
| 404 | + * in \ref AQNWB::NWB::NWBFile "NWBFile" to read the \ref AQNWB::NWB::ElectrodesTable "ElectrodesTable", |
405 | 405 | * or |
406 | 406 | * |
407 | 407 | * \code |
|
412 | 412 | * "the name of the ElectrodeGroup this electrode is a part of") |
413 | 413 | * \endcode |
414 | 414 | * |
415 | | - * in the \ref AQNWB::NWB::ElectrodeTable "ElectrodeTable" to read the `group_name` column |
| 415 | + * in the \ref AQNWB::NWB::ElectrodesTable "ElectrodesTable" to read the `group_name` column |
416 | 416 | * as `VectorData<std::string>` with the data type already specified as `std::string` at compile time. |
417 | 417 | * |
418 | 418 | * \section using_schematype_to_aqnwb Using the schematype_to_aqnwb.py Utility |
|
0 commit comments