OLD | NEW |
1 // This is a generated file (see the discoveryapis_generator project). | 1 // This is a generated file (see the discoveryapis_generator project). |
2 | 2 |
3 library googleapis.fitness.v1; | 3 library googleapis.fitness.v1; |
4 | 4 |
5 import 'dart:core' as core; | 5 import 'dart:core' as core; |
6 import 'dart:async' as async; | 6 import 'dart:async' as async; |
7 import 'dart:convert' as convert; | 7 import 'dart:convert' as convert; |
8 | 8 |
9 import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; | 9 import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
10 import 'package:http/http.dart' as http; | 10 import 'package:http/http.dart' as http; |
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 } | 592 } |
593 | 593 |
594 | 594 |
595 class UsersDatasetResourceApi { | 595 class UsersDatasetResourceApi { |
596 final commons.ApiRequester _requester; | 596 final commons.ApiRequester _requester; |
597 | 597 |
598 UsersDatasetResourceApi(commons.ApiRequester client) : | 598 UsersDatasetResourceApi(commons.ApiRequester client) : |
599 _requester = client; | 599 _requester = client; |
600 | 600 |
601 /** | 601 /** |
| 602 * Aggregates data of a certain type or stream into buckets divided by a given |
| 603 * type of boundary. Multiple data sets of multiple types and from multiple |
| 604 * sources can be aggreated into exactly one bucket type per request. |
| 605 * |
602 * [request] - The metadata request object. | 606 * [request] - The metadata request object. |
603 * | 607 * |
604 * Request parameters: | 608 * Request parameters: |
605 * | 609 * |
606 * [userId] - null | 610 * [userId] - Aggregate data for the person identified. Use me to indicate the |
| 611 * authenticated user. Only me is supported at this time. |
607 * | 612 * |
608 * Completes with a [AggregateResponse]. | 613 * Completes with a [AggregateResponse]. |
609 * | 614 * |
610 * Completes with a [commons.ApiRequestError] if the API endpoint returned an | 615 * Completes with a [commons.ApiRequestError] if the API endpoint returned an |
611 * error. | 616 * error. |
612 * | 617 * |
613 * If the used [http.Client] completes with an error when making a REST call, | 618 * If the used [http.Client] completes with an error when making a REST call, |
614 * this method will complete with the same error. | 619 * this method will complete with the same error. |
615 */ | 620 */ |
616 async.Future<AggregateResponse> aggregate(AggregateRequest request, core.Strin
g userId) { | 621 async.Future<AggregateResponse> aggregate(AggregateRequest request, core.Strin
g userId) { |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
820 uploadMedia: _uploadMedia, | 825 uploadMedia: _uploadMedia, |
821 downloadOptions: _downloadOptions); | 826 downloadOptions: _downloadOptions); |
822 return _response.then((data) => new Session.fromJson(data)); | 827 return _response.then((data) => new Session.fromJson(data)); |
823 } | 828 } |
824 | 829 |
825 } | 830 } |
826 | 831 |
827 | 832 |
828 | 833 |
829 class AggregateBucket { | 834 class AggregateBucket { |
830 /** available for Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT */ | 835 /** Available for Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT */ |
831 core.int activity; | 836 core.int activity; |
832 /** There will be one dataset per datatype/datasource */ | 837 /** There will be one dataset per AggregateBy in the request. */ |
833 core.List<Dataset> dataset; | 838 core.List<Dataset> dataset; |
| 839 /** |
| 840 * The end time for the aggregated data, in milliseconds since epoch, |
| 841 * inclusive. |
| 842 */ |
834 core.String endTimeMillis; | 843 core.String endTimeMillis; |
835 /** available for Bucket.Type.SESSION */ | 844 /** Available for Bucket.Type.SESSION */ |
836 Session session; | 845 Session session; |
| 846 /** |
| 847 * The start time for the aggregated data, in milliseconds since epoch, |
| 848 * inclusive. |
| 849 */ |
837 core.String startTimeMillis; | 850 core.String startTimeMillis; |
838 /** | 851 /** |
839 * The type of a bucket signifies how the data aggregation is performed in the | 852 * The type of a bucket signifies how the data aggregation is performed in the |
840 * bucket. | 853 * bucket. |
841 * Possible string values are: | 854 * Possible string values are: |
842 * - "activitySegment" | 855 * - "activitySegment" |
843 * - "activityType" | 856 * - "activityType" |
844 * - "session" | 857 * - "session" |
845 * - "time" | 858 * - "time" |
846 * - "unknown" | 859 * - "unknown" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
887 if (startTimeMillis != null) { | 900 if (startTimeMillis != null) { |
888 _json["startTimeMillis"] = startTimeMillis; | 901 _json["startTimeMillis"] = startTimeMillis; |
889 } | 902 } |
890 if (type != null) { | 903 if (type != null) { |
891 _json["type"] = type; | 904 _json["type"] = type; |
892 } | 905 } |
893 return _json; | 906 return _json; |
894 } | 907 } |
895 } | 908 } |
896 | 909 |
| 910 /** The specification of which data to aggregate. */ |
897 class AggregateBy { | 911 class AggregateBy { |
| 912 /** |
| 913 * A data source ID to aggregate. Mutually exclusive of dataTypeName. Only |
| 914 * data from the specified data source ID will be included in the aggregation. |
| 915 * The dataset in the response will have the same data source ID. |
| 916 */ |
898 core.String dataSourceId; | 917 core.String dataSourceId; |
899 /** by dataype or by datasource */ | 918 /** |
| 919 * The data type to aggregate. All data sources providing this data type will |
| 920 * contribute data to the aggregation. The response will contain a single |
| 921 * dataset for this data type name. The dataset will have a data source ID of |
| 922 * derived:com.google.:com.google.android.gms:aggregated |
| 923 */ |
900 core.String dataTypeName; | 924 core.String dataTypeName; |
901 core.String outputDataSourceId; | |
902 core.String outputDataTypeName; | |
903 | 925 |
904 AggregateBy(); | 926 AggregateBy(); |
905 | 927 |
906 AggregateBy.fromJson(core.Map _json) { | 928 AggregateBy.fromJson(core.Map _json) { |
907 if (_json.containsKey("dataSourceId")) { | 929 if (_json.containsKey("dataSourceId")) { |
908 dataSourceId = _json["dataSourceId"]; | 930 dataSourceId = _json["dataSourceId"]; |
909 } | 931 } |
910 if (_json.containsKey("dataTypeName")) { | 932 if (_json.containsKey("dataTypeName")) { |
911 dataTypeName = _json["dataTypeName"]; | 933 dataTypeName = _json["dataTypeName"]; |
912 } | 934 } |
913 if (_json.containsKey("outputDataSourceId")) { | |
914 outputDataSourceId = _json["outputDataSourceId"]; | |
915 } | |
916 if (_json.containsKey("outputDataTypeName")) { | |
917 outputDataTypeName = _json["outputDataTypeName"]; | |
918 } | |
919 } | 935 } |
920 | 936 |
921 core.Map toJson() { | 937 core.Map toJson() { |
922 var _json = new core.Map(); | 938 var _json = new core.Map(); |
923 if (dataSourceId != null) { | 939 if (dataSourceId != null) { |
924 _json["dataSourceId"] = dataSourceId; | 940 _json["dataSourceId"] = dataSourceId; |
925 } | 941 } |
926 if (dataTypeName != null) { | 942 if (dataTypeName != null) { |
927 _json["dataTypeName"] = dataTypeName; | 943 _json["dataTypeName"] = dataTypeName; |
928 } | 944 } |
929 if (outputDataSourceId != null) { | |
930 _json["outputDataSourceId"] = outputDataSourceId; | |
931 } | |
932 if (outputDataTypeName != null) { | |
933 _json["outputDataTypeName"] = outputDataTypeName; | |
934 } | |
935 return _json; | 945 return _json; |
936 } | 946 } |
937 } | 947 } |
938 | 948 |
939 class AggregateRequest { | 949 class AggregateRequest { |
| 950 /** |
| 951 * The specification of data to be aggregated. At least one aggregateBy spec |
| 952 * must be provided. All data that is specified will be aggregated using the |
| 953 * same bucketing criteria. There will be one dataset in the response for |
| 954 * every aggregateBy spec. |
| 955 */ |
940 core.List<AggregateBy> aggregateBy; | 956 core.List<AggregateBy> aggregateBy; |
| 957 /** |
| 958 * Specifies that data be aggregated each activity segment recored for a user. |
| 959 * Similar to bucketByActivitySegment, but bucketing is done for each activity |
| 960 * segment rather than all segments of the same type. Mutually exclusive of |
| 961 * other bucketing specifications. |
| 962 */ |
941 BucketByActivity bucketByActivitySegment; | 963 BucketByActivity bucketByActivitySegment; |
| 964 /** |
| 965 * Specifies that data be aggregated by the type of activity being performed |
| 966 * when the data was recorded. All data that was recorded during a certain |
| 967 * activity type (for the given time range) will be aggregated into the same |
| 968 * bucket. Data that was recorded while the user was not active will not be |
| 969 * included in the response. Mutually exclusive of other bucketing |
| 970 * specifications. |
| 971 */ |
942 BucketByActivity bucketByActivityType; | 972 BucketByActivity bucketByActivityType; |
| 973 /** |
| 974 * Specifies that data be aggregated by user sessions. Data that does not fall |
| 975 * within the time range of a session will not be included in the response. |
| 976 * Mutually exclusive of other bucketing specifications. |
| 977 */ |
943 BucketBySession bucketBySession; | 978 BucketBySession bucketBySession; |
944 /** apparently oneof is not supported by reduced_nano_proto */ | 979 /** |
| 980 * Specifies that data be aggregated by a single time interval. Mutually |
| 981 * exclusive of other bucketing specifications. |
| 982 */ |
945 BucketByTime bucketByTime; | 983 BucketByTime bucketByTime; |
| 984 /** |
| 985 * The end of a window of time. Data that intersects with this time window |
| 986 * will be aggregated. The time is in milliseconds since epoch, inclusive. |
| 987 */ |
946 core.String endTimeMillis; | 988 core.String endTimeMillis; |
947 /** required time range */ | 989 /** |
| 990 * The start of a window of time. Data that intersects with this time window |
| 991 * will be aggregated. The time is in milliseconds since epoch, inclusive. |
| 992 */ |
948 core.String startTimeMillis; | 993 core.String startTimeMillis; |
949 | 994 |
950 AggregateRequest(); | 995 AggregateRequest(); |
951 | 996 |
952 AggregateRequest.fromJson(core.Map _json) { | 997 AggregateRequest.fromJson(core.Map _json) { |
953 if (_json.containsKey("aggregateBy")) { | 998 if (_json.containsKey("aggregateBy")) { |
954 aggregateBy = _json["aggregateBy"].map((value) => new AggregateBy.fromJson
(value)).toList(); | 999 aggregateBy = _json["aggregateBy"].map((value) => new AggregateBy.fromJson
(value)).toList(); |
955 } | 1000 } |
956 if (_json.containsKey("bucketByActivitySegment")) { | 1001 if (_json.containsKey("bucketByActivitySegment")) { |
957 bucketByActivitySegment = new BucketByActivity.fromJson(_json["bucketByAct
ivitySegment"]); | 1002 bucketByActivitySegment = new BucketByActivity.fromJson(_json["bucketByAct
ivitySegment"]); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
994 _json["endTimeMillis"] = endTimeMillis; | 1039 _json["endTimeMillis"] = endTimeMillis; |
995 } | 1040 } |
996 if (startTimeMillis != null) { | 1041 if (startTimeMillis != null) { |
997 _json["startTimeMillis"] = startTimeMillis; | 1042 _json["startTimeMillis"] = startTimeMillis; |
998 } | 1043 } |
999 return _json; | 1044 return _json; |
1000 } | 1045 } |
1001 } | 1046 } |
1002 | 1047 |
1003 class AggregateResponse { | 1048 class AggregateResponse { |
| 1049 /** A list of buckets containing the aggregated data. */ |
1004 core.List<AggregateBucket> bucket; | 1050 core.List<AggregateBucket> bucket; |
1005 | 1051 |
1006 AggregateResponse(); | 1052 AggregateResponse(); |
1007 | 1053 |
1008 AggregateResponse.fromJson(core.Map _json) { | 1054 AggregateResponse.fromJson(core.Map _json) { |
1009 if (_json.containsKey("bucket")) { | 1055 if (_json.containsKey("bucket")) { |
1010 bucket = _json["bucket"].map((value) => new AggregateBucket.fromJson(value
)).toList(); | 1056 bucket = _json["bucket"].map((value) => new AggregateBucket.fromJson(value
)).toList(); |
1011 } | 1057 } |
1012 } | 1058 } |
1013 | 1059 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1075 _json["packageName"] = packageName; | 1121 _json["packageName"] = packageName; |
1076 } | 1122 } |
1077 if (version != null) { | 1123 if (version != null) { |
1078 _json["version"] = version; | 1124 _json["version"] = version; |
1079 } | 1125 } |
1080 return _json; | 1126 return _json; |
1081 } | 1127 } |
1082 } | 1128 } |
1083 | 1129 |
1084 class BucketByActivity { | 1130 class BucketByActivity { |
1085 /** default activity stream will be used if not specified */ | 1131 /** |
| 1132 * The default activity stream will be used if a specific activityDataSourceId |
| 1133 * is not specified. |
| 1134 */ |
1086 core.String activityDataSourceId; | 1135 core.String activityDataSourceId; |
1087 /** Only activity segments of duration longer than this is used */ | 1136 /** |
| 1137 * Specifies that only activity segments of duration longer than |
| 1138 * minDurationMillis are considered and used as a container for aggregated |
| 1139 * data. |
| 1140 */ |
1088 core.String minDurationMillis; | 1141 core.String minDurationMillis; |
1089 | 1142 |
1090 BucketByActivity(); | 1143 BucketByActivity(); |
1091 | 1144 |
1092 BucketByActivity.fromJson(core.Map _json) { | 1145 BucketByActivity.fromJson(core.Map _json) { |
1093 if (_json.containsKey("activityDataSourceId")) { | 1146 if (_json.containsKey("activityDataSourceId")) { |
1094 activityDataSourceId = _json["activityDataSourceId"]; | 1147 activityDataSourceId = _json["activityDataSourceId"]; |
1095 } | 1148 } |
1096 if (_json.containsKey("minDurationMillis")) { | 1149 if (_json.containsKey("minDurationMillis")) { |
1097 minDurationMillis = _json["minDurationMillis"]; | 1150 minDurationMillis = _json["minDurationMillis"]; |
1098 } | 1151 } |
1099 } | 1152 } |
1100 | 1153 |
1101 core.Map toJson() { | 1154 core.Map toJson() { |
1102 var _json = new core.Map(); | 1155 var _json = new core.Map(); |
1103 if (activityDataSourceId != null) { | 1156 if (activityDataSourceId != null) { |
1104 _json["activityDataSourceId"] = activityDataSourceId; | 1157 _json["activityDataSourceId"] = activityDataSourceId; |
1105 } | 1158 } |
1106 if (minDurationMillis != null) { | 1159 if (minDurationMillis != null) { |
1107 _json["minDurationMillis"] = minDurationMillis; | 1160 _json["minDurationMillis"] = minDurationMillis; |
1108 } | 1161 } |
1109 return _json; | 1162 return _json; |
1110 } | 1163 } |
1111 } | 1164 } |
1112 | 1165 |
1113 class BucketBySession { | 1166 class BucketBySession { |
1114 /** Only sessions of duration longer than this is used */ | 1167 /** |
| 1168 * Specifies that only sessions of duration longer than minDurationMillis are |
| 1169 * considered and used as a container for aggregated data. |
| 1170 */ |
1115 core.String minDurationMillis; | 1171 core.String minDurationMillis; |
1116 | 1172 |
1117 BucketBySession(); | 1173 BucketBySession(); |
1118 | 1174 |
1119 BucketBySession.fromJson(core.Map _json) { | 1175 BucketBySession.fromJson(core.Map _json) { |
1120 if (_json.containsKey("minDurationMillis")) { | 1176 if (_json.containsKey("minDurationMillis")) { |
1121 minDurationMillis = _json["minDurationMillis"]; | 1177 minDurationMillis = _json["minDurationMillis"]; |
1122 } | 1178 } |
1123 } | 1179 } |
1124 | 1180 |
1125 core.Map toJson() { | 1181 core.Map toJson() { |
1126 var _json = new core.Map(); | 1182 var _json = new core.Map(); |
1127 if (minDurationMillis != null) { | 1183 if (minDurationMillis != null) { |
1128 _json["minDurationMillis"] = minDurationMillis; | 1184 _json["minDurationMillis"] = minDurationMillis; |
1129 } | 1185 } |
1130 return _json; | 1186 return _json; |
1131 } | 1187 } |
1132 } | 1188 } |
1133 | 1189 |
1134 class BucketByTime { | 1190 class BucketByTime { |
| 1191 /** |
| 1192 * Specifies that result buckets aggregate data by exactly durationMillis time |
| 1193 * frames. Time frames that contain no data will be included in the response |
| 1194 * with an empty dataset. |
| 1195 */ |
1135 core.String durationMillis; | 1196 core.String durationMillis; |
1136 | 1197 |
1137 BucketByTime(); | 1198 BucketByTime(); |
1138 | 1199 |
1139 BucketByTime.fromJson(core.Map _json) { | 1200 BucketByTime.fromJson(core.Map _json) { |
1140 if (_json.containsKey("durationMillis")) { | 1201 if (_json.containsKey("durationMillis")) { |
1141 durationMillis = _json["durationMillis"]; | 1202 durationMillis = _json["durationMillis"]; |
1142 } | 1203 } |
1143 } | 1204 } |
1144 | 1205 |
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1718 _json["nextPageToken"] = nextPageToken; | 1779 _json["nextPageToken"] = nextPageToken; |
1719 } | 1780 } |
1720 if (session != null) { | 1781 if (session != null) { |
1721 _json["session"] = session.map((value) => (value).toJson()).toList(); | 1782 _json["session"] = session.map((value) => (value).toJson()).toList(); |
1722 } | 1783 } |
1723 return _json; | 1784 return _json; |
1724 } | 1785 } |
1725 } | 1786 } |
1726 | 1787 |
1727 /** | 1788 /** |
| 1789 * Holder object for the value of an entry in a map field of a data point. |
| 1790 * |
| 1791 * A map value supports a subset of the formats that the regular Value supports. |
| 1792 */ |
| 1793 class MapValue { |
| 1794 /** Floating point value. */ |
| 1795 core.double fpVal; |
| 1796 |
| 1797 MapValue(); |
| 1798 |
| 1799 MapValue.fromJson(core.Map _json) { |
| 1800 if (_json.containsKey("fpVal")) { |
| 1801 fpVal = _json["fpVal"]; |
| 1802 } |
| 1803 } |
| 1804 |
| 1805 core.Map toJson() { |
| 1806 var _json = new core.Map(); |
| 1807 if (fpVal != null) { |
| 1808 _json["fpVal"] = fpVal; |
| 1809 } |
| 1810 return _json; |
| 1811 } |
| 1812 } |
| 1813 |
| 1814 /** |
1728 * Sessions contain metadata, such as a user-friendly name and time interval | 1815 * Sessions contain metadata, such as a user-friendly name and time interval |
1729 * information. | 1816 * information. |
1730 */ | 1817 */ |
1731 class Session { | 1818 class Session { |
1732 /** | 1819 /** |
1733 * Session active time. While start_time_millis and end_time_millis define the | 1820 * Session active time. While start_time_millis and end_time_millis define the |
1734 * full session time, the active time can be shorter and specified by | 1821 * full session time, the active time can be shorter and specified by |
1735 * active_time_millis. If the inactive time during the session is known, it | 1822 * active_time_millis. If the inactive time during the session is known, it |
1736 * should also be inserted via a com.google.activity.segment data point with a | 1823 * should also be inserted via a com.google.activity.segment data point with a |
1737 * STILL activity value | 1824 * STILL activity value |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1822 } | 1909 } |
1823 } | 1910 } |
1824 | 1911 |
1825 /** | 1912 /** |
1826 * Holder object for the value of a single field in a data point. | 1913 * Holder object for the value of a single field in a data point. |
1827 * | 1914 * |
1828 * A field value has a particular format and is only ever set to one of an | 1915 * A field value has a particular format and is only ever set to one of an |
1829 * integer or a floating point value. | 1916 * integer or a floating point value. |
1830 */ | 1917 */ |
1831 class Value { | 1918 class Value { |
1832 /** Floating point value. When this is set, intVal must not be set. */ | 1919 /** Floating point value. When this is set, other values must not be set. */ |
1833 core.double fpVal; | 1920 core.double fpVal; |
1834 /** Integer value. When this is set, fpVal must not be set. */ | 1921 /** Integer value. When this is set, other values must not be set. */ |
1835 core.int intVal; | 1922 core.int intVal; |
| 1923 /** |
| 1924 * Map value. The valid key space and units for the corresponding value of |
| 1925 * each entry should be documented as part of the data type definition. Keys |
| 1926 * should be kept small whenever possible. Data streams with large keys and |
| 1927 * high data frequency may be down sampled. |
| 1928 */ |
| 1929 core.List<ValueMapValEntry> mapVal; |
| 1930 /** |
| 1931 * String value. When this is set, other values must not be set. Strings |
| 1932 * should be kept small whenever possible. Data streams with large string |
| 1933 * values and high data frequency may be down sampled. |
| 1934 */ |
| 1935 core.String stringVal; |
1836 | 1936 |
1837 Value(); | 1937 Value(); |
1838 | 1938 |
1839 Value.fromJson(core.Map _json) { | 1939 Value.fromJson(core.Map _json) { |
1840 if (_json.containsKey("fpVal")) { | 1940 if (_json.containsKey("fpVal")) { |
1841 fpVal = _json["fpVal"]; | 1941 fpVal = _json["fpVal"]; |
1842 } | 1942 } |
1843 if (_json.containsKey("intVal")) { | 1943 if (_json.containsKey("intVal")) { |
1844 intVal = _json["intVal"]; | 1944 intVal = _json["intVal"]; |
1845 } | 1945 } |
| 1946 if (_json.containsKey("mapVal")) { |
| 1947 mapVal = _json["mapVal"].map((value) => new ValueMapValEntry.fromJson(valu
e)).toList(); |
| 1948 } |
| 1949 if (_json.containsKey("stringVal")) { |
| 1950 stringVal = _json["stringVal"]; |
| 1951 } |
1846 } | 1952 } |
1847 | 1953 |
1848 core.Map toJson() { | 1954 core.Map toJson() { |
1849 var _json = new core.Map(); | 1955 var _json = new core.Map(); |
1850 if (fpVal != null) { | 1956 if (fpVal != null) { |
1851 _json["fpVal"] = fpVal; | 1957 _json["fpVal"] = fpVal; |
1852 } | 1958 } |
1853 if (intVal != null) { | 1959 if (intVal != null) { |
1854 _json["intVal"] = intVal; | 1960 _json["intVal"] = intVal; |
1855 } | 1961 } |
| 1962 if (mapVal != null) { |
| 1963 _json["mapVal"] = mapVal.map((value) => (value).toJson()).toList(); |
| 1964 } |
| 1965 if (stringVal != null) { |
| 1966 _json["stringVal"] = stringVal; |
| 1967 } |
1856 return _json; | 1968 return _json; |
1857 } | 1969 } |
1858 } | 1970 } |
| 1971 |
| 1972 class ValueMapValEntry { |
| 1973 core.String key; |
| 1974 MapValue value; |
| 1975 |
| 1976 ValueMapValEntry(); |
| 1977 |
| 1978 ValueMapValEntry.fromJson(core.Map _json) { |
| 1979 if (_json.containsKey("key")) { |
| 1980 key = _json["key"]; |
| 1981 } |
| 1982 if (_json.containsKey("value")) { |
| 1983 value = new MapValue.fromJson(_json["value"]); |
| 1984 } |
| 1985 } |
| 1986 |
| 1987 core.Map toJson() { |
| 1988 var _json = new core.Map(); |
| 1989 if (key != null) { |
| 1990 _json["key"] = key; |
| 1991 } |
| 1992 if (value != null) { |
| 1993 _json["value"] = (value).toJson(); |
| 1994 } |
| 1995 return _json; |
| 1996 } |
| 1997 } |
OLD | NEW |