def properties(self, key=None, version=None):
		'''
		Return all the properties associated with the current object.

		If key is set to something other than None, return only those
		properties matching key.

		By default, returns properties for the current version of
		the object, but if version is set to a value other than
		CPL.VERSION_NONE, then will return properties for that version.
		'''
		if version is None:
			version = VERSION_NONE
		vp = CPLDirect.new_std_vector_cplxx_property_entry_tp()

		ret = CPLDirect.cpl_get_properties(self.id, version,
		    key, CPLDirect.cpl_cb_collect_properties_vector, vp)
		if not CPLDirect.cpl_is_ok(ret):
			CPLDirect.delete_std_vector_cplxx_property_entry_tp(vp)
			raise Exception('Error retrieving properties: ' +
					CPLDirect.cpl_error_string(ret))

		v = CPLDirect.cpl_dereference_p_std_vector_cplxx_property_entry_t(vp)
		l = []
		for e in v:
			l.append([e.key, e.value])
		CPLDirect.delete_std_vector_cplxx_property_entry_tp(vp)
		return l
예제 #2
0
    def properties(self, key=None, version=None):
        '''
		Return all the properties associated with the current object.

		If key is set to something other than None, return only those
		properties matching key.

		By default, returns properties for the current version of
		the object, but if version is set to a value other than
		CPL.VERSION_NONE, then will return properties for that version.
		'''
        if version is None:
            version = VERSION_NONE
        vp = CPLDirect.new_std_vector_cplxx_property_entry_tp()

        ret = CPLDirect.cpl_get_properties(
            self.id, version, key, CPLDirect.cpl_cb_collect_properties_vector,
            vp)
        if not CPLDirect.cpl_is_ok(ret):
            CPLDirect.delete_std_vector_cplxx_property_entry_tp(vp)
            raise Exception('Error retrieving properties: ' +
                            CPLDirect.cpl_error_string(ret))

        v = CPLDirect.cpl_dereference_p_std_vector_cplxx_property_entry_t(vp)
        l = []
        for e in v:
            l.append([e.key, e.value])
        CPLDirect.delete_std_vector_cplxx_property_entry_tp(vp)
        return l
예제 #3
0
    def properties(self, prefix=None, key=None):
        '''
        Return all the properties associated with the current relation.

        If key is set to something other than None, return only those
        properties matching key.
        '''
        vp = CPLDirect.new_std_vector_cplxx_property_entry_tp()

        ret = CPLDirect.cpl_get_relation_properties(self.id, prefix, key,
            CPLDirect.cpl_cb_collect_properties_vector, vp)
        if not CPLDirect.cpl_is_ok(ret):
            CPLDirect.delete_std_vector_cplxx_property_entry_tp(vp)
            raise CPLException('Error retrieving properties: ' +
                    CPLDirect.cpl_error_string(ret), ret)

        v = CPLDirect.cpl_dereference_p_std_vector_cplxx_property_entry_t(vp)
        l = []
        for e in v:
            l.append([e.prefix, e.key, e.value])
        CPLDirect.delete_std_vector_cplxx_property_entry_tp(vp)
        return l
예제 #4
0
    def properties(self, prefix=None, key=None):
        '''
        Return all the properties associated with the current relation.

        If key is set to something other than None, return only those
        properties matching key.
        '''
        vp = CPLDirect.new_std_vector_cplxx_property_entry_tp()

        ret = CPLDirect.cpl_get_relation_properties(
            self.id, prefix, key, CPLDirect.cpl_cb_collect_properties_vector,
            vp)
        if not CPLDirect.cpl_is_ok(ret):
            CPLDirect.delete_std_vector_cplxx_property_entry_tp(vp)
            raise CPLException(
                'Error retrieving properties: ' +
                CPLDirect.cpl_error_string(ret), ret)

        v = CPLDirect.cpl_dereference_p_std_vector_cplxx_property_entry_t(vp)
        l = []
        for e in v:
            l.append([e.prefix, e.key, e.value])
        CPLDirect.delete_std_vector_cplxx_property_entry_tp(vp)
        return l