| 160 | } |
| 161 | |
| 162 | public static Model deserializeFromDDF(BasicDDF ddf) throws DDFException { |
| 163 | List<String> data = ddf.getList(String.class); |
| 164 | List<String> metaData = new ArrayList<String>(); |
| 165 | List<Schema.Column> columns = ddf.getSchema().getColumns(); |
| 166 | |
| 167 | for (Schema.Column col : columns) { |
| 168 | metaData.add(col.getName()); |
| 169 | } |
| 170 | if (metaData.size() != data.size()) { |
| 171 | throw new DDFException(""); |
| 172 | } |
| 173 | |
| 174 | List<String> listJson = new ArrayList<String>(); |
| 175 | |
| 176 | for (int i = 0; i < metaData.size(); i++) { |
| 177 | String key = metaData.get(i); |
| 178 | String value = data.get(i); |
| 179 | listJson.add(String.format("\"%s\":%s", key, value)); |
| 180 | } |
| 181 | |
| 182 | String json = StringUtils.join(listJson, ","); |
| 183 | Model model = Model.fromJson(String.format("{%s}", json)); |
| 184 | |
| 185 | ddf.getManager().addModel(model); |
| 186 | return model; |
| 187 | } |
| 188 | |
| 189 | static class ModelDeserializer implements JsonDeserializer<Model> { |
| 190 | private Gson _gson = new Gson(); |