Salome HOME
AttributesService
[modules/gde.git] / projects / GDE_API_CPP / api / src / AttributeGroup.hpp
diff --git a/projects/GDE_API_CPP/api/src/AttributeGroup.hpp b/projects/GDE_API_CPP/api/src/AttributeGroup.hpp
new file mode 100644 (file)
index 0000000..dac7a5a
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef GDE_ATTRIBUTE_GROUP_HPP
+#define GDE_ATTRIBUTE_GROUP_HPP
+
+#include "Attribute.hpp"
+
+#include <string>
+#include <vector>
+
+namespace gde {
+
+  class AttributeGroup {
+    friend class AttributesService;
+    friend class GDESession;
+
+  public:
+    AttributeGroup(const std::vector<Attribute>& attributes=std::vector<Attribute>())
+      : _id(0), _attributes(attributes)
+    {}
+    ~AttributeGroup() {}
+
+    inline int getId() const { return _id; }
+    inline void setId(int id) { this->_id = id; }
+
+    inline const std::vector<Attribute>& getAttributes() const { return _attributes; }
+    inline void setAttributes(const std::vector<Attribute>& attributes) { this->_attributes = attributes; }
+
+  private:
+    AttributeGroup(int id, const std::vector<Attribute>& attributes=std::vector<Attribute>())
+      : _id(id), _attributes(attributes)
+    {}
+    //AttributeGroup(const AttributeGroup&); // non copyable
+    //AttributeGroup& operator=(const AttributeGroup&); // non copyable
+
+  private:
+    int _id;
+    std::vector<Attribute> _attributes;
+  };
+
+};
+
+#endif