| #!/usr/bin/env python3
|
| TEMPLATE = """\
|
| %spublic %s %s {
|
| get {
|
| return %s_;
|
| }
|
| set {
|
| if (value != %s_) {
|
| %s_ = value;
|
| NotifyPropertyChanged("%s");
|
| }
|
| }
|
| }
|
| """
|
| JSONPROPERTY_TEMPLATE = '[JsonProperty]\n '
|
|
|
| def write(has_jsonproperty, vtype, name):
|
| if has_jsonproperty:
|
| jsonproperty = JSONPROPERTY_TEMPLATE
|
| else:
|
| jsonproperty = ''
|
| return TEMPLATE % (jsonproperty, vtype, name, name, name, name, name)
|
|
|
| properties = [
|
| '1 string name',
|
| '0 int another',
|
| # 12 fields omitted for brevity
|
| ]
|
| properties_split = [p.split() for p in properties]
|
|
|
| # Private definitions (internal)
|
| for has_jsonproperty, vtype, name in properties_split:
|
| print(" private %s %s_ { get; set; }" % (vtype, name))
|
|
|
| print()
|
| # Public definitions (with notifications)
|
| for has_jsonproperty, vtype, name in properties_split:
|
| print(write(has_jsonproperty == '1', vtype, name))
|