1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
package org.openecomp.sdc.toscaparser.api.functions;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import org.openecomp.sdc.toscaparser.api.NodeTemplate;
import org.openecomp.sdc.toscaparser.api.TopologyTemplate;
import org.openecomp.sdc.toscaparser.api.common.ExceptionCollector;
public class Token extends Function {
// Validate the function and provide an instance of the function
//The token function is used within a TOSCA service template on a string to
//parse out (tokenize) substrings separated by one or more token characters
//within a larger string.
//Arguments:
//* The composite string that contains one or more substrings separated by
// token characters.
//* The string that contains one or more token characters that separate
// substrings within the composite string.
//* The integer indicates the index of the substring to return from the
// composite string. Note that the first substring is denoted by using
// the '0' (zero) integer value.
//Example:
// [ get_attribute: [ my_server, data_endpoint, ip_address ], ':', 1 ]
public Token(TopologyTemplate ttpl,Object context,String name,ArrayList<Object> args) {
super(ttpl,context,name,args);
}
@Override
public Object result() {
return this;
}
@Override
void validate() {
if(args.size() < 3) {
ExceptionCollector.appendException(
"ValueError: Invalid arguments for function \"token\". " +
"Expected at least three arguments");
}
else {
if(!(args.get(1) instanceof String) ||
((String)args.get(1)).length() != 1) {
ExceptionCollector.appendException(
"ValueError: Invalid arguments for function \"token\". " +
"Expected single char value as second argument");
}
if(!(args.get(2) instanceof Integer)) {
ExceptionCollector.appendException(
"ValueError: Invalid arguments for function \"token\"" +
"Expected integer value as third argument");
}
}
}
}
/*python
class Token(Function):
"""Validate the function and provide an instance of the function
The token function is used within a TOSCA service template on a string to
parse out (tokenize) substrings separated by one or more token characters
within a larger string.
Arguments:
* The composite string that contains one or more substrings separated by
token characters.
* The string that contains one or more token characters that separate
substrings within the composite string.
* The integer indicates the index of the substring to return from the
composite string. Note that the first substring is denoted by using
the '0' (zero) integer value.
Example:
[ get_attribute: [ my_server, data_endpoint, ip_address ], ':', 1 ]
"""
def validate(self):
if len(self.args) < 3:
ExceptionCollector.appendException(
ValueError(_('Invalid arguments for function "{0}". Expected '
'at least three arguments.').format(TOKEN)))
else:
if not isinstance(self.args[1], str) or len(self.args[1]) != 1:
ExceptionCollector.appendException(
ValueError(_('Invalid arguments for function "{0}". '
'Expected single char value as second '
'argument.').format(TOKEN)))
if not isinstance(self.args[2], int):
ExceptionCollector.appendException(
ValueError(_('Invalid arguments for function "{0}". '
'Expected integer value as third '
'argument.').format(TOKEN)))
def result(self):
return self
*/
|