aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/binapi-generator/parse.go
diff options
context:
space:
mode:
authorOndrej Fabry <ofabry@cisco.com>2019-06-12 18:37:20 +0200
committerOndrej Fabry <ofabry@cisco.com>2019-06-12 19:41:35 +0200
commit682250e328472e855a4c59e9e5f004473b6af0d3 (patch)
tree6de85c22a2d18a83ba05f2713c75c9d089c6275b /cmd/binapi-generator/parse.go
parentc4522fe10317b1729a0820dc880afc78c663f64d (diff)
Fix parsing API with removed CRC for types and unions
- method GetCrcString() was also removed from DataType interface - fix generated comment for services - fix permissions for created files and directories Change-Id: If0b7a57e01f1128b5ba574fc5ee13b6a7c6aa6fd Signed-off-by: Ondrej Fabry <ofabry@cisco.com>
Diffstat (limited to 'cmd/binapi-generator/parse.go')
-rw-r--r--cmd/binapi-generator/parse.go20
1 files changed, 10 insertions, 10 deletions
diff --git a/cmd/binapi-generator/parse.go b/cmd/binapi-generator/parse.go
index 562abab..602b17f 100644
--- a/cmd/binapi-generator/parse.go
+++ b/cmd/binapi-generator/parse.go
@@ -274,9 +274,9 @@ func parseUnion(ctx *context, unionNode *jsongo.JSONNode) (*Union, error) {
if !ok {
return nil, fmt.Errorf("union name is %T, not a string", unionNode.At(0).Get())
}
- unionCRC, ok := unionNode.At(unionNode.Len() - 1).At(crcField).Get().(string)
- if !ok {
- return nil, fmt.Errorf("union crc invalid or missing")
+ var unionCRC string
+ if unionNode.At(unionNode.Len()-1).GetType() == jsongo.TypeMap {
+ unionCRC = unionNode.At(unionNode.Len() - 1).At(crcField).Get().(string)
}
union := Union{
@@ -284,8 +284,8 @@ func parseUnion(ctx *context, unionNode *jsongo.JSONNode) (*Union, error) {
CRC: unionCRC,
}
- // loop through union fields, skip first (name) and last (crc)
- for j := 1; j < unionNode.Len()-1; j++ {
+ // loop through union fields, skip first (name)
+ for j := 1; j < unionNode.Len(); j++ {
if unionNode.At(j).GetType() == jsongo.TypeArray {
fieldNode := unionNode.At(j)
@@ -311,9 +311,9 @@ func parseType(ctx *context, typeNode *jsongo.JSONNode) (*Type, error) {
if !ok {
return nil, fmt.Errorf("type name is %T, not a string", typeNode.At(0).Get())
}
- typeCRC, ok := typeNode.At(typeNode.Len() - 1).At(crcField).Get().(string)
- if !ok {
- return nil, fmt.Errorf("type crc invalid or missing")
+ var typeCRC string
+ if lastField := typeNode.At(typeNode.Len() - 1); lastField.GetType() == jsongo.TypeMap {
+ typeCRC = lastField.At(crcField).Get().(string)
}
typ := Type{
@@ -321,8 +321,8 @@ func parseType(ctx *context, typeNode *jsongo.JSONNode) (*Type, error) {
CRC: typeCRC,
}
- // loop through type fields, skip first (name) and last (crc)
- for j := 1; j < typeNode.Len()-1; j++ {
+ // loop through type fields, skip first (name)
+ for j := 1; j < typeNode.Len(); j++ {
if typeNode.At(j).GetType() == jsongo.TypeArray {
fieldNode := typeNode.At(j)