-
Notifications
You must be signed in to change notification settings - Fork 39
/
Copy pathifmap_global.py
73 lines (63 loc) · 1.75 KB
/
ifmap_global.py
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
#
# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
#
import os
CppTypeMap = {
'string': 'std::string',
'xsd:string': 'std::string',
'xsd:integer': 'int',
'xsd:unsignedInt': 'uint32_t',
'xsd:boolean': 'bool',
'xsd:unsignedLong' : 'uint64_t',
'xsd:dateTime': 'time_t',
'xsd:time': 'time_t'
}
JavaTypeMap = {
'string': 'String',
'xsd:string': 'String',
'xsd:integer': 'Integer',
'xsd:unsignedInt': 'Integer',
'xsd:boolean': 'boolean',
'xsd:unsignedLong' : 'Long',
'xsd:dateTime': 'java.util.Date',
'xsd:time': 'Long'
}
GoLangTypeMap = {
'string': 'string',
'xsd:string': 'string',
'xsd:integer': 'int',
'xsd:unsignedInt': 'uint',
'xsd:boolean': 'bool',
'xsd:unsignedLong' : 'uint64',
'xsd:dateTime': 'string',
'xsd:time': 'uint64'
}
def getCppType(xsd_simple_type):
if not xsd_simple_type in CppTypeMap:
return 'void'
return CppTypeMap[xsd_simple_type]
def getJavaType(xsd_simple_type):
if not xsd_simple_type in JavaTypeMap:
return 'Object'
return JavaTypeMap[xsd_simple_type]
def getGoLangType(xsd_simple_type):
if not xsd_simple_type in GoLangTypeMap:
return 'interface{}'
return GoLangTypeMap[xsd_simple_type]
def IsGeneratedType(ctype):
for xtype in CppTypeMap.values():
if ctype == xtype:
return False
return True
def CamelCase(input):
words = input.replace('_', '-').split('-')
name = ''
for w in words:
name += w.capitalize()
return name
def GetModuleName(file, suffix):
filename = os.path.basename(file.name)
mod_name = filename[:filename.find(suffix)]
mod_name = mod_name.replace('-', '_')
mod_name = mod_name.replace('.', '_')
return mod_name