Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
D
dcc-js
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
D-PTB
DCC
Development
dcc-js
Commits
aaa5c941
Verified
Commit
aaa5c941
authored
3 years ago
by
Jan Loewe
Browse files
Options
Downloads
Patches
Plain Diff
fix(dsi): fix d-si choices
parent
59876477
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/DSI.ts
+129
-48
129 additions, 48 deletions
src/DSI.ts
with
129 additions
and
48 deletions
src/DSI.ts
+
129
−
48
View file @
aaa5c941
...
...
@@ -47,8 +47,11 @@ export class RealQuantityType extends SIXMLElement implements INamespaced {
value
:
SIXMLNumber
;
unit
:
SIXMLElement
;
dateTime
?:
SIXMLDate
;
// region choice
expandedUnc
?:
ExpandedUncType
;
coverageInterval
?:
CoverageIntervalType
;
// endregion choice
constructor
(
el
:
Partial
<
RealQuantityType
>
=
{})
{
super
(
el
);
...
...
@@ -56,56 +59,81 @@ export class RealQuantityType extends SIXMLElement implements INamespaced {
this
.
value
=
new
SIXMLNumber
(
el
.
value
);
this
.
unit
=
new
SIXMLElement
(
el
.
unit
);
if
(
el
.
dateTime
)
this
.
dateTime
=
new
SIXMLDate
(
el
.
dateTime
);
// choice
if
(
el
.
expandedUnc
)
this
.
expandedUnc
=
new
ExpandedUncType
(
el
.
expandedUnc
);
if
(
el
.
coverageInterval
)
this
.
coverageInterval
=
new
CoverageIntervalType
(
el
.
coverageInterval
);
else
if
(
el
.
coverageInterval
)
this
.
coverageInterval
=
new
CoverageIntervalType
(
el
.
coverageInterval
);
}
}
export
class
HybridType
extends
SIXMLElement
{
real
:
RealQuantityType
[];
complex
:
ComplexQuantityType
[];
list
:
SIListType
[];
realList
:
RealListType
[];
realListXMLList
:
RealListXMLListType
[];
complexList
:
ComplexListType
[];
constant
:
ConstantQuantityType
[];
// region choice
real
?:
RealQuantityType
[];
complex
?:
ComplexQuantityType
[];
list
?:
SIListType
[];
realList
?:
RealListType
[];
realListXMLList
?:
RealListXMLListType
[];
complexList
?:
ComplexListType
[];
constant
?:
ConstantQuantityType
[];
// endregion choice
constructor
(
el
:
Partial
<
HybridType
>
=
{})
{
super
(
el
);
this
.
real
=
ensureArray
(
el
.
real
).
map
((
x
)
=>
new
RealQuantityType
(
x
));
this
.
complex
=
ensureArray
(
el
.
complex
).
map
((
x
)
=>
new
ComplexQuantityType
(
x
));
this
.
list
=
ensureArray
(
el
.
list
).
map
((
x
)
=>
new
SIListType
(
x
));
this
.
realList
=
ensureArray
(
el
.
realList
).
map
((
x
)
=>
new
RealListType
(
x
));
this
.
realListXMLList
=
ensureArray
(
el
.
realListXMLList
).
map
((
x
)
=>
new
RealListXMLListType
(
x
));
this
.
complexList
=
ensureArray
(
el
.
complexList
).
map
((
x
)
=>
new
ComplexListType
(
x
));
this
.
constant
=
ensureArray
(
el
.
constant
).
map
((
x
)
=>
new
ConstantQuantityType
(
x
));
// choice
if
(
el
.
real
)
this
.
real
=
ensureArray
(
el
.
real
).
map
((
x
)
=>
new
RealQuantityType
(
x
));
else
if
(
el
.
complex
)
this
.
complex
=
ensureArray
(
el
.
complex
).
map
((
x
)
=>
new
ComplexQuantityType
(
x
));
else
if
(
el
.
list
)
this
.
list
=
ensureArray
(
el
.
list
).
map
((
x
)
=>
new
SIListType
(
x
));
else
if
(
el
.
realList
)
this
.
realList
=
ensureArray
(
el
.
realList
).
map
((
x
)
=>
new
RealListType
(
x
));
else
if
(
el
.
realListXMLList
)
this
.
realListXMLList
=
ensureArray
(
el
.
realListXMLList
).
map
((
x
)
=>
new
RealListXMLListType
(
x
));
else
if
(
el
.
complexList
)
this
.
complexList
=
ensureArray
(
el
.
complexList
).
map
((
x
)
=>
new
ComplexListType
(
x
));
else
if
(
el
.
constant
)
this
.
constant
=
ensureArray
(
el
.
constant
).
map
((
x
)
=>
new
ConstantQuantityType
(
x
));
}
}
export
class
ComplexQuantityType
extends
SIXMLElement
{
label
?:
SIXMLElement
;
dateTime
?:
SIXMLDate
;
// region choice
valueReal
:
SIXMLNumber
;
valueImag
:
SIXMLNumber
;
unit
:
SIXMLElement
[];
valueMagnitude
:
SIXMLNumber
;
valuePhase
:
SIXMLNumber
;
// unit exists always
unit
:
SIXMLElement
;
// only exists if valueMagnitude and valuePhase exist
unitPhase
:
SIXMLElement
;
// endregion choice
dateTime
?:
SIXMLDate
;
ellipsoidalRegion
?:
EllipsoidalRegionType
;
rectangularRegion
?:
RectangularRegionType
;
constructor
(
el
:
Partial
<
ComplexQuantityType
>
=
{})
{
super
(
el
);
if
(
el
.
label
)
this
.
label
=
new
SIXMLElement
(
el
.
label
);
// choice
if
(
el
.
valueReal
&&
el
.
valueImag
)
{
this
.
valueReal
=
new
SIXMLNumber
(
el
.
valueReal
);
this
.
valueImag
=
new
SIXMLNumber
(
el
.
valueImag
);
this
.
unit
=
new
SIXMLElement
(
el
.
unit
);
}
else
if
(
el
.
valueMagnitude
&&
el
.
valuePhase
&&
el
.
unit
&&
el
.
unitPhase
)
{
this
.
valueMagnitude
=
new
SIXMLNumber
(
el
.
valueMagnitude
);
this
.
valuePhase
=
new
SIXMLNumber
(
el
.
valuePhase
);
this
.
unit
=
new
SIXMLElement
(
el
.
unit
);
this
.
unitPhase
=
new
SIXMLElement
(
el
.
unitPhase
);
}
if
(
el
.
dateTime
)
this
.
dateTime
=
new
SIXMLDate
(
el
.
dateTime
);
this
.
valueReal
=
new
SIXMLNumber
(
el
.
valueReal
);
this
.
valueImag
=
new
SIXMLNumber
(
el
.
valueImag
);
this
.
unit
=
ensureArray
(
el
.
unit
).
map
((
x
)
=>
new
SIXMLElement
(
x
));
this
.
valueMagnitude
=
new
SIXMLNumber
(
el
.
valueMagnitude
);
this
.
valuePhase
=
new
SIXMLNumber
(
el
.
valuePhase
);
this
.
unitPhase
=
new
SIXMLElement
(
el
.
unitPhase
);
// choice
if
(
el
.
ellipsoidalRegion
)
this
.
ellipsoidalRegion
=
new
EllipsoidalRegionType
(
el
.
ellipsoidalRegion
);
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
else
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
}
}
...
...
@@ -133,38 +161,55 @@ export class RealListXMLListType extends SIXMLElement {
valueXMLList
:
DecimalXMLListType
;
unitXMLList
:
UnitXMLListType
;
dateTimeXMLList
?:
DateTimeXMLListType
;
// region choice
expandedUncXMLList
?:
ExpandedUncXMLListType
;
coverageIntervalXMLList
?:
CoverageIntervalXMLListType
;
// endregion choice
// region choice
ellipsoidalRegionXMLList
?:
EllipsoidalRegionType
;
rectangularRegionXMLList
?:
RectangularRegionType
;
// endregion choice
constructor
(
el
:
Partial
<
RealListXMLListType
>
=
{})
{
super
(
el
);
if
(
el
.
labelXMLList
)
this
.
labelXMLList
=
new
StringXMLListType
(
el
.
labelXMLList
);
this
.
valueXMLList
=
new
DecimalXMLListType
(
el
.
valueXMLList
);
this
.
unitXMLList
=
new
UnitXMLListType
(
el
.
unitXMLList
);
if
(
el
.
dateTimeXMLList
)
this
.
dateTimeXMLList
=
new
DateTimeXMLListType
(
el
.
dateTimeXMLList
);
// choice
if
(
el
.
expandedUncXMLList
)
this
.
expandedUncXMLList
=
new
ExpandedUncXMLListType
(
el
.
expandedUncXMLList
);
if
(
el
.
coverageIntervalXMLList
)
this
.
coverageIntervalXMLList
=
new
CoverageIntervalXMLListType
(
el
.
coverageIntervalXMLList
);
else
if
(
el
.
coverageIntervalXMLList
)
this
.
coverageIntervalXMLList
=
new
CoverageIntervalXMLListType
(
el
.
coverageIntervalXMLList
);
// choice
if
(
el
.
ellipsoidalRegionXMLList
)
this
.
ellipsoidalRegionXMLList
=
new
EllipsoidalRegionType
(
el
.
ellipsoidalRegionXMLList
);
if
(
el
.
rectangularRegionXMLList
)
this
.
rectangularRegionXMLList
=
new
RectangularRegionType
(
el
.
rectangularRegionXMLList
);
else
if
(
el
.
rectangularRegionXMLList
)
this
.
rectangularRegionXMLList
=
new
RectangularRegionType
(
el
.
rectangularRegionXMLList
);
}
}
export
class
SIListType
extends
SIXMLElement
{
label
?:
SIXMLElement
;
dateTime
?:
SIXMLDate
;
realList
:
RealListType
[];
complexList
:
ComplexListType
[];
list
:
SIListType
[];
// region choice
realList
?:
RealListType
[];
complexList
?:
ComplexListType
[];
list
?:
SIListType
[];
// endregion choice
constructor
(
el
:
Partial
<
SIListType
>
=
{})
{
super
(
el
);
if
(
el
.
label
)
this
.
label
=
new
SIXMLElement
(
el
.
label
);
if
(
el
.
dateTime
)
this
.
dateTime
=
new
SIXMLDate
(
el
.
dateTime
);
this
.
realList
=
ensureArray
(
el
.
realList
).
map
((
x
)
=>
new
RealListType
(
x
));
this
.
complexList
=
ensureArray
(
el
.
complexList
).
map
((
x
)
=>
new
ComplexListType
(
x
));
this
.
list
=
ensureArray
(
el
.
list
).
map
((
x
)
=>
new
SIListType
(
x
));
// choice
if
(
el
.
realList
)
this
.
realList
=
ensureArray
(
el
.
realList
).
map
((
x
)
=>
new
RealListType
(
x
));
else
if
(
el
.
complexList
)
this
.
complexList
=
ensureArray
(
el
.
complexList
).
map
((
x
)
=>
new
ComplexListType
(
x
));
else
if
(
el
.
list
)
this
.
list
=
ensureArray
(
el
.
list
).
map
((
x
)
=>
new
SIListType
(
x
));
}
}
...
...
@@ -235,8 +280,11 @@ export class RealInListType extends SIXMLElement {
value
:
SIXMLNumber
;
unit
?:
SIXMLElement
;
dateTime
?:
SIXMLDate
;
// region choice
expandedUnc
?:
ExpandedUncType
;
coverageInterval
?:
CoverageIntervalType
;
// endregion choice
constructor
(
el
:
Partial
<
RealInListType
>
=
{})
{
super
(
el
);
...
...
@@ -244,8 +292,10 @@ export class RealInListType extends SIXMLElement {
this
.
value
=
new
SIXMLNumber
(
el
.
value
);
if
(
el
.
unit
)
this
.
unit
=
new
SIXMLElement
(
el
.
unit
);
if
(
el
.
dateTime
)
this
.
dateTime
=
new
SIXMLDate
(
el
.
dateTime
);
// choice
if
(
el
.
expandedUnc
)
this
.
expandedUnc
=
new
ExpandedUncType
(
el
.
expandedUnc
);
if
(
el
.
coverageInterval
)
this
.
coverageInterval
=
new
CoverageIntervalType
(
el
.
coverageInterval
);
else
if
(
el
.
coverageInterval
)
this
.
coverageInterval
=
new
CoverageIntervalType
(
el
.
coverageInterval
);
}
}
...
...
@@ -254,25 +304,37 @@ export class ComplexInListType extends SIXMLElement {
dateTime
?:
SIXMLDate
;
valueReal
:
SIXMLNumber
;
valueImag
:
SIXMLNumber
;
unit
?:
SIXMLElement
[]
;
unit
?:
SIXMLElement
;
valueMagnitude
:
SIXMLNumber
;
valuePhase
:
SIXMLNumber
;
unitPhase
?:
SIXMLElement
;
// region choice
ellipsoidalRegion
?:
EllipsoidalRegionType
;
rectangularRegion
?:
RectangularRegionType
;
// endregion choice
constructor
(
el
:
Partial
<
ComplexInListType
>
=
{})
{
super
(
el
);
if
(
el
.
label
)
this
.
label
=
new
SIXMLElement
(
el
.
label
);
// choice
if
(
el
.
valueReal
&&
el
.
valueImag
)
{
this
.
valueReal
=
new
SIXMLNumber
(
el
.
valueReal
);
this
.
valueImag
=
new
SIXMLNumber
(
el
.
valueImag
);
if
(
el
.
unit
)
this
.
unit
=
new
SIXMLElement
(
el
.
unit
);
}
else
if
(
el
.
valueMagnitude
&&
el
.
valuePhase
)
{
this
.
valueMagnitude
=
new
SIXMLNumber
(
el
.
valueMagnitude
);
this
.
valuePhase
=
new
SIXMLNumber
(
el
.
valuePhase
);
if
(
el
.
unit
)
this
.
unit
=
new
SIXMLElement
(
el
.
unit
);
if
(
el
.
unitPhase
)
this
.
unitPhase
=
new
SIXMLElement
(
el
.
unitPhase
);
}
if
(
el
.
dateTime
)
this
.
dateTime
=
new
SIXMLDate
(
el
.
dateTime
);
this
.
valueReal
=
new
SIXMLNumber
(
el
.
valueReal
);
this
.
valueImag
=
new
SIXMLNumber
(
el
.
valueImag
);
if
(
el
.
unit
)
this
.
unit
=
ensureArray
(
el
.
unit
).
map
((
x
)
=>
new
SIXMLElement
(
x
));
this
.
valueMagnitude
=
new
SIXMLNumber
(
el
.
valueMagnitude
);
this
.
valuePhase
=
new
SIXMLNumber
(
el
.
valuePhase
);
if
(
el
.
unitPhase
)
this
.
unitPhase
=
new
SIXMLElement
(
el
.
unitPhase
);
// choice
if
(
el
.
ellipsoidalRegion
)
this
.
ellipsoidalRegion
=
new
EllipsoidalRegionType
(
el
.
ellipsoidalRegion
);
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
else
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
}
}
...
...
@@ -290,8 +352,11 @@ export class RealListType extends SIXMLElement {
* the unit component is optional in order to allow a combination with
* a global unit in the list of real quantities. */
real
:
RealInListType
[];
// region choice
ellipsoidalRegion
?:
EllipsoidalRegionType
;
rectangularRegion
?:
RectangularRegionType
;
// endregion choice
constructor
(
el
:
Partial
<
RealListType
>
=
{})
{
super
(
el
);
...
...
@@ -299,20 +364,27 @@ export class RealListType extends SIXMLElement {
if
(
el
.
dateTime
)
this
.
dateTime
=
new
SIXMLDate
(
el
.
dateTime
);
if
(
el
.
listUnit
)
this
.
listUnit
=
new
SIXMLElement
(
el
.
listUnit
);
if
(
el
.
listUnivariateUnc
)
this
.
listUnivariateUnc
=
new
ListUnivariateUncType
(
el
.
listUnivariateUnc
);
this
.
real
=
ensureArray
(
el
.
real
).
map
((
x
)
=>
new
RealInListType
(
x
));
// choice
if
(
el
.
ellipsoidalRegion
)
this
.
ellipsoidalRegion
=
new
EllipsoidalRegionType
(
el
.
ellipsoidalRegion
);
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
else
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
}
}
export
class
ListUnivariateUncType
extends
SIXMLElement
{
expandedUnc
:
ExpandedUncType
;
coverageInterval
:
CoverageIntervalType
;
// region choice
expandedUnc
?:
ExpandedUncType
;
coverageInterval
?:
CoverageIntervalType
;
// endregion choice
constructor
(
el
:
Partial
<
ListUnivariateUncType
>
=
{})
{
super
(
el
);
this
.
expandedUnc
=
new
ExpandedUncType
(
el
.
expandedUnc
);
this
.
coverageInterval
=
new
CoverageIntervalType
(
el
.
coverageInterval
);
// choice
if
(
el
.
expandedUnc
)
this
.
expandedUnc
=
new
ExpandedUncType
(
el
.
expandedUnc
);
else
if
(
el
.
coverageInterval
)
this
.
coverageInterval
=
new
CoverageIntervalType
(
el
.
coverageInterval
);
}
}
...
...
@@ -380,8 +452,11 @@ export class ComplexListType extends SIXMLElement {
* the unit components are optional in order to allow a combination with
* a global unit in the list of complex quantities. */
complex
:
ComplexInListType
[];
// region choice
ellipsoidalRegion
?:
EllipsoidalRegionType
;
rectangularRegion
?:
RectangularRegionType
;
// endregion choice
constructor
(
el
:
Partial
<
ComplexListType
>
=
{})
{
super
(
el
);
...
...
@@ -391,19 +466,25 @@ export class ComplexListType extends SIXMLElement {
if
(
el
.
listUnitPhase
)
this
.
listUnitPhase
=
new
SIXMLElement
(
el
.
listUnitPhase
);
if
(
el
.
listBivariateUnc
)
this
.
listBivariateUnc
=
new
ListBivariateUncType
(
el
.
listBivariateUnc
);
this
.
complex
=
ensureArray
(
el
.
complex
).
map
((
x
)
=>
new
ComplexInListType
(
x
));
// choice
if
(
el
.
ellipsoidalRegion
)
this
.
ellipsoidalRegion
=
new
EllipsoidalRegionType
(
el
.
ellipsoidalRegion
);
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
else
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
}
}
export
class
ListBivariateUncType
extends
SIXMLElement
{
// region choice
ellipsoidalRegion
?:
EllipsoidalRegionType
;
rectangularRegion
?:
RectangularRegionType
;
// endregion choice
constructor
(
el
:
Partial
<
ListBivariateUncType
>
=
{})
{
super
(
el
);
// choice
if
(
el
.
ellipsoidalRegion
)
this
.
ellipsoidalRegion
=
new
EllipsoidalRegionType
(
el
.
ellipsoidalRegion
);
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
else
if
(
el
.
rectangularRegion
)
this
.
rectangularRegion
=
new
RectangularRegionType
(
el
.
rectangularRegion
);
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment