- /**
- * @file collection.hpp
- * @brief J Library Collection ヘッダファイル。
- * @copyright 2001 - 2024 Nomura Kei
- * @depends
- * j/lang/iterable.hpp
- */
- #ifndef J_UTIL_COLLECTION_HPP
- #define J_UTIL_COLLECTION_HPP
-
- #include <j/lang/iterable.hpp>
-
- namespace j
- {
- namespace util
- {
-
- template <typename T>
- class Collection : public j::lang::Iterable<T>
- {
- public:
- virtual ~Collection() = default;
- virtual int size() const = 0;
- virtual bool isEmpty() const = 0;
- virtual bool contains(const T &t) const = 0;
- virtual bool add(const T &t) = 0;
- virtual void clear() = 0;
- virtual bool remove(const T &t) = 0;
- };
-
- } // namespace util
- } // namespace j
-
- #endif // J_UTIL_COLLECTION_HPP