![]() |
LuciadCPillar 2024.1.04
|
Allows the incremental creation of a Feature object. More...
#include <luciad/models/features/Feature.h>
Public Member Functions | |
Builder (Builder &&other) noexcept | |
Builder (const Builder &other) | |
~Builder () | |
Feature | build () |
Build the feature using the settings configured. More... | |
Builder & | dataType (DataType dataType) |
Configures the dataType of the feature being built. More... | |
Builder & | id (FeatureId id) |
Configures the id of the feature being built. More... | |
Builder & | operator= (Builder other) noexcept |
Builder & | resetId () |
Resets the id. More... | |
template<typename T > | |
Builder & | resetValue (const DataPropertyPath &propertyPath) |
Resets the value associated with the given property. More... | |
template<typename T > | |
Builder & | value (const DataPropertyPath &propertyPath, T value) |
Sets the value associated with the given property. More... | |
Allows the incremental creation of a Feature object.
Make sure to
Otherwise a LogicException will be thrown.
luciad::Feature::Builder::Builder | ( | const Builder & | other | ) |
|
noexcept |
luciad::Feature::Builder::~Builder | ( | ) |
Feature luciad::Feature::Builder::build | ( | ) |
Build the feature using the settings configured.
After this method is invoked once, this builder can no longer be used.
LogicException | if the id or dataType are not configured |
Configures the id of the feature being built.
A feature id should be unique across a model.
This method is not mandatory, though Features in a model must have an id. It is allowed to temporarily have features without id, for example during Feature creation. As soon as such a temporary Feature is added
to a model, it must be assigned
an id
though.
When no id is set, Feature::getId
will throw an exception.
id | the id |
Builder & luciad::Feature::Builder::resetId | ( | ) |
Resets the id.
Calling this method will cause the built Feature to have no id, thus throwing an exception when calling Feature::getId
.
Features in a model must have an id. It is allowed to temporarily have features without id, for example during Feature creation. As soon as such a temporary Feature is added
to a model, it must be assigned
an id
though.
Note that for a newly created Feature::Builder using the Feature::newBuilder() method, the id will be empty by default. This method is less useful in that case. It is mainly useful when using the Feature::asBuilder() method.
Builder & luciad::Feature::Builder::resetValue | ( | const DataPropertyPath & | propertyPath | ) |
Resets the value associated with the given property.
Calling this method will cause the built Feature to return an empty optional for the given property.
Note that for a newly created Feature::Builder using the Feature::newBuilder() method, all values will be empty by default. This method is less useful in that case. It is mainly useful when using the Feature::asBuilder() method.
T | the supported types are bool , int32_t , int64_t , float , double , std::string and std::shared_ptr<luciad::Geometry> |
propertyPath | the property for which to reset the value |
InvalidArgumentException | when the dataType has not been configured yet, the property is not of a known type, or if it doesn't exist in the DataType. |
Builder & luciad::Feature::Builder::value | ( | const DataPropertyPath & | propertyPath, |
T | value | ||
) |
Sets the value associated with the given property.
T | the supported types are bool , int32_t , int64_t , float , double , std::string and std::shared_ptr<luciad::Geometry> |
propertyPath | the property for which to set the value |
value | the value |
InvalidArgumentException | when the dataType has not been configured yet, the property is not of a known type, or if it doesn't exist in the DataType. |