-
Notifications
You must be signed in to change notification settings - Fork 87
Expand file tree
/
Copy pathbase_map_feature.py
More file actions
104 lines (88 loc) · 3.99 KB
/
base_map_feature.py
File metadata and controls
104 lines (88 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
from __future__ import annotations
from collections.abc import Callable
from dataclasses import dataclass, field
from kiota_abstractions.serialization import Parsable, ParseNode, SerializationWriter
from typing import Any, Optional, TYPE_CHECKING, Union
if TYPE_CHECKING:
from .building_map import BuildingMap
from .entity import Entity
from .fixture_map import FixtureMap
from .footprint_map import FootprintMap
from .level_map import LevelMap
from .section_map import SectionMap
from .unit_map import UnitMap
from .entity import Entity
@dataclass
class BaseMapFeature(Entity, Parsable):
# The OdataType property
odata_type: Optional[str] = None
# Concatenated key-value pair of all properties of a GeoJSON file for this baseMapFeature.
properties: Optional[str] = None
@staticmethod
def create_from_discriminator_value(parse_node: ParseNode) -> BaseMapFeature:
"""
Creates a new instance of the appropriate class based on discriminator value
param parse_node: The parse node to use to read the discriminator value and create the object
Returns: BaseMapFeature
"""
if parse_node is None:
raise TypeError("parse_node cannot be null.")
try:
child_node = parse_node.get_child_node("@odata.type")
mapping_value = child_node.get_str_value() if child_node else None
except AttributeError:
mapping_value = None
if mapping_value and mapping_value.casefold() == "#microsoft.graph.buildingMap".casefold():
from .building_map import BuildingMap
return BuildingMap()
if mapping_value and mapping_value.casefold() == "#microsoft.graph.fixtureMap".casefold():
from .fixture_map import FixtureMap
return FixtureMap()
if mapping_value and mapping_value.casefold() == "#microsoft.graph.footprintMap".casefold():
from .footprint_map import FootprintMap
return FootprintMap()
if mapping_value and mapping_value.casefold() == "#microsoft.graph.levelMap".casefold():
from .level_map import LevelMap
return LevelMap()
if mapping_value and mapping_value.casefold() == "#microsoft.graph.sectionMap".casefold():
from .section_map import SectionMap
return SectionMap()
if mapping_value and mapping_value.casefold() == "#microsoft.graph.unitMap".casefold():
from .unit_map import UnitMap
return UnitMap()
return BaseMapFeature()
def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
"""
The deserialization information for the current model
Returns: dict[str, Callable[[ParseNode], None]]
"""
from .building_map import BuildingMap
from .entity import Entity
from .fixture_map import FixtureMap
from .footprint_map import FootprintMap
from .level_map import LevelMap
from .section_map import SectionMap
from .unit_map import UnitMap
from .building_map import BuildingMap
from .entity import Entity
from .fixture_map import FixtureMap
from .footprint_map import FootprintMap
from .level_map import LevelMap
from .section_map import SectionMap
from .unit_map import UnitMap
fields: dict[str, Callable[[Any], None]] = {
"properties": lambda n : setattr(self, 'properties', n.get_str_value()),
}
super_fields = super().get_field_deserializers()
fields.update(super_fields)
return fields
def serialize(self,writer: SerializationWriter) -> None:
"""
Serializes information the current object
param writer: Serialization writer to use to serialize this model
Returns: None
"""
if writer is None:
raise TypeError("writer cannot be null.")
super().serialize(writer)
writer.write_str_value("properties", self.properties)