/
DescriptorType.js
78 lines (74 loc) · 3.22 KB
/
DescriptorType.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/**
* The copyright in this software is being made available under the BSD License,
* included below. This software may be subject to other third party and contributor
* rights, including patent rights, and no such rights are granted under this license.
*
* Copyright (c) 2023, Dash Industry Forum.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation and/or
* other materials provided with the distribution.
* * Neither the name of Dash Industry Forum nor the names of its
* contributors may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @class
* @ignore
*/
import DashConstants from '../constants/DashConstants.js'
class DescriptorType {
constructor() {
this.schemeIdUri = null;
this.value = null;
this.id = null;
}
init(data) {
if (data) {
this.schemeIdUri = data.schemeIdUri ? data.schemeIdUri : null;
this.value = data.value ? data.value.toString() : null;
this.id = data.id ? data.id : null;
// Only add the DVB extensions if they exist
if (data[DashConstants.DVB_URL]) {
this.dvbUrl = data[DashConstants.DVB_URL]
}
if (data[DashConstants.DVB_MIMETYPE]) {
this.dvbMimeType = data[DashConstants.DVB_MIMETYPE]
}
if (data[DashConstants.DVB_FONTFAMILY]) {
this.dvbFontFamily = data[DashConstants.DVB_FONTFAMILY]
}
}
}
inArray(arr) {
if (arr) {
return arr.some((entry) => {
return (
this.schemeIdUri === entry.schemeIdUri && (
this.value ?
(this.value.toString().match(entry.value)) : // check if provided value matches RegExp
(''.match(entry.value)) // check if RegExp allows absent value
)
);
})
}
return false;
}
}
export default DescriptorType;