diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-06-06 09:42:40 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-06-07 09:50:23 +0200 |
commit | a4e2a5ab0dd234c13152770094a9f7dc9ffb1eb4 (patch) | |
tree | b594084422f03666a74b031f180337d49530835e /document | |
parent | fd196155bc398c1e06dfe3f2756ff0bcf817e891 (diff) |
Fieldvalue does not require DataType
Diffstat (limited to 'document')
6 files changed, 36 insertions, 34 deletions
diff --git a/document/src/vespa/document/fieldvalue/fieldvalue.h b/document/src/vespa/document/fieldvalue/fieldvalue.h index 81e207bc31a..998673ddf8d 100644 --- a/document/src/vespa/document/fieldvalue/fieldvalue.h +++ b/document/src/vespa/document/fieldvalue/fieldvalue.h @@ -12,10 +12,11 @@ #pragma once #include "fieldvaluevisitor.h" -#include <vespa/document/datatype/datatype.h> #include <vespa/document/util/xmlserializable.h> #include <vespa/vespalib/util/polymorphicarrays.h> #include <vespa/vespalib/objects/cloneable.h> +#include <vespa/vespalib/objects/identifiable.h> +#include <vespa/document/base/fieldpath.h> #include <map> namespace vespalib { @@ -25,6 +26,7 @@ namespace vespalib { namespace document { class ByteBuffer; +class DataType; class FieldValue : public vespalib::Identifiable { diff --git a/document/src/vespa/document/fieldvalue/predicatefieldvalue.cpp b/document/src/vespa/document/fieldvalue/predicatefieldvalue.cpp index 8e98ebc4c4e..8e963f75f5d 100644 --- a/document/src/vespa/document/fieldvalue/predicatefieldvalue.cpp +++ b/document/src/vespa/document/fieldvalue/predicatefieldvalue.cpp @@ -1,6 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "predicatefieldvalue.h" +#include <vespa/document/datatype/datatype.h> #include <vespa/document/predicate/predicate.h> #include <vespa/document/predicate/predicate_printer.h> #include <vespa/vespalib/data/slime/inserter.h> @@ -67,4 +68,19 @@ void PredicateFieldValue::print(std::ostream& out, bool, const std::string&) con out << PredicatePrinter::print(*_slime) << "\n"; } +const DataType * +PredicateFieldValue::getDataType() const { + return DataType::PREDICATE; +} + +bool +PredicateFieldValue::hasChanged() const { + return _altered; +} + +FieldValue * +PredicateFieldValue::clone() const { + return new PredicateFieldValue(*this); +} + } // namespace document diff --git a/document/src/vespa/document/fieldvalue/predicatefieldvalue.h b/document/src/vespa/document/fieldvalue/predicatefieldvalue.h index b38f9e5dcc1..74dc0d11322 100644 --- a/document/src/vespa/document/fieldvalue/predicatefieldvalue.h +++ b/document/src/vespa/document/fieldvalue/predicatefieldvalue.h @@ -2,7 +2,6 @@ #pragma once -#include <memory> #include "fieldvalue.h" namespace vespalib { @@ -25,20 +24,20 @@ public: void accept(FieldValueVisitor &visitor) override { visitor.visit(*this); } void accept(ConstFieldValueVisitor &visitor) const override { visitor.visit(*this); } - virtual FieldValue *clone() const override { return new PredicateFieldValue(*this); } - virtual int compare(const FieldValue &rhs) const override; + FieldValue *clone() const override; + int compare(const FieldValue &rhs) const override; - virtual void printXml(XmlOutputStream &out) const override; - virtual void print(std::ostream &out, bool verbose, const std::string &indent) const override; + void printXml(XmlOutputStream &out) const override; + void print(std::ostream &out, bool verbose, const std::string &indent) const override; - virtual const DataType *getDataType() const override { return DataType::PREDICATE; } - virtual bool hasChanged() const override { return _altered; } + const DataType *getDataType() const override; + bool hasChanged() const override; const vespalib::Slime &getSlime() const { return *_slime; } - virtual FieldValue &assign(const FieldValue &rhs) override; + FieldValue &assign(const FieldValue &rhs) override; -DECLARE_IDENTIFIABLE(PredicateFieldValue); + DECLARE_IDENTIFIABLE(PredicateFieldValue); }; } // namespace document diff --git a/document/src/vespa/document/fieldvalue/tensorfieldvalue.cpp b/document/src/vespa/document/fieldvalue/tensorfieldvalue.cpp index 03b7d50c1c1..93ec934968d 100644 --- a/document/src/vespa/document/fieldvalue/tensorfieldvalue.cpp +++ b/document/src/vespa/document/fieldvalue/tensorfieldvalue.cpp @@ -1,6 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "tensorfieldvalue.h" +#include <vespa/document/datatype/datatype.h> #include <vespa/eval/tensor/tensor.h> #include <ostream> #include <cassert> diff --git a/document/src/vespa/document/select/node.h b/document/src/vespa/document/select/node.h index c56203da76c..6ccc1fa5dec 100644 --- a/document/src/vespa/document/select/node.h +++ b/document/src/vespa/document/select/node.h @@ -12,7 +12,6 @@ #pragma once -#include <string> #include "resultlist.h" #include "context.h" @@ -33,15 +32,11 @@ public: typedef std::shared_ptr<Node> SP; Node(const vespalib::stringref & name) : _name(name), _parentheses(false) {} - virtual ~Node() {} + ~Node() override {} void setParentheses() { _parentheses = true; } - void - clearParentheses() - { - _parentheses = false; - } + void clearParentheses() { _parentheses = false; } bool hadParentheses() const { return _parentheses; } diff --git a/document/src/vespa/document/select/result.h b/document/src/vespa/document/select/result.h index ae7b0fdcabf..02d8d61700d 100644 --- a/document/src/vespa/document/select/result.h +++ b/document/src/vespa/document/select/result.h @@ -19,7 +19,6 @@ #pragma once -#include <string> #include <vespa/document/util/printable.h> namespace document { @@ -41,16 +40,9 @@ public: const Result& operator!() const; static const Result& get(bool b) { return (b ? True : False); } + static uint32_t enumRange() { return 3u; } - static uint32_t - enumRange(void) - { - return 3u; - } - - uint32_t - toEnum(void) const - { + uint32_t toEnum() const { if (this == &Result::Invalid) return 0u; if (this == &Result::False) @@ -60,9 +52,7 @@ public: abort(); } - static const Result & - fromEnum(uint32_t val) - { + static const Result &fromEnum(uint32_t val) { if (val == 0u) return Result::Invalid; if (val == 1u) @@ -74,10 +64,9 @@ public: private: Result(); - - // Singletons are not copyable - Result(const Result&); - Result& operator=(const Result&); + // Singletons are not copyable + Result(const Result&) = delete; + Result& operator=(const Result&) = delete; }; } // select |