Mercurial > gemma
annotate pkg/models/imports.go @ 2305:9c4ef2345db4
Configured Imports: Fixed unmarshalling of WFS imports.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 18 Feb 2019 12:40:07 +0100 |
parents | c8cc875d271c |
children | dc4fae4bdb8f |
rev | line source |
---|---|
2016
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 // This is Free Software under GNU Affero General Public License v >= 3.0 |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 // without warranty, see README.md and license for details. |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 // |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 // SPDX-License-Identifier: AGPL-3.0-or-later |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 // License-Filename: LICENSES/AGPL-3.0.txt |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 // |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 // Copyright (C) 2018 by via donau |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 // – Österreichische Wasserstraßen-Gesellschaft mbH |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 // Software engineering by Intevation GmbH |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 // |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 // Author(s): |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 // * Sascha L. Teichmann <sascha.teichmann@intevation.de> |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 package models |
25967829cf00
Started to simplify the import models.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
15 import ( |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
16 "errors" |
2059
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
17 "strings" |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
18 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
19 "gemma.intevation.de/gemma/pkg/common" |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
20 ) |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
21 |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
22 type ( |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
23 ConfigurableURLImport struct { |
2025
070ac9dd61a1
Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2024
diff
changeset
|
24 URLType |
070ac9dd61a1
Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2024
diff
changeset
|
25 QueueConfigurationType |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
26 } |
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
27 |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
28 BottleneckImport struct { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
29 ConfigurableURLImport |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
30 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
31 |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
32 // GaugeMeasurementImport contains data used to define the endpoint |
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
33 GaugeMeasurementImport struct { |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
34 ConfigurableURLImport |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
35 } |
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
36 |
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
37 // FairwayAvailabilityImport contains data used to define the endpoint |
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
38 FairwayAvailabilityImport struct { |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
39 ConfigurableURLImport |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
40 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
41 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
42 // WaterwayAxisImport specifies an import of waterway gauges. |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
43 WaterwayGaugeImport struct { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
44 ConfigurableURLImport |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
45 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
46 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
47 // DistanceMarksVirtualImport specifies an import of distance marks virtual. |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
48 DistanceMarksVirtualImport struct { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
49 ConfigurableURLImport |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
50 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
51 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
52 WFSImport struct { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
53 ConfigurableURLImport |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
54 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
55 // FeatureType is the layer to use. |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
56 FeatureType string `json:"feature-type"` |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
57 // SortBy sorts the feature by this key. |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
58 SortBy *string `json:"sort-by"` |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
59 } |
2018
8a62ce2a5c70
Moved gaugemeasurement to local package.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2016
diff
changeset
|
60 |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
61 // WaterwayAxisImport specifies an import of the waterway axis. |
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
62 WaterwayAxisImport struct { |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
63 WFSImport |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
64 } |
2019
aeff01c6edec
Moved fairwayavailability to a local model.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2018
diff
changeset
|
65 |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
66 // WaterwayAreaImport specifies an import of the waterway area. |
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
67 WaterwayAreaImport struct { |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
68 WFSImport |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
69 } |
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
70 |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
71 // DistanceMarksAshoreImport specifies an import of the distance marks. |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
72 DistanceMarksAshoreImport struct { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
73 WFSImport |
2021
aa74466feaa8
Moved distancemarks virtual to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2020
diff
changeset
|
74 } |
2022
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
75 |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
76 // FairwayDimensionImport specifies an import of the waterway axis. |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
77 FairwayDimensionImport struct { |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
78 WFSImport |
2025
070ac9dd61a1
Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2024
diff
changeset
|
79 |
2022
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
80 // LOS is the level of service provided by the wfs |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
81 LOS int `json:"los"` |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
82 // MinWidth is the minimum width of the fairway for the specified LOS |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
83 MinWidth int `json:"min-width"` |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
84 // MaxWidth is the maximum width of the fairway for the specified LOS |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
85 MaxWidth int `json:"max-width"` |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
86 // Depth is the minimum depth of the fairway for the specified LOS |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
87 Depth int `json:"depth"` |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
88 // SourceOrganization specifies the source of the entry |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
89 SourceOrganization string `json:"source-organization"` |
213f79fde44a
Moved fairway dimension import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2021
diff
changeset
|
90 } |
2023
fc5c888428c8
Moved distance marks ashore import into imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2022
diff
changeset
|
91 |
2024
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
92 StretchImport struct { |
2029
8d006afa7c1b
Imports: Stretch imports are not configurabel and scheduable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2025
diff
changeset
|
93 EmailType |
2025
070ac9dd61a1
Bring manual imports to new import modeling.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2024
diff
changeset
|
94 |
2024
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
95 Name string `json:"name"` |
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
96 From Isrs `json:"from"` |
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
97 To Isrs `json:"to"` |
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
98 ObjNam string `json:"objnam"` |
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
99 NObjNam *string `json:"nobjnam"` |
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
100 Source string `json:"source-organization"` |
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
101 Date Date `json:"date-info"` |
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
102 Countries UniqueCountries `json:"countries"` |
6d9fbc62c5a6
Moved stretch import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2023
diff
changeset
|
103 } |
2020
491084efd15c
Moved waterway(area|axis|gauge) import to imports file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2019
diff
changeset
|
104 ) |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
105 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
106 func (cui *ConfigurableURLImport) MarshalAttributes(attrs common.Attributes) error { |
2297
c8cc875d271c
Import config: Marshalling of so properties got lost somehow.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2100
diff
changeset
|
107 if err := cui.URLType.MarshalAttributes(attrs); err != nil { |
c8cc875d271c
Import config: Marshalling of so properties got lost somehow.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2100
diff
changeset
|
108 return err |
c8cc875d271c
Import config: Marshalling of so properties got lost somehow.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2100
diff
changeset
|
109 } |
c8cc875d271c
Import config: Marshalling of so properties got lost somehow.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2100
diff
changeset
|
110 return cui.QueueConfigurationType.MarshalAttributes(attrs) |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
111 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
112 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
113 func (cui *ConfigurableURLImport) UnmarshalAttributes(attrs common.Attributes) error { |
2297
c8cc875d271c
Import config: Marshalling of so properties got lost somehow.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2100
diff
changeset
|
114 if err := cui.URLType.UnmarshalAttributes(attrs); err != nil { |
c8cc875d271c
Import config: Marshalling of so properties got lost somehow.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2100
diff
changeset
|
115 return err |
c8cc875d271c
Import config: Marshalling of so properties got lost somehow.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2100
diff
changeset
|
116 } |
c8cc875d271c
Import config: Marshalling of so properties got lost somehow.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2100
diff
changeset
|
117 return cui.QueueConfigurationType.UnmarshalAttributes(attrs) |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
118 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
119 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
120 func (wi *WFSImport) MarshalAttributes(attrs common.Attributes) error { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
121 if err := wi.ConfigurableURLImport.MarshalAttributes(attrs); err != nil { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
122 return err |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
123 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
124 attrs.Set("feature-type", wi.FeatureType) |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
125 if wi.SortBy != nil { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
126 attrs.Set("sort-by", *wi.SortBy) |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
127 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
128 return nil |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
129 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
130 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
131 func (wi *WFSImport) UnmarshalAttributes(attrs common.Attributes) error { |
2305
9c4ef2345db4
Configured Imports: Fixed unmarshalling of WFS imports.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2297
diff
changeset
|
132 if err := wi.ConfigurableURLImport.UnmarshalAttributes(attrs); err != nil { |
2036
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
133 return err |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
134 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
135 ft, found := attrs.Get("feature-type") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
136 if !found { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
137 return errors.New("missing 'feature-type' attribute") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
138 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
139 wi.FeatureType = ft |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
140 if sb, found := attrs.Get("sort-by"); found { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
141 wi.SortBy = &sb |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
142 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
143 return nil |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
144 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
145 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
146 func (fdi *FairwayDimensionImport) MarshalAttributes(attrs common.Attributes) error { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
147 if err := fdi.WFSImport.MarshalAttributes(attrs); err != nil { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
148 return err |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
149 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
150 attrs.SetInt("los", fdi.LOS) |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
151 attrs.SetInt("min-width", fdi.MinWidth) |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
152 attrs.SetInt("max-width", fdi.MaxWidth) |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
153 attrs.SetInt("depth", fdi.Depth) |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
154 attrs.Set("source-organization", fdi.SourceOrganization) |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
155 return nil |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
156 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
157 |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
158 func (fdi *FairwayDimensionImport) UnmarshalAttributes(attrs common.Attributes) error { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
159 if err := fdi.WFSImport.UnmarshalAttributes(attrs); err != nil { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
160 return err |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
161 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
162 los, found := attrs.Int("los") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
163 if !found { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
164 return errors.New("missing 'los' attribute") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
165 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
166 fdi.LOS = los |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
167 minWidth, found := attrs.Int("min-width") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
168 if !found { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
169 return errors.New("missing 'min-width' attribute") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
170 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
171 fdi.MinWidth = minWidth |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
172 maxWidth, found := attrs.Int("max-width") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
173 if !found { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
174 return errors.New("missing 'max-width' attribute") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
175 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
176 fdi.MaxWidth = maxWidth |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
177 depth, found := attrs.Int("depth") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
178 if !found { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
179 return errors.New("missing 'depth' attribute") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
180 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
181 fdi.Depth = depth |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
182 source, found := attrs.Get("source-organization") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
183 if !found { |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
184 return errors.New("missing 'source-organization' attribute") |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
185 } |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
186 fdi.SourceOrganization = source |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
187 return nil |
74e24ae3205a
Imports: Added a persistent model for the extra attributes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2029
diff
changeset
|
188 } |
2059
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
189 |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
190 func (sti *StretchImport) MarshalAttributes(attrs common.Attributes) error { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
191 if err := sti.EmailType.MarshalAttributes(attrs); err != nil { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
192 return err |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
193 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
194 attrs.Set("name", sti.Name) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
195 attrs.Set("from", sti.From.String()) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
196 attrs.Set("to", sti.To.String()) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
197 attrs.Set("objnam", sti.ObjNam) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
198 if sti.NObjNam != nil { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
199 attrs.Set("nobjnam", *sti.NObjNam) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
200 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
201 attrs.Set("source-organization", sti.Source) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
202 attrs.SetDate("date-info", sti.Date.Time) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
203 if len(sti.Countries) > 0 { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
204 countries := make([]string, len(sti.Countries)) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
205 for i, c := range sti.Countries { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
206 countries[i] = string(c) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
207 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
208 attrs.Set("countries", strings.Join(countries, ",")) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
209 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
210 |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
211 return nil |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
212 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
213 |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
214 func (sti *StretchImport) UnmarshalAttributes(attrs common.Attributes) error { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
215 if err := sti.EmailType.UnmarshalAttributes(attrs); err != nil { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
216 return err |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
217 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
218 name, found := attrs.Get("name") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
219 if !found { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
220 return errors.New("missing 'name' attribute") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
221 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
222 sti.Name = name |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
223 from, found := attrs.Get("from") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
224 if !found { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
225 return errors.New("missing 'from' attribute") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
226 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
227 f, err := IsrsFromString(from) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
228 if err != nil { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
229 return err |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
230 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
231 sti.From = *f |
2100
46343e3f7a3e
Imports: Fixed small issue with de-serializing stretches.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2059
diff
changeset
|
232 to, found := attrs.Get("to") |
2059
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
233 if !found { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
234 return errors.New("missing 'to' attribute") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
235 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
236 t, err := IsrsFromString(to) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
237 if err != nil { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
238 return err |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
239 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
240 sti.To = *t |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
241 objnam, found := attrs.Get("objnam") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
242 if !found { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
243 return errors.New("missing 'objnam' attribute") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
244 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
245 sti.ObjNam = objnam |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
246 nobjnam, found := attrs.Get("nobjnam") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
247 if found { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
248 sti.NObjNam = &nobjnam |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
249 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
250 source, found := attrs.Get("source-organization") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
251 if !found { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
252 return errors.New("missing 'source' attribute") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
253 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
254 sti.Source = source |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
255 date, found := attrs.Date("date-info") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
256 if !found { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
257 return errors.New("missing 'date-info' attribute") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
258 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
259 sti.Date = Date{date} |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
260 countries, found := attrs.Get("countries") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
261 if found { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
262 csp := strings.Split(countries, ",") |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
263 cs := make(UniqueCountries, len(csp)) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
264 for i, c := range csp { |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
265 cs[i] = Country(c) |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
266 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
267 sti.Countries = cs |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
268 } |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
269 return nil |
ae0021feaac8
Imports: Made stretch import marshable (even if it is not needed).
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2036
diff
changeset
|
270 } |