16    class IData : 
public ITensorData {
 
   18        using TreatAs = fish::TreatAs;
 
   19        using Component = fish::Component;
 
   20        using Quantity = fish::Quantity;
 
   22        shared::Signal<bool> activeChanged;
 
   23        shared::Signal<int>  indexChanged;
 
   24        shared::Signal<const string &> indexNameChanged;
 
   25        shared::Signal<int>  componentChanged;
 
   26        shared::Signal<bool> componentActiveChanged;
 
   27        shared::Signal<int>  treatAsChanged;
 
   28        shared::Signal<bool> treatAsActiveChanged;
 
   29        shared::Signal<int>  quantityChanged;
 
   30        shared::Signal<bool> quantityActiveChanged;
 
   31        shared::Signal<int>  extraChanged; 
 
   32        shared::Signal<bool> extraActiveChanged;
 
   33        shared::Signal<bool> stressChanged;
 
   34        shared::Signal<bool> stressActiveChanged;
 
   35        shared::Signal<bool> logChanged;
 
   36        shared::Signal<>     changed;
 
   38        virtual int  getIndex() 
const=0;
 
   39        virtual int  getComponent() 
const=0;
 
   40        virtual int  getTreatAs() 
const=0;
 
   41        virtual int  getQuantity() 
const=0;
 
   42        virtual int  getExtra() 
const=0; 
 
   43        virtual bool getStress() 
const=0;
 
   44        virtual bool getLog() 
const=0;
 
   46        virtual string     getName() 
const=0;
 
   47        virtual string     getSpecificName() 
const=0;
 
   49        virtual bool getActive() 
const=0;
 
   50        virtual bool getComponentActive() 
const=0;
 
   51        virtual bool getTreatAsActive() 
const=0;
 
   52        virtual bool getQuantityActive() 
const=0;
 
   53        virtual bool getExtraActive() 
const=0;
 
   54        virtual bool getStressActive() 
const=0;
 
   58        virtual std::vector<TreatAs> getAllTreatAs() 
const=0;
 
   61        virtual void destroy()=0;
 
   62        virtual StringList getComponentNames() 
const=0;
 
   64        virtual StringList getQuantityKeywords() 
const=0;
 
   69        virtual void save(Archive2 &a) 
const=0;
 
   70        virtual bool restore(Archive2 &a,uint64 label)=0;
 
   71        virtual void remap(Archive2 &a)=0;
 
   73        virtual bool parseTreatAs(
IParse &par)=0;
 
   74        virtual bool parse(
IParse &par)=0;
 
   75        virtual string getIndexKeyword() 
const=0;
 
   76        virtual StringList getCommandSwitches() 
const=0;
 
   79        virtual void setActive(
bool b)=0;
 
   80        virtual void setIndex(
int i)=0;
 
   81        virtual void setIndex(
const string &s)=0;
 
   82        virtual void setIndexFromKeyword(
int i)=0;
 
   83        virtual void setComponent(
int i)=0;
 
   84        virtual void setTreatAs(
int i)=0;
 
   85        virtual void setQuantity(
int i)=0;
 
   86        virtual void setExtra(
int i)=0; 
 
   87        virtual void setStress(
bool b)=0;
 
   88        virtual void setLog(
bool b)=0;