Module pygw.geotools.simple_feature_builder

Source code
#
# Copyright (c) 2013-2022 Contributors to the Eclipse Foundation

#
# See the NOTICE file distributed with this work for additional information regarding copyright
# ownership. All rights reserved. This program and the accompanying materials are made available
# under the terms of the Apache License, Version 2.0 which accompanies this distribution and is
# available at http://www.apache.org/licenses/LICENSE-2.0.txt
# ===============================================================================================

from pygw.config import java_pkg
from pygw.base import GeoWaveObject

from .simple_feature_type import SimpleFeatureType
from .simple_feature import SimpleFeature


class SimpleFeatureBuilder(GeoWaveObject):
    """
    Builds SimpleFeature instances for a given SimpleFeatureType.
    """

    def __init__(self, feature_type):
        """
        Constructs a new simple feature builder using the given feature type.

        Args:
            feature_type (pygw.geotools.simple_feature_type.SimpleFeatureType): The feature type of the feature.
        """
        assert isinstance(feature_type, SimpleFeatureType)
        self._feature_type = feature_type
        j_builder = java_pkg.org.geotools.feature.simple.SimpleFeatureBuilder(feature_type._java_ref)
        super().__init__(j_builder)

    def set_attr(self, descriptor, value):
        """
        Sets an attribute of the feature to the given value.

        Args:
            descriptor (str): The name or index of the attribute to set.
            value (any): The value of the attribute.
        Returns:
            This feature builder.
        """
        attr = self._feature_type.get_attribute(descriptor)
        if attr is None:
            raise SimpleFeatureBuilder.NoSuchAttributeInTypeError("No matching attribute for {}".format(descriptor))
        j_value = attr.to_java(value)
        self._java_ref.set(descriptor, j_value)
        return self

    def build(self, fid):
        """
        Constructs the configured feature.

        Args:
            fid (str): The feature ID to use.
        Returns:
            The constructed `pygw.geotools.simple_feature.SimpleFeature`.
        """
        j_feature = self._java_ref.buildFeature(str(fid))
        return SimpleFeature(self._feature_type, j_feature)

    class NoSuchAttributeInTypeError(Exception):
        """
        Error that is raised when attempting to set an attribute using a descriptor
        that does not match any of the attributes in the feature type.
        """
        pass

Classes

class SimpleFeatureBuilder (feature_type)

Builds SimpleFeature instances for a given SimpleFeatureType.

Constructs a new simple feature builder using the given feature type.

Args

feature_type : SimpleFeatureType
The feature type of the feature.
Source code
class SimpleFeatureBuilder(GeoWaveObject):
    """
    Builds SimpleFeature instances for a given SimpleFeatureType.
    """

    def __init__(self, feature_type):
        """
        Constructs a new simple feature builder using the given feature type.

        Args:
            feature_type (pygw.geotools.simple_feature_type.SimpleFeatureType): The feature type of the feature.
        """
        assert isinstance(feature_type, SimpleFeatureType)
        self._feature_type = feature_type
        j_builder = java_pkg.org.geotools.feature.simple.SimpleFeatureBuilder(feature_type._java_ref)
        super().__init__(j_builder)

    def set_attr(self, descriptor, value):
        """
        Sets an attribute of the feature to the given value.

        Args:
            descriptor (str): The name or index of the attribute to set.
            value (any): The value of the attribute.
        Returns:
            This feature builder.
        """
        attr = self._feature_type.get_attribute(descriptor)
        if attr is None:
            raise SimpleFeatureBuilder.NoSuchAttributeInTypeError("No matching attribute for {}".format(descriptor))
        j_value = attr.to_java(value)
        self._java_ref.set(descriptor, j_value)
        return self

    def build(self, fid):
        """
        Constructs the configured feature.

        Args:
            fid (str): The feature ID to use.
        Returns:
            The constructed `pygw.geotools.simple_feature.SimpleFeature`.
        """
        j_feature = self._java_ref.buildFeature(str(fid))
        return SimpleFeature(self._feature_type, j_feature)

    class NoSuchAttributeInTypeError(Exception):
        """
        Error that is raised when attempting to set an attribute using a descriptor
        that does not match any of the attributes in the feature type.
        """
        pass

Ancestors

Class variables

var NoSuchAttributeInTypeError

Error that is raised when attempting to set an attribute using a descriptor that does not match any of the attributes in the feature type.

Methods

def build(self, fid)

Constructs the configured feature.

Args

fid : str
The feature ID to use.

Returns

The constructed SimpleFeature.

Source code
def build(self, fid):
    """
    Constructs the configured feature.

    Args:
        fid (str): The feature ID to use.
    Returns:
        The constructed `pygw.geotools.simple_feature.SimpleFeature`.
    """
    j_feature = self._java_ref.buildFeature(str(fid))
    return SimpleFeature(self._feature_type, j_feature)
def set_attr(self, descriptor, value)

Sets an attribute of the feature to the given value.

Args

descriptor : str
The name or index of the attribute to set.
value : any
The value of the attribute.

Returns

This feature builder.

Source code
def set_attr(self, descriptor, value):
    """
    Sets an attribute of the feature to the given value.

    Args:
        descriptor (str): The name or index of the attribute to set.
        value (any): The value of the attribute.
    Returns:
        This feature builder.
    """
    attr = self._feature_type.get_attribute(descriptor)
    if attr is None:
        raise SimpleFeatureBuilder.NoSuchAttributeInTypeError("No matching attribute for {}".format(descriptor))
    j_value = attr.to_java(value)
    self._java_ref.set(descriptor, j_value)
    return self

Inherited members