#pragma once
#include <string>
class Visitor;
#include "Identifier.h"
class Sensor;
#include "dll_macro.h"

struct innerParameter;
class DLL_API Parameter {
public:
    Parameter(innerParameter* inner);
    ~Parameter();
    bool isNull() const;
    bool operator==(const Parameter& other) const;
    float getDefaultValue();
    std::string getDescription();
    Identifier getIdentifier();
    bool isDefault();
    std::string getName();
    Sensor getSensor();
    float getValue();
    void Accept(Visitor* visitor);
    void Traverse(Visitor* visitor);
private:
    innerParameter* inner;
};
