annotate pkg/models/imports.go @ 2549:9bf6b767a56a

client: refactored and improved splitscreen for diagrams To make different diagrams possible, the splitscreen view needed to be decoupled from the cross profiles. Also the style has changed to make it more consistent with the rest of the app. The standard box header is now used and there are collapse and expand animations.
author Markus Kottlaender <markus@intevation.de>
date Fri, 08 Mar 2019 08:50:47 +0100
parents 9c4ef2345db4
children dc4fae4bdb8f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }