github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgRpc/kmgRpcSwift/tplInnerClass.go (about)

     1  package kmgRpcSwift
     2  
     3  import (
     4  	"bytes"
     5  	"github.com/bronze1man/kmg/kmgStrings"
     6  	"strings"
     7  )
     8  
     9  func (config InnerClass) tplInnerClass() string {
    10  	var _buf bytes.Buffer
    11  	_buf.WriteString(`
    12      `)
    13  	if config.IsPublic {
    14  	} else {
    15  		_buf.WriteString(`private`)
    16  	}
    17  	_buf.WriteString(` struct `)
    18  	_buf.WriteString(config.Name)
    19  	_buf.WriteString(`{
    20          `)
    21  	for _, field := range config.FieldList {
    22  		_buf.WriteString(`
    23              var `)
    24  		_buf.WriteString(field.Name)
    25  		_buf.WriteString(`:`)
    26  		_buf.WriteString(field.TypeStr)
    27  		_buf.WriteString(` = `)
    28  		_buf.WriteString(field.TypeStr)
    29  		_buf.WriteString(`()
    30          `)
    31  	}
    32  	_buf.WriteString(`
    33  `)
    34  	if config.IsPublic {
    35  		_buf.WriteString(`
    36  mutating func ToData(inData:JSON){
    37  `)
    38  		for _, field := range config.FieldList {
    39  			_buf.WriteString(`
    40  `)
    41  			switch field.TypeStr {
    42  			case "Int":
    43  				_buf.WriteString(`self.`)
    44  				_buf.WriteString(field.Name)
    45  				_buf.WriteString(` = inData["`)
    46  				_buf.WriteString(field.Name)
    47  				_buf.WriteString(`"].intValue
    48          `)
    49  			case "NSString":
    50  				_buf.WriteString(`self.`)
    51  				_buf.WriteString(field.Name)
    52  				_buf.WriteString(` = inData["`)
    53  				_buf.WriteString(field.Name)
    54  				_buf.WriteString(`"].stringValue
    55          `)
    56  			case "Bool":
    57  				_buf.WriteString(`self.`)
    58  				_buf.WriteString(field.Name)
    59  				_buf.WriteString(` = inData["`)
    60  				_buf.WriteString(field.Name)
    61  				_buf.WriteString(`"].boolValue
    62          `)
    63  			case "NSDate":
    64  				_buf.WriteString(`self.`)
    65  				_buf.WriteString(field.Name)
    66  				_buf.WriteString(` = inData["`)
    67  				_buf.WriteString(field.Name)
    68  				_buf.WriteString(`"].stringValue.toDate(format: DateFormat.ISO8601)!
    69          `)
    70  			case "[NSString]", "[Int]", "[Bool]", "[NSDate]":
    71  				_buf.WriteString(`self.`)
    72  				_buf.WriteString(field.Name)
    73  				_buf.WriteString(` = inData["`)
    74  				_buf.WriteString(field.Name)
    75  				_buf.WriteString(`"].arrayObject as! `)
    76  				_buf.WriteString(field.TypeStr)
    77  				_buf.WriteString(`
    78          `)
    79  			default:
    80  				if strings.HasPrefix(field.TypeStr, "[") {
    81  					_buf.WriteString(` inData["Some"].array!.forEach({body in
    82          `)
    83  					oneType := kmgStrings.SubStr(field.TypeStr, 1, -1)
    84  					_buf.WriteString(`
    85          var one:`)
    86  					_buf.WriteString(oneType)
    87  					_buf.WriteString(` = `)
    88  					_buf.WriteString(oneType)
    89  					_buf.WriteString(`()
    90          one.ToData(body)
    91          self.`)
    92  					_buf.WriteString(field.Name)
    93  					_buf.WriteString(`.append(one)
    94          })`)
    95  				} else {
    96  					_buf.WriteString(`.ToData(inData["`)
    97  					_buf.WriteString(field.Name)
    98  					_buf.WriteString(`"])`)
    99  				}
   100  			}
   101  			_buf.WriteString(`
   102      `)
   103  		}
   104  		_buf.WriteString(`
   105      }
   106  `)
   107  	}
   108  	_buf.WriteString(`
   109  }
   110  `)
   111  	return _buf.String()
   112  }