Subversion Repositories SmartDukaan

Rev

Rev 4964 | Rev 5370 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
457 rajveer 1
package in.shop2020.util;
2
 
1226 rajveer 3
import in.shop2020.metamodel.core.Bullet;
479 rajveer 4
import in.shop2020.metamodel.core.Entity;
1226 rajveer 5
import in.shop2020.metamodel.core.EntityState;
3873 mandeep.dh 6
import in.shop2020.metamodel.core.EnumDataObject;
1226 rajveer 7
import in.shop2020.metamodel.core.Feature;
479 rajveer 8
import in.shop2020.metamodel.core.FreeformContent;
1226 rajveer 9
import in.shop2020.metamodel.core.PrimitiveDataObject;
479 rajveer 10
import in.shop2020.metamodel.core.Slide;
580 rajveer 11
import in.shop2020.metamodel.definitions.BulletDefinition;
457 rajveer 12
import in.shop2020.metamodel.definitions.Catalog;
580 rajveer 13
import in.shop2020.metamodel.definitions.Category;
14
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
457 rajveer 15
import in.shop2020.metamodel.definitions.DefinitionsContainer;
580 rajveer 16
import in.shop2020.metamodel.definitions.FeatureDefinition;
17
import in.shop2020.metamodel.definitions.SlideDefinition;
18
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;
479 rajveer 19
import in.shop2020.metamodel.util.CreationUtils;
2720 mandeep.dh 20
import in.shop2020.metamodel.util.ExpandedBullet;
1739 rajveer 21
import in.shop2020.metamodel.util.ExpandedEntity;
2287 rajveer 22
import in.shop2020.model.v1.catalog.InventoryService.Client;
23
import in.shop2020.model.v1.catalog.Item;
24
import in.shop2020.model.v1.catalog.status;
3127 rajveer 25
import in.shop2020.thrift.clients.CatalogClient;
4706 amit.gupta 26
import in.shop2020.utils.Logger;
457 rajveer 27
 
2720 mandeep.dh 28
import java.io.BufferedReader;
29
import java.io.DataInputStream;
30
import java.io.File;
31
import java.io.FileInputStream;
32
import java.io.InputStreamReader;
33
import java.util.ArrayList;
3873 mandeep.dh 34
import java.util.Collections;
4706 amit.gupta 35
import java.util.HashMap;
2720 mandeep.dh 36
import java.util.List;
37
import java.util.Map;
4706 amit.gupta 38
import java.util.Set;
2720 mandeep.dh 39
import java.util.TreeMap;
580 rajveer 40
 
4818 amit.gupta 41
import org.apache.commons.lang.ArrayUtils;
42
import org.apache.commons.lang.StringUtils;
43
 
457 rajveer 44
/*
45
 * @author rajveer 
46
 * 
47
 *
48
 */
49
 
50
public class ContentMigrator {
51
	private String sourceDbPath;
52
	private String destinationDbPath;
4964 amit.gupta 53
 
457 rajveer 54
	public static void main(String[] args) throws Exception {
55
		String usage = "Usage: ContentMigrator {source db path}{destination db path}";
4964 amit.gupta 56
 
57
		String sourceDbPath = null, destinationDbPath = null;
58
		String dryRun = null;
59
		// if(args.length < 2) {
60
		// System.out.println(usage);
61
		// System.exit(-1);
62
		// }else{
63
		// sourceDbPath = args[0];
64
		// destinationDbPath = args[1];
65
		// dryRun = args[2];
66
		// }
67
		//
5281 amit.gupta 68
		ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath,destinationDbPath);
69
		contentmigrator.migrateNetwork();
70
		//contentmigrator.renameTitles();
4964 amit.gupta 71
		// contentmigrator.migrateWarrantyType();
72
		// CreationUtils.storeComparisonStats(null);n
73
		// contentmigrator.migrateMedia();
74
		// contentmigrator.populateHelpdocEntityIds();
75
		// contentmigrator.migrateDataBack();
76
		// contentmigrator.migrateBrandModel(dryRun);
77
		// contentmigrator.migrateData();
78
		// contentmigrator.migrateRemoveBorrowedCategoryIdFromSlide();
79
		// contentmigrator.migrateModel1();
80
		// contentmigrator.changeEntityState();
81
		// contentmigrator.removeBrowserBullets();
82
		// contentmigrator.migrateModel2();
83
		// contentmigrator.printDataModel();
84
		// contentmigrator.makeEntitiesObject();
85
		// contentmigrator.printSlides();
1739 rajveer 86
		/*
4964 amit.gupta 87
		 * DefinitionsContainer dfc =
88
		 * Catalog.getInstance().getDefinitionsContainer(); for(Long fid:
89
		 * dfc.getCategoryFacetDefinitions().keySet()){ for(FacetDefinition
90
		 * facetDef:
91
		 * dfc.getCategoryFacetDefinitions().get(fid).getFacetDefinitions()){
92
		 * System.out.println("***" + fid + " *** " + facetDef.getID() +
93
		 * facetDef.getTarget() ); }
94
		 * 
95
		 * }
96
		 */
97
 
98
		// System.out.println("**********" + dfc.getCategoryFacetDefinitions());
99
		// System.out.println("**********" + dfc.getSlideFacetDefinitions());
100
 
101
		/*
102
		 * for(Long defID : dfc.getSlideFacetDefinitions().keySet()){
103
		 * for(FacetDefinition facetDef:
104
		 * dfc.getSlideFacetDefinitions().get(defID)){ System.out.println(defID
105
		 * + "****" + facetDef.getID() + facetDef.getDescription()); }
106
		 * 
107
		 * }
108
		 */
109
 
110
		/*
111
		 * System.out.println(OldCreationUtils.getSlideSequence(1000194));
112
		 * List<Slide> slides = OldCreationUtils.getEntity(1000194).getSlides();
113
		 * for(Slide slide: slides){
114
		 * System.out.println(slide.getSlideDefinitionID()); }
115
		 */
116
 
117
		// ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath,
118
		// destinationDbPath);
119
		// boolean result = contentmigrator.migrate();
120
		// System.out.println("Content migration status:  "+ result);
121
 
122
	}
123
 
124
	private void renameTitles() throws Exception {
125
		Map<Long, Entity> map = CreationUtils.getEntities();
126
		for (Long entityId : map.keySet()) {
127
			Entity entity = map.get(entityId);
128
			if (entity == null || entity.getSlides() == null) {
129
				continue;
1314 rajveer 130
			}
131
 
4964 amit.gupta 132
 
133
			String brand = entity.getBrand();
134
			String modelName = entity.getModelName();
135
			String modelNumber = entity.getModelNumber();
136
			String value = "";
137
			if(StringUtils.isEmpty(modelName)){
138
				value = brand + " " + modelNumber + " Price in India | Specifications, Features and Reviews";
139
			}else {
140
				value = brand + " " + modelName + " Price in India | " + modelNumber + " Specifications, Features and Reviews";
1314 rajveer 141
			}
142
 
4964 amit.gupta 143
			Slide summarySlide = entity.getSlide(130054);
144
			if(summarySlide != null){
145
				for(Feature f : summarySlide.getFeatures()){
146
					if (f.getFeatureDefinitionID()==120132){
147
						List<Bullet> bulletList = f.getBullets();
148
						for (Bullet b : bulletList) {
149
							b.setDataObject(new PrimitiveDataObject(value));
150
						}
151
						CreationUtils.updateEntity(entity);
152
						continue;
153
					}
154
				}
155
			}
1314 rajveer 156
		}
457 rajveer 157
	}
158
 
4818 amit.gupta 159
	private void migrateNetwork() throws Exception {
160
		Map<Long, Entity> map = CreationUtils.getEntities();
4964 amit.gupta 161
		for (Long entityId : map.keySet()) {
162
			Entity entity = map.get(entityId);
163
			if (entity == null || entity.getSlides() == null) {
164
				continue;
165
			}
4818 amit.gupta 166
 
4964 amit.gupta 167
			for (Slide slide : entity.getSlides()) {
5281 amit.gupta 168
				if (slide.getSlideDefinitionID() == 130095) {
169
					List<Slide> slides = slide.getChildrenSlides();
170
					for(Slide slide1  : slides){
171
						if(slide1.getSlideDefinitionID() == 130096){							
172
							List<Feature> features = slide1.getFeatures();
173
							for (Feature f : features) {
174
								if (f.getFeatureDefinitionID() == 120175) {
175
									List<Bullet> bs = f.getBullets();
176
									for (Bullet b : bs) {
177
										Long enumValueId = ((EnumDataObject) b
178
												.getDataObject()).getEnumValueID();
179
										String value = Catalog.getInstance().getDefinitionsContainer().getEnumValue(enumValueId).getValue(); 
180
										if (value.trim().equals("")) {
181
											continue;
182
										}
183
										System.out.println(value);
184
 
185
									}
4964 amit.gupta 186
								}
187
							}
188
						}
189
					}
190
				}
191
 
192
			}
193
 
194
			CreationUtils.updateEntity(entity);
195
		}
4818 amit.gupta 196
	}
197
 
198
	private long getEnumValueForNetwork(String value, Long entityLong) {
199
		value = value.toLowerCase().replaceAll(" ", "");
200
		Map<String, Long> map = new HashMap<String, Long>();
4964 amit.gupta 201
		map.put("quadband(gsm850/900/1800/1900)", 110382L);
4818 amit.gupta 202
		map.put("quadband(gsm850/900/1800/1900)-sim1", 110383l);
203
		map.put("quadband(gsm850/900/1800/1900)-sim2", 110384l);
204
		map.put("triband(gsm900/1800/1900)", 110385l);
205
		map.put("triband(gsm900/1800/1900)-sim1", 110386l);
206
		map.put("triband(gsm900/1800/1900)-sim2", 110387l);
207
		map.put("dualband(gsm900/1800)", 110388l);
208
		map.put("dualband(gsm900/1800)-sim1", 110389l);
209
		map.put("dualband(gsm900/1800)-sim2", 110390l);
4964 amit.gupta 210
		map.put("cdma800", 110391l); // CDMA 800
211
		map.put("cdma800-sim2", 110392l); // CDMA 800-SIM 2
212
		map.put("cdma800-sim3", 110393l); // CDMA 800-SIM 3
213
 
214
		if (!StringUtils.contains(value, "sim")
215
				&& StringUtils.contains(value, "850/900/1800/1900")) {
4818 amit.gupta 216
			return map.get("quadband(gsm850/900/1800/1900)");
217
		}
4964 amit.gupta 218
		if (StringUtils.contains(value, "sim1")
219
				&& StringUtils.contains(value, "850/900/1800/1900")) {
4818 amit.gupta 220
			return map.get("quadband(gsm850/900/1800/1900)-sim1");
221
		}
4964 amit.gupta 222
		if (StringUtils.contains(value, "sim2")
223
				&& StringUtils.contains(value, "850/900/1800/1900")) {
4818 amit.gupta 224
			return map.get("quadband(gsm850/900/1800/1900)-sim2");
225
		}
4964 amit.gupta 226
		if (!StringUtils.contains(value, "sim")
227
				&& StringUtils.contains(value, "900/1800/1900")) {
4818 amit.gupta 228
			return map.get("triband(gsm900/1800/1900)");
229
		}
4964 amit.gupta 230
		if (StringUtils.contains(value, "sim1")
231
				&& StringUtils.contains(value, "900/1800/1900")) {
4818 amit.gupta 232
			return map.get("triband(gsm900/1800/1900)-sim1");
233
		}
4964 amit.gupta 234
		if (StringUtils.contains(value, "sim2")
235
				&& StringUtils.contains(value, "900/1800/1900")) {
4818 amit.gupta 236
			return map.get("triband(gsm900/1800/1900)-sim2");
237
		}
4964 amit.gupta 238
		if (!StringUtils.contains(value, "sim")
239
				&& StringUtils.contains(value, "900/1800")) {
4818 amit.gupta 240
			return map.get("dualband(gsm900/1800)");
241
		}
4964 amit.gupta 242
		if (StringUtils.contains(value, "sim1")
243
				&& StringUtils.contains(value, "900/1800")) {
4818 amit.gupta 244
			return map.get("dualband(gsm900/1800)-sim1");
245
		}
4964 amit.gupta 246
		if (StringUtils.contains(value, "sim2")
247
				&& StringUtils.contains(value, "900/1800")) {
4818 amit.gupta 248
			return map.get("dualband(gsm900/1800)-sim2");
249
		}
4964 amit.gupta 250
		if (StringUtils.contains(value, "cdma")) {
251
			if (StringUtils.contains(value, "sim2")) {
4818 amit.gupta 252
				return map.get("cdma800-sim2");
253
			}
4964 amit.gupta 254
			if (StringUtils.contains(value, "sim3")) {
4818 amit.gupta 255
				return map.get("cdma800-sim3");
256
			}
257
			return map.get("cdma800");
4964 amit.gupta 258
		} else {
259
			System.out.println("Unknown networks: " + value + " : "
260
					+ entityLong);
4818 amit.gupta 261
			return 0;
262
		}
263
	}
264
 
457 rajveer 265
	public ContentMigrator(String sourceDbPath, String destinationDbPath) {
4964 amit.gupta 266
		this.sourceDbPath = sourceDbPath;
457 rajveer 267
		this.destinationDbPath = destinationDbPath;
268
	}
2720 mandeep.dh 269
 
3873 mandeep.dh 270
	public void migrateWarrantyType() throws Exception {
4964 amit.gupta 271
		Map<Long, Entity> map = CreationUtils.getEntities();
272
		for (Long entityId : map.keySet()) {
273
			Entity entity = map.get(entityId);
274
			if (entity == null || entity.getSlides() == null) {
275
				continue;
276
			}
277
			for (Slide slide : entity.getSlides()) {
278
				if (slide.getSlideDefinitionID() == 130054) {
279
					Slide warrantySlide = new Slide(130105);
280
					warrantySlide.setFeatures(new ArrayList<Feature>());
3873 mandeep.dh 281
 
4964 amit.gupta 282
					Feature feature = new Feature(120219);
283
					feature.setBullets(Collections.singletonList(new Bullet(
284
							new EnumDataObject(110299))));
285
					warrantySlide.getFeatures().add(feature);
3873 mandeep.dh 286
 
4964 amit.gupta 287
					Feature existingWarrantyFeature = null;
288
					for (Feature summaryFeature : slide.getFeatures()) {
289
						if (summaryFeature.getFeatureDefinitionID() == 120125) {
290
							existingWarrantyFeature = summaryFeature;
291
							warrantySlide.getFeatures().add(summaryFeature);
292
							break;
293
						}
294
					}
3873 mandeep.dh 295
 
4964 amit.gupta 296
					slide.getFeatures().remove(existingWarrantyFeature);
297
					slide.addChild(warrantySlide);
298
					break;
299
				}
300
 
301
			}
302
 
303
			CreationUtils.updateEntity(entity);
304
		}
3873 mandeep.dh 305
	}
306
 
2720 mandeep.dh 307
	public void migrateMedia() throws Exception {
4964 amit.gupta 308
		Map<Long, Entity> map = CreationUtils.getEntities();
309
		for (Long entityId : map.keySet()) {
310
			Entity entity = map.get(entityId);
311
			if (entity == null || entity.getSlides() == null) {
312
				continue;
313
			}
314
			for (Slide slide : entity.getSlides()) {
315
				FreeformContent ffc = slide.getFreeformContent();
2720 mandeep.dh 316
 
4964 amit.gupta 317
				// if (ffc == null || ffc.getMediasNew() == null) {
318
				// continue;
319
				// }
320
				//
321
				// Map<String, Media> newMap = new LinkedHashMap<String,
322
				// Media>();
323
				// Media media = null;
324
				// for (String label : ffc.getMediasNew().keySet()) {
325
				// MediaNew m = ffc.getMediasNew().get(label);
326
				// media = new Media(m.getLabel(), Media.Type.valueOf(m
327
				// .getType().name()), m.getLocation());
328
				// media.setTitle(m.getTitle());
329
				// media.setFileName(m.getFileName());
330
				// newMap.put(label, media);
331
				// }
332
				// ffc.setMedias(newMap);
333
				// ffc.setMediasNew(null);
2720 mandeep.dh 334
 
4964 amit.gupta 335
				// if (ffc == null || ffc.getMedias() == null) {
336
				// continue;
337
				// }
338
				// Map<String, MediaNew> newMap = new LinkedHashMap<String,
339
				// MediaNew>();
340
				// MediaNew mediaNew = null;
341
				// for (String label : ffc.getMedias().keySet()) {
342
				// Media m = ffc.getMedias().get(label);
343
				// if (m.getType().equalsIgnoreCase("image")) {
344
				// mediaNew = new MediaNew(m.getLabel(),
345
				// MediaNew.Type.IMAGE, m.getLocation());
346
				// mediaNew.setFileName(m.getFileName());
347
				// } else if (m.getType().equalsIgnoreCase("youtube")) {
348
				// if (m.getVideoType().equalsIgnoreCase("withskin")) {
349
				// mediaNew = new MediaNew(m.getLabel(),
350
				// MediaNew.Type.VIDEO_WITH_SKIN,
351
				// m.getLocation());
352
				// } else {
353
				// mediaNew = new MediaNew(m.getLabel(),
354
				// MediaNew.Type.VIDEO_WITHOUT_SKIN,
355
				// m.getLocation());
356
				// }
357
				// }
358
				//
359
				// if (mediaNew != null) {
360
				// mediaNew.setTitle(m.getTitle());
361
				// newMap.put(label, mediaNew);
362
				// }
363
				// }
364
				// ffc.setMediasNew(newMap);
365
				// ffc.setMedias(null);
366
			}
367
			CreationUtils.updateEntity(entity);
368
		}
2720 mandeep.dh 369
	}
370
 
4964 amit.gupta 371
	public boolean populateHelpdocEntityIds() throws Exception {
372
		for (Entity entity : CreationUtils.getEntities().values()) {
2471 rajveer 373
			CreationUtils.updateEntity(entity);
374
		}
375
		return true;
376
	}
2720 mandeep.dh 377
 
4964 amit.gupta 378
	public boolean migrateBrandModel(String dryRun) throws Exception {
3127 rajveer 379
		CatalogClient catalogServiceClient = new CatalogClient();
2287 rajveer 380
		Client client = catalogServiceClient.getClient();
381
		List<Item> items = client.getAllItemsByStatus(status.ACTIVE);
382
		items.addAll(client.getAllItemsByStatus(status.PAUSED));
383
		items.addAll(client.getAllItemsByStatus(status.CONTENT_COMPLETE));
384
		Map<Long, Entity> entities = CreationUtils.getEntities();
385
		long count = 0;
386
		StringBuffer sb = new StringBuffer();
4964 amit.gupta 387
		for (Item item : items) {
2287 rajveer 388
			long entityId = item.getCatalogItemId();
389
			Entity entity = entities.get(entityId);
4964 amit.gupta 390
			if (entity == null) {
2292 rajveer 391
				continue;
392
			}
2294 rajveer 393
			String itemBrand = item.getBrand().trim();
2287 rajveer 394
			String itemModelName = item.getModelName();
4964 amit.gupta 395
			if (itemModelName != null) {
2294 rajveer 396
				itemModelName = itemModelName.trim();
397
			}
398
			String itemModelNumber = item.getModelNumber().trim();
399
			String entityBrand = entity.getBrand().trim();
400
			String entityModelName = entity.getModelName().trim();
4964 amit.gupta 401
			if (entityModelName != null) {
2294 rajveer 402
				entityModelName = entityModelName.trim();
403
			}
404
			String entityModelNumber = entity.getModelNumber().trim();
4964 amit.gupta 405
 
406
			if (itemBrand.equals(entityBrand)
407
					&& itemModelNumber.equals(entityModelNumber)) {
408
				if (itemModelName != null && entityModelName != null
409
						&& itemModelName.equals(entityModelName)) {
2292 rajveer 410
					continue;
4964 amit.gupta 411
				} else if (itemModelName == null && entityModelName == null) {
412
					continue;
2292 rajveer 413
				}
4964 amit.gupta 414
 
2287 rajveer 415
			}
416
			count++;
4964 amit.gupta 417
			sb.append(count + ") Item:   " + itemBrand + "\t" + itemModelName
418
					+ "\t" + itemModelNumber + "\t" + item.getId() + "\n");
419
			sb.append(count + ") Entity: " + entityBrand + "\t"
420
					+ entityModelName + "\t" + entityModelNumber + "\t"
421
					+ entity.getID() + "\n");
422
 
423
			if (dryRun.equals("false")) {
2294 rajveer 424
				item.setBrand(entityBrand);
425
				item.setModelName(entityModelName);
426
				item.setModelNumber(entityModelNumber);
4964 amit.gupta 427
				client.updateItem(item);
2287 rajveer 428
			}
429
		}
430
		System.out.println(sb.toString());
431
		return true;
432
	}
2720 mandeep.dh 433
 
473 rajveer 434
	/**
4964 amit.gupta 435
	 * this function will read source definition and source entities, and will
436
	 * convert source entities to destination entities according to destination
437
	 * definitions.
473 rajveer 438
	 * 
439
	 * @return boolean
4964 amit.gupta 440
	 * @throws Exception
473 rajveer 441
	 */
1226 rajveer 442
 
4964 amit.gupta 443
	public void printSlides() throws Exception {
444
		DefinitionsContainer defc = Catalog.getInstance()
445
				.getDefinitionsContainer();
446
		for (Category category : defc.getCategories().values()) {
447
			if (category.getChildrenCategory() != null)
448
				continue;
449
			System.out.println(category.getID() + "\t" + category.getLabel());
450
			for (CategorySlideDefinition defs : defc
451
					.getCategorySlideDefinitions(category.getID())) {
452
				System.out.println(defs.getSlideDefintionID()
453
						+ "\t"
454
						+ defs.getEditorialImportance()
455
						+ "\t"
456
						+ defc.getSlideDefinition(defs.getSlideDefintionID())
457
								.getLabel()
458
						+ "\t"
459
						+ defc.getSlideDefinition(defs.getSlideDefintionID())
460
								.getChildrenSlideDefinitionIDs());
1226 rajveer 461
			}
462
		}
463
	}
4964 amit.gupta 464
 
465
	public void removeBrowserBullets() throws Exception {
466
		Map<Long, List<ExpandedBullet>> learnedBullets = CreationUtils
467
				.getLearnedBullets();
1226 rajveer 468
		learnedBullets.get(new Long(120076));
469
		learnedBullets.remove(new Long(120076));
470
		CreationUtils.storeLearnedBullets(learnedBullets);
4964 amit.gupta 471
 
1226 rajveer 472
	}
4964 amit.gupta 473
 
474
	public boolean changeEntityState() throws Exception {
1226 rajveer 475
		Map<Long, EntityState> entitiesState = CreationUtils.getEntitiesState();
4964 amit.gupta 476
		for (Long entityId : entitiesState.keySet()) {
1226 rajveer 477
			EntityState state = entitiesState.get(entityId);
4964 amit.gupta 478
			if (state.getCategoryID() == 10002
479
					|| state.getCategoryID() == 10003
480
					|| state.getCategoryID() == 10004
481
					|| state.getCategoryID() == 10005) {
1226 rajveer 482
				state.setCompletedBy("");
483
				state.setMerkedReadyBy("");
4964 amit.gupta 484
				// state.setStatus(EntityStatus.ASSIGNED);
485
				// CreationUtils.updateEntityState(state);
1226 rajveer 486
				System.out.println(entityId + ":" + state.getStatus());
487
			}
488
			CreationUtils.updateEntityState(state);
489
		}
490
		return true;
491
	}
1739 rajveer 492
 
4964 amit.gupta 493
	public boolean migrateDataBack() throws Exception {
1226 rajveer 494
		Map<Long, Entity> entities = CreationUtils.getEntities();
4964 amit.gupta 495
		for (Entity entity : entities.values()) {
496
			if (entity == null) {
497
				continue;
498
			}
1226 rajveer 499
			List<Slide> slides = entity.getSlides();
4964 amit.gupta 500
			if (slides != null) {
501
				for (Slide slide : slides) {
502
					if (slide.getSlideDefinitionID() == 130054) {
503
						List<Feature> features = slide.getFeatures();
504
						int length = features.size();
505
						features.remove(length - 1);
506
						features.remove(length - 2);
507
						features.remove(length - 3);
508
						/*
509
						 * boolean a = false,b=false,c=false; for(Feature
510
						 * feature: features){ switch
511
						 * ((int)feature.getFeatureDefinitionID()) { case
512
						 * 120132: if(a){
513
						 * 
514
						 * }else{ a=true; } break; case 120133: break; case
515
						 * 120134: break; default: break; } }
516
						 */
517
						CreationUtils.updateEntity(entity);
1226 rajveer 518
					}
519
				}
520
			}
521
		}
4964 amit.gupta 522
		return true;
1226 rajveer 523
	}
4964 amit.gupta 524
 
525
	public boolean migrateData() throws Exception {
1226 rajveer 526
		Map<Long, Entity> entities = CreationUtils.getEntities();
4964 amit.gupta 527
		for (Entity entity : entities.values()) {
528
			ExpandedEntity expEntity = new ExpandedEntity(entity);
1226 rajveer 529
			List<Slide> slides = entity.getSlides();
4964 amit.gupta 530
			if (slides != null) {
531
				for (Slide slide : slides) {
532
					if (slide.getSlideDefinitionID() == 130054) {
533
						List<Feature> features = slide.getFeatures();
534
						String title = expEntity.getBrand() + " "
535
								+ expEntity.getModelName() + " "
536
								+ expEntity.getModelNumber();
537
						if (expEntity.getCategory().getParentCategory().getID() == 10001) {
538
							title += " | " + expEntity.getBrand()
539
									+ " Mobile Phones";
1226 rajveer 540
						}
4964 amit.gupta 541
						if (expEntity.getCategory().getParentCategory().getID() == 10011) {
542
							title += " " + expEntity.getCategory().getLabel()
543
									+ " | " + expEntity.getBrand()
544
									+ " Mobile Phone Accessories";
1226 rajveer 545
						}
4964 amit.gupta 546
						title += " | Saholic.com";
547
 
548
						// Add page title
549
						Feature feature1 = new Feature(120132);
550
						PrimitiveDataObject pdo1 = new PrimitiveDataObject(
551
								title);
552
						List<Bullet> bullets1 = new ArrayList<Bullet>();
553
						Bullet bullet1 = new Bullet(pdo1);
554
						bullets1.add(bullet1);
555
						feature1.setBullets(bullets1);
556
						features.add(feature1);
557
 
558
						String description = "Best Price "
559
								+ expEntity.getBrand() + " "
560
								+ expEntity.getModelName() + " "
561
								+ expEntity.getModelNumber() + " ";
562
 
563
						if (expEntity.getCategory().getParentCategory().getID() == 10011) {
564
							description += expEntity.getCategory().getLabel()
565
									+ " in India.";
566
						} else {
567
							description += ".";
1226 rajveer 568
						}
4964 amit.gupta 569
						description += " Experience n' buy online. FREE Next Day delivery."
570
								+ " Original product - Full manufacturer warranty. Comprehensive reviews.";
1226 rajveer 571
 
4964 amit.gupta 572
						description = description.replaceAll("--", "-");
573
 
574
						// Add meta description
575
						Feature feature2 = new Feature(120133);
576
						PrimitiveDataObject pdo2 = new PrimitiveDataObject(
577
								description);
578
						List<Bullet> bullets2 = new ArrayList<Bullet>();
579
						Bullet bullet2 = new Bullet(pdo2);
580
						bullets2.add(bullet2);
581
						feature2.setBullets(bullets2);
582
 
583
						features.add(feature2);
584
 
585
						String keywords = expEntity.getBrand() + " "
586
								+ expEntity.getModelName() + " "
587
								+ expEntity.getModelNumber() + ", ";
588
						if (expEntity.getCategory().getParentCategory().getID() == 10001) {
589
							keywords += expEntity.getBrand()
590
									+ " mobile phones, ";
1226 rajveer 591
						}
4964 amit.gupta 592
						if (expEntity.getCategory().getParentCategory().getID() == 10011) {
593
							keywords += "phone accessories, ";
1226 rajveer 594
						}
4964 amit.gupta 595
						keywords += expEntity.getBrand() + " "
596
								+ expEntity.getModelName() + " "
597
								+ expEntity.getModelNumber() + " Price, ";
598
						keywords += expEntity.getBrand() + " "
599
								+ expEntity.getModelName() + " "
600
								+ expEntity.getModelNumber() + " India, ";
601
						if (expEntity.getCategory().getParentCategory().getID() == 10001) {
602
							keywords += expEntity.getBrand() + " "
603
									+ expEntity.getModelName() + " "
604
									+ expEntity.getModelNumber() + " Review, ";
1226 rajveer 605
						}
4964 amit.gupta 606
						// Add meta keyborad
607
						Feature feature3 = new Feature(120134);
608
						PrimitiveDataObject pdo3 = new PrimitiveDataObject(
609
								keywords);
610
						List<Bullet> bullets3 = new ArrayList<Bullet>();
611
						Bullet bullet3 = new Bullet(pdo3);
612
						bullets3.add(bullet3);
613
						feature3.setBullets(bullets3);
614
 
615
						features.add(feature3);
616
 
617
						CreationUtils.updateEntity(entity);
618
					}
619
				}
620
			}
621
		}
622
		return true;
623
	}
624
 
625
	public boolean migrateModel2() throws Exception {
626
		Map<Long, Entity> entities = CreationUtils.getEntities();
627
		for (Entity entity : entities.values()) {
628
			List<Slide> slides = entity.getSlides();
629
			if (slides != null) {
630
				for (Slide slide : slides) {
631
					if (slide.getSlideDefinitionID() == 130011) {
632
						for (Feature feature : slide.getFeatures()) {
633
							if (feature.getFeatureDefinitionID() == 120054) {
634
								// feature.setFeatureDefinitionID(120030);
635
								System.out.println("* " + entity.getID() + ":"
636
										+ entity.getCategoryID());
1226 rajveer 637
							}
638
						}
4964 amit.gupta 639
					}
1226 rajveer 640
 
4964 amit.gupta 641
					if (slide.getSlideDefinitionID() == 130029) {
642
						// System.out.println("** " + entity.getID() + ":" +
643
						// entity.getCategoryID());
644
						if (entity.getCategoryID() == 10002) {
645
							Feature feature = new Feature(120051);
646
							slide.getFeatures().add(feature);
647
							System.out.println("** " + entity.getID() + ":"
648
									+ entity.getCategoryID());
1226 rajveer 649
						}
650
					}
651
 
652
				}
653
			}
4964 amit.gupta 654
			CreationUtils.updateEntity(entity);
1226 rajveer 655
		}
656
		return true;
657
	}
4964 amit.gupta 658
 
659
	/*
660
	 * public boolean migrateModel1() throws Exception{ //DefinitionsContainer
661
	 * oldDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH +
662
	 * "olddefinitions" + File.separator); //DefinitionsContainer newDfc = new
663
	 * DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" +
664
	 * File.separator);
665
	 * 
666
	 * Map<Long, Entity> entities = CreationUtils.getEntities(); for(Entity
667
	 * entity: entities.values()){ List<Long> slideSequence =
668
	 * entity.getSlideSequence(); Map<Long,Long> removeMap = new HashMap<Long,
669
	 * Long>(); List<Slide> slides = entity.getSlides(); if(slides!=null){
670
	 * for(Slide slide: slides){ List<Feature> features; Slide childSlide;
671
	 * switch ((int)slide.getSlideDefinitionID()) {
672
	 * 
673
	 * //Keyboard case 130004: case 130026: case 130027: case 130057:
674
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130026);
675
	 * slide.setSlideDefinitionID(130026); break;
676
	 * 
677
	 * //Voice Calling case 130005: removeMap.put(slide.getSlideDefinitionID(),
678
	 * (long)130005); slide.setSlideDefinitionID(130005); features = new
679
	 * ArrayList<Feature>(); features.addAll(slide.getFeatures()); childSlide =
680
	 * slide.getChildrenSlides().get(0);
681
	 * features.addAll(childSlide.getFeatures());
682
	 * if(childSlide.getFreeformContent()!=null){
683
	 * System.out.println("Voice Calling : HAS FFC : " +
684
	 * childSlide.getFreeformContent().getFreeformText() +
685
	 * childSlide.getFreeformContent().getMedias()); }
686
	 * slide.setChildrenSlides(null); slide.setFeatures(features); break; case
687
	 * 130035: removeMap.put(slide.getSlideDefinitionID(), (long)130005);
688
	 * slide.setSlideDefinitionID(130005); for(Feature feata:
689
	 * slide.getFeatures()){ if(feata.getFeatureDefinitionID()==120055){
690
	 * feata.setFeatureDefinitionID(120012); } } break;
691
	 * 
692
	 * //Data Connectivity case 130007: case 130028:
693
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130007);
694
	 * slide.setSlideDefinitionID(130007); break;
695
	 * 
696
	 * //Music case 130029: case 130030: case 130008:
697
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130029);
698
	 * slide.setSlideDefinitionID(130029); break;
699
	 * 
700
	 * //Video case 130031: case 130009:
701
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130031);
702
	 * slide.setSlideDefinitionID(130031); break;
703
	 * 
704
	 * //Camera case 130010: case 130036: case 130037:
705
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130010);
706
	 * slide.setSlideDefinitionID(130010); break; case 130060:
707
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130010);
708
	 * slide.setSlideDefinitionID(130010);
709
	 * 
710
	 * features = slide.getFeatures(); // Just to add camera feature in basic
711
	 * phones Feature feature = new Feature(120056); List<Bullet> bullets = new
712
	 * ArrayList<Bullet>(); PrimitiveDataObject pdo = new
713
	 * PrimitiveDataObject("1"); Bullet bullet = new Bullet(pdo);
714
	 * bullets.add(bullet); feature.setBullets(bullets); features.add(feature);
715
	 * //Created new feature break;
716
	 * 
717
	 * //Memory case 130011: removeMap.put(slide.getSlideDefinitionID(),
718
	 * (long)130011); slide.setSlideDefinitionID(130011); break; case 130032:
719
	 * case 130061: removeMap.put(slide.getSlideDefinitionID(), (long)130011);
720
	 * slide.setSlideDefinitionID(130011); features = slide.getFeatures();
721
	 * for(Feature feat: features){ if(feat.getFeatureDefinitionID() == 120054){
722
	 * feat.setFeatureDefinitionID(120030); } } break;
723
	 * 
724
	 * //Battery case 130044: removeMap.put(slide.getSlideDefinitionID(),
725
	 * (long)130043); slide.setSlideDefinitionID(130043);
726
	 * if(slide.getChildrenSlides().get(0).getSlideDefinitionID() == 130047){
727
	 * slide.getChildrenSlides().get(0).setSlideDefinitionID(130046); } break;
728
	 * 
729
	 * case 130042: removeMap.put(slide.getSlideDefinitionID(), (long)130043);
730
	 * slide.setSlideDefinitionID(130043); childSlide =
731
	 * slide.getChildrenSlides().get(0); if(childSlide.getSlideDefinitionID() ==
732
	 * 130045){ childSlide.setSlideDefinitionID(130046); }
733
	 * 
734
	 * List<Feature> childFeatures1 = new ArrayList<Feature>(); List<Feature>
735
	 * childFeatures2 = new ArrayList<Feature>(); Slide childChildSlide1 = new
736
	 * Slide(130048); Slide childChildSlide2 = new Slide(130049);
737
	 * 
738
	 * childChildSlide1.setFeatures(childFeatures1);
739
	 * childChildSlide2.setFeatures(childFeatures2);
740
	 * 
741
	 * childSlide.addChild(childChildSlide1);
742
	 * childSlide.addChild(childChildSlide2);
743
	 * 
744
	 * 
745
	 * for(Feature f: childSlide.getFeatures()){ if(f.getFeatureDefinitionID()
746
	 * == 120063){ f.setFeatureDefinitionID(120068); childFeatures1.add(f); }
747
	 * if(f.getFeatureDefinitionID() == 120064){
748
	 * f.setFeatureDefinitionID(120069); childFeatures2.add(f); } }
749
	 * 
750
	 * childSlide.setFeatures(null);
751
	 * 
752
	 * break;
753
	 * 
754
	 * case 130062: removeMap.put(slide.getSlideDefinitionID(), (long)130043);
755
	 * slide.setSlideDefinitionID(130043);
756
	 * 
757
	 * childSlide = new Slide(130046); features = new ArrayList<Feature>();
758
	 * 
759
	 * slide.addChild(childSlide);
760
	 * 
761
	 * List<Feature> childFeatures11 = new ArrayList<Feature>(); List<Feature>
762
	 * childFeatures21 = new ArrayList<Feature>(); Slide childChildSlide11 = new
763
	 * Slide(130048); Slide childChildSlide21 = new Slide(130049);
764
	 * 
765
	 * childChildSlide11.setFeatures(childFeatures11);
766
	 * childChildSlide21.setFeatures(childFeatures21);
767
	 * 
768
	 * childSlide.addChild(childChildSlide11);
769
	 * childSlide.addChild(childChildSlide21); for(Feature f:
770
	 * slide.getFeatures()){ if(f.getFeatureDefinitionID() == 120072){
771
	 * features.add(f); } if(f.getFeatureDefinitionID() == 120073){
772
	 * features.add(f); } if(f.getFeatureDefinitionID() == 120063){
773
	 * f.setFeatureDefinitionID(120068); childFeatures11.add(f); }
774
	 * if(f.getFeatureDefinitionID() == 120064){
775
	 * f.setFeatureDefinitionID(120069); childFeatures21.add(f); } }
776
	 * slide.setFeatures(features); break;
777
	 * 
778
	 * 
779
	 * //Mail n Msg case 130041: case 130063:
780
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130039);
781
	 * slide.setSlideDefinitionID(130039); break; case 130039:
782
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130039);
783
	 * slide.setSlideDefinitionID(130039);
784
	 * 
785
	 * childSlide = slide.getChildrenSlides().get(0);
786
	 * slide.setFeatures(childSlide.getFeatures());
787
	 * if(childSlide.getFreeformContent()!=null){
788
	 * System.out.println("Mail n Msg : HAS FFC : " +
789
	 * childSlide.getFreeformContent().getFreeformText() +
790
	 * childSlide.getFreeformContent().getMedias()); }
791
	 * slide.setChildrenSlides(null); break;
792
	 * 
793
	 * //Software case 130020: case 130034:
794
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130020);
795
	 * slide.setSlideDefinitionID(130020); break;
796
	 * 
797
	 * 
798
	 * //Internet case 130050: removeMap.put(slide.getSlideDefinitionID(),
799
	 * (long)130050); slide.setSlideDefinitionID(130050);
800
	 * slide.setFeatures(slide.getChildrenSlides().get(0).getFeatures());
801
	 * 
802
	 * if(slide.getChildrenSlides().get(0).getFreeformContent()!=null){ String
803
	 * ffc = slide.getFreeformContent().getFreeformText();
804
	 * if(slide.getChildrenSlides
805
	 * ().get(0).getFreeformContent().getFreeformText()!=null){
806
	 * if(slide.getChildrenSlides
807
	 * ().get(0).getFreeformContent().getFreeformText().trim()!=""){ ffc = ffc +
808
	 * "\n *********    " +
809
	 * slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText();
810
	 * System.out.println("**************" +
811
	 * slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText());
812
	 * } }
813
	 * 
814
	 * List<String> ffcs = new ArrayList<String>(); ffcs.add(ffc);
815
	 * slide.getFreeformContent().setFreeformTexts(ffcs); }
816
	 * 
817
	 * slide.setChildrenSlides(null); //System.out.println("Slide: 130050");
818
	 * //printSlideContent(slide); break;
819
	 * 
820
	 * case 130052: removeMap.put(slide.getSlideDefinitionID(), (long)130050);
821
	 * slide.setSlideDefinitionID(130050);
822
	 * 
823
	 * for(Feature f2: slide.getFeatures()){ if(f2.getFeatureDefinitionID() ==
824
	 * 120077){ f2.setFeatureDefinitionID(120074); // List<Bullet> newBullets =
825
	 * new ArrayList<Bullet>(); // for(Bullet bul: f2.getBullets()){ //
826
	 * CompositeDataObject cdo = (CompositeDataObject) bul.getDataObject(); //
827
	 * for(PrimitiveDataObject pdo1: cdo.getPrimitiveDataObjects()){ //
828
	 * pdo1.getValue(); // BulletDataObject bdo2 = new
829
	 * EnumDataObject(enumValueID); // Bullet newbul = new Bullet(bdo2); //
830
	 * newBullets.add(newbul); // } // // } // f2.setBullets(newBullets); }
831
	 * if(f2.getFeatureDefinitionID() == 120078){
832
	 * f2.setFeatureDefinitionID(120075); } } //
833
	 * slide.setFeatures(slide.getChildrenSlides().get(0).getFeatures()); //
834
	 * slide.setChildrenSlides(null); //System.out.println("Slide: 130052");
835
	 * 
836
	 * //printSlideContent(slide); break;
837
	 * 
838
	 * case 130051: removeMap.put(slide.getSlideDefinitionID(), (long)130050);
839
	 * slide.setSlideDefinitionID(130050); // System.out.println(slide);
840
	 * //System.out.println("Slide 130051:"); // printSlideContent(slide);
841
	 * break;
842
	 * 
843
	 * default: break; }
844
	 * 
845
	 * } List<Long> newSequence = new ArrayList<Long>(); for(Long id:
846
	 * slideSequence){ if(removeMap.containsKey(id)){
847
	 * newSequence.add(removeMap.get(id)); }else{ newSequence.add(id); } }
848
	 * entity.setSlideSequence(newSequence); CreationUtils.updateEntity(entity);
849
	 * } }
850
	 * 
851
	 * return true; }
852
	 */
853
 
854
	public void printSlideContent(Slide slide) {
855
 
856
		System.out.println("Slide: "
857
				+ slide.getFreeformContent().getFreeformText());
858
		if (slide.getFeatures() != null) {
859
			for (Feature feature : slide.getFeatures()) {
860
				if (feature.getBullets() != null) {
861
					for (Bullet bullet : feature.getBullets()) {
862
						// System.out.println(bullet.getDataObject().toString());
863
						// System.out.println(bullet.getFreeformContent());
1226 rajveer 864
					}
865
				}
4964 amit.gupta 866
				if (feature.getFreeformContent() != null) {
867
					System.out.println("Feature: "
868
							+ feature.getFreeformContent().getFreeformText());
1226 rajveer 869
				}
870
			}
871
		}
4964 amit.gupta 872
		if (slide.getChildrenSlides() != null) {
873
			for (Slide sl : slide.getChildrenSlides()) {
1226 rajveer 874
				System.out.println("Child1: ");
875
				printSlideContent(sl);
876
				System.out.println("Child2: ");
877
			}
878
		}
4964 amit.gupta 879
 
1226 rajveer 880
	}
4964 amit.gupta 881
 
1230 rajveer 882
	/*
4964 amit.gupta 883
	 * public boolean migrateModel() throws Exception{ //DefinitionsContainer
884
	 * oldDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH +
885
	 * "olddefinitions" + File.separator); //DefinitionsContainer newDfc = new
886
	 * DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" +
887
	 * File.separator);
888
	 * 
889
	 * Map<Long, Entity> entities = CreationUtils.getEntities(); for(Entity
890
	 * entity: entities.values()){ List<Slide> slides = entity.getSlides();
891
	 * if(slides!=null){ List<Slide> newSlides = new ArrayList<Slide>();
892
	 * for(Slide slide: slides){ Slide newSlide; List<Feature> features; Slide
893
	 * childSlide; switch ((int)slide.getSlideDefinitionID()) {
894
	 * 
895
	 * //Keyboard case 130004: case 130026: case 130027: case 130057: newSlide =
896
	 * new Slide(130026); newSlide.setChildrenSlides(slide.getChildrenSlides());
897
	 * newSlide.setFeatures(slide.getFeatures());
898
	 * newSlide.setFreeformContent(slide.getFreeformContent());
899
	 * newSlides.add(newSlide); break;
900
	 * 
901
	 * //Voice Calling case 130005: newSlide = new Slide(130005);
902
	 * newSlide.setChildrenSlides(null); features = new ArrayList<Feature>();
903
	 * features.addAll(slide.getFeatures()); childSlide =
904
	 * slide.getChildrenSlides().get(0);
905
	 * features.addAll(childSlide.getFeatures());
906
	 * if(childSlide.getFreeformContent()!=null){
907
	 * System.out.println("Voice Calling : HAS FFC : " +
908
	 * childSlide.getFreeformContent().getFreeformText() +
909
	 * childSlide.getFreeformContent().getMedias()); }
910
	 * newSlide.setFeatures(features);
911
	 * newSlide.setFreeformContent(slide.getFreeformContent());
912
	 * newSlides.add(newSlide); break; case 130035: newSlide = new
913
	 * Slide(130035); newSlide.setChildrenSlides(slide.getChildrenSlides());
914
	 * for(Feature feata: slide.getFeatures()){
915
	 * if(feata.getFeatureDefinitionID()==120055){
916
	 * feata.setFeatureDefinitionID(120012); } }
917
	 * newSlide.setFeatures(slide.getFeatures());
918
	 * newSlide.setFreeformContent(slide.getFreeformContent());
919
	 * newSlides.add(newSlide); break;
920
	 * 
921
	 * //Data Connectivity case 130007: case 130028: newSlide = new
922
	 * Slide(130007); newSlide.setChildrenSlides(slide.getChildrenSlides());
923
	 * newSlide.setFeatures(slide.getFeatures());
924
	 * newSlide.setFreeformContent(slide.getFreeformContent());
925
	 * newSlides.add(newSlide); break;
926
	 * 
927
	 * //Music case 130029: case 130030: case 130008: newSlide = new
928
	 * Slide(130029); newSlide.setChildrenSlides(slide.getChildrenSlides());
929
	 * newSlide.setFeatures(slide.getFeatures());
930
	 * newSlide.setFreeformContent(slide.getFreeformContent());
931
	 * newSlides.add(newSlide); break;
932
	 * 
933
	 * //Video case 130031: case 130009: newSlide = new Slide(130031);
934
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
935
	 * newSlide.setFeatures(slide.getFeatures());
936
	 * newSlide.setFreeformContent(slide.getFreeformContent());
937
	 * newSlides.add(newSlide); break;
938
	 * 
939
	 * //Camera case 130010: case 130036: case 130037: newSlide = new
940
	 * Slide(130010); newSlide.setChildrenSlides(slide.getChildrenSlides());
941
	 * newSlide.setFeatures(slide.getFeatures());
942
	 * newSlide.setFreeformContent(slide.getFreeformContent());
943
	 * newSlides.add(newSlide); break; case 130060: newSlide = new
944
	 * Slide(130010); newSlide.setChildrenSlides(slide.getChildrenSlides());
945
	 * features = slide.getFeatures(); // Just to add camera feature in basic
946
	 * phones Feature feature = new Feature(120056); List<Bullet> bullets = new
947
	 * ArrayList<Bullet>(); PrimitiveDataObject pdo = new
948
	 * PrimitiveDataObject("1"); Bullet bullet = new Bullet(pdo);
949
	 * bullets.add(bullet); feature.setBullets(bullets); features.add(feature);
950
	 * //Created new feature newSlide.setFeatures(features);
951
	 * newSlide.setFreeformContent(slide.getFreeformContent());
952
	 * newSlides.add(newSlide); break;
953
	 * 
954
	 * //Memory case 130011: newSlide = new Slide(130011);
955
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
956
	 * newSlide.setFeatures(slide.getFeatures());
957
	 * newSlide.setFreeformContent(slide.getFreeformContent());
958
	 * newSlides.add(newSlide); break; case 130032: case 130061: newSlide = new
959
	 * Slide(130011); newSlide.setChildrenSlides(slide.getChildrenSlides());
960
	 * features = slide.getFeatures(); for(Feature feat: features){
961
	 * if(feat.getFeatureDefinitionID() == 130054){
962
	 * feat.setFeatureDefinitionID(120030); } }
963
	 * newSlide.setFeatures(slide.getFeatures());
964
	 * newSlide.setFreeformContent(slide.getFreeformContent());
965
	 * newSlides.add(newSlide); break;
966
	 * 
967
	 * //Battery case 130044: newSlide = new Slide(130043);
968
	 * if(slide.getChildrenSlides().get(0).getSlideDefinitionID() == 130047){
969
	 * slide.getChildrenSlides().get(0).setSlideDefinitionID(130046); }
970
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
971
	 * newSlide.setFeatures(slide.getFeatures());
972
	 * newSlide.setFreeformContent(slide.getFreeformContent());
973
	 * newSlides.add(newSlide); break;
974
	 * 
975
	 * case 130042: newSlide = new Slide(130043); childSlide =
976
	 * slide.getChildrenSlides().get(0); if(childSlide.getSlideDefinitionID() ==
977
	 * 130045){ childSlide.setSlideDefinitionID(130046); }
978
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
979
	 * 
980
	 * List<Feature> childFeatures1 = new ArrayList<Feature>(); List<Feature>
981
	 * childFeatures2 = new ArrayList<Feature>(); Slide childChildSlide1 = new
982
	 * Slide(130048); Slide childChildSlide2 = new Slide(130049);
983
	 * 
984
	 * childChildSlide1.setFeatures(childFeatures1);
985
	 * childChildSlide2.setFeatures(childFeatures2);
986
	 * 
987
	 * childSlide.addChild(childChildSlide1);
988
	 * childSlide.addChild(childChildSlide2);
989
	 * 
990
	 * 
991
	 * for(Feature f: childSlide.getFeatures()){ if(f.getFeatureDefinitionID()
992
	 * == 120063){ f.setFeatureDefinitionID(120068); childFeatures1.add(f); }
993
	 * if(f.getFeatureDefinitionID() == 120064){
994
	 * f.setFeatureDefinitionID(120069); childFeatures2.add(f); } }
995
	 * 
996
	 * childSlide.setFeatures(null);
997
	 * 
998
	 * newSlide.setFeatures(slide.getFeatures());
999
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1000
	 * newSlides.add(newSlide); break;
1001
	 * 
1002
	 * case 130062: newSlide = new Slide(130043);
1003
	 * newSlide.setChildrenSlides(slide.getChildrenSlides()); childSlide = new
1004
	 * Slide(130046); features = new ArrayList<Feature>();
1005
	 * newSlide.setFeatures(features); newSlide.addChild(childSlide);
1006
	 * 
1007
	 * List<Feature> childFeatures11 = new ArrayList<Feature>(); List<Feature>
1008
	 * childFeatures21 = new ArrayList<Feature>(); Slide childChildSlide11 = new
1009
	 * Slide(130048); Slide childChildSlide21 = new Slide(130049);
1010
	 * 
1011
	 * childChildSlide11.setFeatures(childFeatures11);
1012
	 * childChildSlide21.setFeatures(childFeatures21);
1013
	 * 
1014
	 * childSlide.addChild(childChildSlide11);
1015
	 * childSlide.addChild(childChildSlide21); for(Feature f:
1016
	 * slide.getFeatures()){ if(f.getFeatureDefinitionID() == 120072){
1017
	 * features.add(f); } if(f.getFeatureDefinitionID() == 120073){
1018
	 * features.add(f); } if(f.getFeatureDefinitionID() == 120063){
1019
	 * f.setFeatureDefinitionID(120068); childFeatures11.add(f); }
1020
	 * if(f.getFeatureDefinitionID() == 120064){
1021
	 * f.setFeatureDefinitionID(120069); childFeatures21.add(f); } }
1022
	 * 
1023
	 * newSlide.setFeatures(slide.getFeatures());
1024
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1025
	 * newSlides.add(newSlide); break;
1026
	 * 
1027
	 * 
1028
	 * //Mail n Msg case 130041: case 130063: newSlide = new Slide(130039);
1029
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
1030
	 * newSlide.setFeatures(slide.getFeatures());
1031
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1032
	 * newSlides.add(newSlide); break; case 130039: newSlide = new
1033
	 * Slide(130039); //newSlide.setChildrenSlides(slide.getChildrenSlides());
1034
	 * childSlide = slide.getChildrenSlides().get(0);
1035
	 * newSlide.setFeatures(childSlide.getFeatures());
1036
	 * if(childSlide.getFreeformContent()!=null){
1037
	 * System.out.println("Mail n Msg : HAS FFC : " +
1038
	 * childSlide.getFreeformContent().getFreeformText() +
1039
	 * childSlide.getFreeformContent().getMedias()); }
1040
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1041
	 * newSlides.add(newSlide); break;
1042
	 * 
1043
	 * //Software case 130020: case 130034: newSlide = new Slide(130034);
1044
	 * newSlide.setChildrenSlides(slide.getChildrenSlides()); features =
1045
	 * slide.getFeatures(); newSlide.setFeatures(slide.getFeatures());
1046
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1047
	 * newSlides.add(newSlide); break;
1048
	 * 
1049
	 * 
1050
	 * default: newSlides.add(slide); break; } } entity.setSlides(newSlides);
1051
	 * CreationUtils.updateEntity(entity); } }
1052
	 * 
1053
	 * return true; }
1054
	 */
1055
	public boolean migrateRemoveBorrowedCategoryIdFromSlide() throws Exception {
1226 rajveer 1056
		Map<Long, Entity> entities = CreationUtils.getEntities();
4964 amit.gupta 1057
		for (Entity entity : entities.values()) {
1058
			if (entity.getID() == 0) {
1226 rajveer 1059
				CreationUtils.deleteEntity(entity.getID());
1060
			}
1061
			List<Slide> slides = entity.getSlides();
4964 amit.gupta 1062
			if (slides != null) {
1226 rajveer 1063
				List<Slide> newSlides = new ArrayList<Slide>();
4964 amit.gupta 1064
				for (Slide slide : slides) {
1226 rajveer 1065
					Slide newSlide = new Slide(slide.getSlideDefinitionID());
1066
					newSlide.setChildrenSlides(slide.getChildrenSlides());
1067
					newSlide.setFeatures(slide.getFeatures());
1068
					newSlide.setFreeformContent(slide.getFreeformContent());
1069
					newSlides.add(newSlide);
1070
				}
1071
				entity.setSlides(newSlides);
1072
				CreationUtils.updateEntity(entity);
1073
			}
1074
		}
1075
		return true;
1076
	}
479 rajveer 1077
 
4964 amit.gupta 1078
	public boolean migrate() throws Exception {
580 rajveer 1079
		/*
4964 amit.gupta 1080
		 * DefinitionsContainer sourceDefs = new
1081
		 * DefinitionsContainer(sourceDbPath); DefinitionsContainer
1082
		 * destinationDefs = new DefinitionsContainer(destinationDbPath);
1083
		 * EntityContainer sourceEnts = new EntityContainer(sourceDbPath);
1084
		 * EntityContainer destinationEnts = new
1085
		 * EntityContainer(destinationDbPath);
1086
		 * 
1087
		 * Map<Long, Entity> entities = sourceEnts.getEntities();
1088
		 * 
1089
		 * File f = new File("/home/rajveer/Desktop/info.txt"); FileWriter
1090
		 * fstream = new FileWriter(f); BufferedWriter out = new
1091
		 * BufferedWriter(fstream); StringBuilder sb = new StringBuilder();
1092
		 * 
1093
		 * 
1094
		 * for(Entity entity: entities.values()){ List<Slide> slides =
1095
		 * entity.getSlides();
1096
		 * 
1097
		 * //List<String> vidLabels =
1098
		 * CreationUtils.getMediaLabels(entity.getID(),"youtube");
1099
		 * //List<String> imgLabels =
1100
		 * CreationUtils.getMediaLabels(entity.getID(),"image");
1101
		 * 
1102
		 * //Map<String, Media> rawMedia =
1103
		 * CreationUtils.getRawMedia(entity.getID());
1104
		 * 
1105
		 * 
1106
		 * // List<String> vidLabels =
1107
		 * OldCreationUtils.getMediaLabels(entity.getID(),"youtube"); //
1108
		 * List<String> imgLabels =
1109
		 * OldCreationUtils.getMediaLabels(entity.getID(),"image");
1110
		 * 
1111
		 * Entity newEntity = new Entity(entity.getID(),
1112
		 * entity.getCategoryID()); newEntity.setBrand(entity.getBrand());
1113
		 * newEntity.setModelName(entity.getModelName());
1114
		 * newEntity.setModelNumber(entity.getModelNumber());
1115
		 * 
1116
		 * 
1117
		 * Map<String, in.shop2020.creation.util.Media> rawMedia =
1118
		 * OldCreationUtils.getRawMedia(entity.getID());
1119
		 * 
1120
		 * Map<String, Media> newrawMedia = new HashMap<String, Media>();
1121
		 * 
1122
		 * 
1123
		 * int totalRawVideos = 0; int totalRawImages = 0;
1124
		 * 
1125
		 * if(rawMedia!=null){ for(String label: rawMedia.keySet()){
1126
		 * in.shop2020.creation.util.Media media = rawMedia.get(label);
1127
		 * 
1128
		 * label = media.getLabel(); String type = media.getType(); String
1129
		 * location = media.getLocation();
1130
		 * 
1131
		 * Media newMedia = new Media(label, type, location);
1132
		 * 
1133
		 * newMedia.setTitle("Title"); if(type.equals("image")){
1134
		 * totalRawImages++; newMedia.setFileName(media.getFileName());
1135
		 * newMedia.setVideoType(""); }else{ totalRawVideos++;
1136
		 * newMedia.setVideoType("withoutskin"); newMedia.setFileName(""); }
1137
		 * 
1138
		 * newrawMedia.put(label, newMedia); System.out.println("old " +
1139
		 * media.toString()); // System.out.println("new " +
1140
		 * newMedia.toString()); // OldCreationUtils.removeMedia(entity.getID(),
1141
		 * label); // CreationUtils.addMedia(entity.getID(), newMedia); } }
1142
		 * 
1143
		 * int totalVideos = 0; int totalImages = 0; if(rawMedia==null){
1144
		 * for(Slide slide: slides ){
1145
		 */
1146
		/*
1147
		 * FreeformContent ffc = slide.getFreeformContent(); List<String>
1148
		 * vidList = new ArrayList<String>(); List<String> imgList = new
1149
		 * ArrayList<String>();
1150
		 * 
1151
		 * if(ffc!=null){ List<String> vidFfcLabels = ffc.getYoutubeRefs();
1152
		 * if(vidFfcLabels!=null){ for(String vidFfcLabel: vidFfcLabels){
1153
		 * StringTokenizer strTkn = new StringTokenizer(vidFfcLabel,"~!~");
1154
		 * String vidLabel = null; if(strTkn.hasMoreTokens()){ vidLabel =
1155
		 * strTkn.nextToken(); vidList.add(vidFfcLabel);
1156
		 * 
1157
		 * // ffc.removeMedia("youtube", vidFfcLabel); //
1158
		 * ffc.addMedia("youtube", vidLabel); } if(vidLabel == null){
1159
		 * System.out.println("Something is really breaking .. bu ha ha !!!"); }
1160
		 * totalVideos++; } } List<String> imgFfcLabels = ffc.getImageRefs();
1161
		 * if(imgFfcLabels!=null){ for(String imgFfcLabel: imgFfcLabels){
1162
		 * StringTokenizer strTkn = new StringTokenizer(imgFfcLabel,"~!~");
1163
		 * String imgLabel = null; if(strTkn.hasMoreTokens()){ imgLabel =
1164
		 * strTkn.nextToken(); imgList.add(imgFfcLabel);
1165
		 * 
1166
		 * // ffc.removeMedia("image", imgFfcLabel); // ffc.addMedia("image",
1167
		 * imgLabel); } if(imgLabel == null){
1168
		 * System.out.println("Something is really breaking .. bu ha ha !!!"); }
1169
		 * totalImages++; } }
1170
		 * 
1171
		 * for(String vidlab : vidList){ ffc.removeMedia("youtube", vidlab);
1172
		 * ffc.addMedia("youtube", (new StringTokenizer(vidlab,
1173
		 * "~!~")).nextToken()); } for(String imglab : imgList){
1174
		 * ffc.removeMedia("image",imglab); ffc.addMedia("image", (new
1175
		 * StringTokenizer(imglab, "~!~")).nextToken()); }
1176
		 * slide.setFreeformContent(ffc); System.out.println("Slide id is " +
1177
		 * slide.getSlideDefinitionID() + "   vid labels:  " + vidFfcLabels +
1178
		 * "   img labels" + imgFfcLabels); }
1179
		 */
1180
		/*
1181
		 * newEntity.addSlide(slide); }
1182
		 * 
1183
		 * // System.out.println("entity:"+ entity.getID() + ":trv:" +
1184
		 * totalRawVideos + ":tri:" + totalRawImages +":tv:" + totalVideos
1185
		 * +":ti:" + totalImages); // sb.append("entity:"+ entity.getID() +
1186
		 * ":trv:" + totalRawVideos + ":tri:" + totalRawImages +":tv:" +
1187
		 * totalVideos +":ti:" + totalImages+ ":tr:"
1188
		 * +(totalRawVideos+totalRawImages) + ":t:" +(totalVideos+totalImages) +
1189
		 * ":vd:" +(totalRawVideos-totalVideos) + ":id:"
1190
		 * +(totalRawImages-totalImages) + "\n"); sb.append(entity.getID() +
1191
		 * "\n");
1192
		 * 
1193
		 * 
1194
		 * destinationEnts.updateEntity(newEntity);
1195
		 * CreationUtils.storeEntity(newEntity);
1196
		 * 
1197
		 * Map<Long, List<Entity>> entitiesByCategory =
1198
		 * sourceEnts.getEntitiesbyCategory();
1199
		 * 
1200
		 * Map<Long, Entity> xentities = destinationEnts.getEntities();
1201
		 * 
1202
		 * CreationUtils.rewriteRepository(xentities, entitiesByCategory); }
1203
		 * else{ sb.append("				" + entity.getID() + "\n"); } }
1204
		 * 
1205
		 * 
1206
		 * out.write(sb.toString()); out.close();
1207
		 */
457 rajveer 1208
		return true;
1209
	}
4964 amit.gupta 1210
 
1211
	private boolean makeEntitiesObject() throws Exception {
1212
		// DefinitionsContainer sourceDefs = new
1213
		// DefinitionsContainer(sourceDbPath);
1214
		// DefinitionsContainer destinationDefs = new
1215
		// DefinitionsContainer(destinationDbPath);
1216
		// EntityContainer sourceEnts = new EntityContainer(sourceDbPath);
1217
		// EntityContainer destinationEnts = new
1218
		// EntityContainer(destinationDbPath);
1219
 
1220
		/*
1221
		 * Map<Long, List<Entity>> catEntities =
1222
		 * sourceEnts.getEntitiesbyCategory();
1223
		 * 
1224
		 * Map<Long, Entity> entities = sourceEnts.getEntities(); for(Long
1225
		 * catId: catEntities.keySet()){ List<Entity> ents =
1226
		 * catEntities.get(catId); for(Entity entity: ents){
1227
		 * entities.put(entity.getID(), entity);
1228
		 * System.out.println(entity.getID() + ":" + entity.getCategoryID() +
1229
		 * ":"+ entity.getBrand() + " "+ entity.getModelName() + " " +
1230
		 * entity.getModelNumber()); } }
1231
		 */
1232
 
791 rajveer 1233
		Map<Long, List<Entity>> catEntities = new TreeMap<Long, List<Entity>>();
1234
		Map<Long, Entity> entities = new TreeMap<Long, Entity>();
2720 mandeep.dh 1235
 
4964 amit.gupta 1236
		FileInputStream fstream = new FileInputStream("/home/rajveer/Desktop/1");
1237
		DataInputStream in = new DataInputStream(fstream);
1238
		BufferedReader br = new BufferedReader(new InputStreamReader(in));
1239
		String strLine;
2720 mandeep.dh 1240
 
4964 amit.gupta 1241
		while ((strLine = br.readLine()) != null) {
1242
			long entityID = Long.parseLong(strLine);
1243
			String entityDBFile = sourceDbPath + "entities" + File.separator
1244
					+ entityID + "/entity.ser";
1245
			System.out.println(entityDBFile);
1246
			Entity entity = (Entity) DBUtils.read(entityDBFile);
1247
			entities.put(entityID, entity);
2720 mandeep.dh 1248
 
4964 amit.gupta 1249
			List<Entity> catent = catEntities.get(entity.getCategoryID());
1250
			if (catent == null) {
1251
				catent = new ArrayList<Entity>();
1252
			}
1253
			catent.add(entity);
1254
			catEntities.put(entity.getCategoryID(), catent);
1255
		}
1256
		in.close();
1257
 
1258
		String entitiesDBFile = sourceDbPath + "entities" + File.separator
1259
				+ "entities.ser";
1260
		String entitiesbycategoryDBFile = sourceDbPath + "entities"
1261
				+ File.separator + "entitiesbycategory.ser";
1262
 
791 rajveer 1263
		DBUtils.delete(entitiesDBFile);
1264
		DBUtils.store(entities, entitiesDBFile);
2720 mandeep.dh 1265
 
4964 amit.gupta 1266
		// Remove existing
791 rajveer 1267
		DBUtils.delete(entitiesbycategoryDBFile);
1268
		DBUtils.store(catEntities, entitiesbycategoryDBFile);
2720 mandeep.dh 1269
 
4964 amit.gupta 1270
		return false;
791 rajveer 1271
	}
2720 mandeep.dh 1272
 
4964 amit.gupta 1273
	private boolean printDataModel() throws Exception {
1274
		DefinitionsContainer dfc = Catalog.getInstance()
1275
				.getDefinitionsContainer();
1226 rajveer 1276
		StringBuilder sb = new StringBuilder();
2720 mandeep.dh 1277
 
1226 rajveer 1278
		Map<Long, SlideDefinition> allSlideDefs = dfc.getSlideDefinitions();
4964 amit.gupta 1279
		for (Long slideDefId : allSlideDefs.keySet()) {
1226 rajveer 1280
			SlideDefinition slideDef = allSlideDefs.get(slideDefId);
1281
			sb.append(slideDefId + " - " + slideDef.getLabel() + "\n");
4964 amit.gupta 1282
			if (!slideDef.getChildrenSlideDefinitionIDs().isEmpty()) {
1283
				sb.append("Child Slides are: \t"
1284
						+ slideDef.getChildrenSlideDefinitionIDs() + "\n");
1226 rajveer 1285
			}
4964 amit.gupta 1286
			List<SlideFeatureDefinition> featureDefs = slideDef
1287
					.getSlideFeatureDefinitions();
1288
			for (SlideFeatureDefinition featureDef : featureDefs) {
1289
				sb.append("\t"
1290
						+ featureDef.getFeatureDefintionID()
1291
						+ "\t"
1292
						+ dfc.getFeatureDefinition(
1293
								featureDef.getFeatureDefintionID()).getLabel()
1294
						+ "\t" + featureDef.getEditorialImportance() + "\n");
1226 rajveer 1295
			}
1296
		}
1297
		System.out.println(sb.toString());
580 rajveer 1298
		Map<Long, Category> categories = dfc.getCategories();
4964 amit.gupta 1299
		if (categories != null) {
1226 rajveer 1300
			return true;
1301
		}
4964 amit.gupta 1302
		for (Category category : categories.values()) {
1303
			if (category.getChildrenCategory() != null) {
580 rajveer 1304
				continue;
1305
			}
1226 rajveer 1306
			sb.append(category.getLabel() + "\n");
4964 amit.gupta 1307
			List<CategorySlideDefinition> slideDefs = dfc
1308
					.getCategorySlideDefinitions(category.getID());
1309
			List<Long> slideSequence = dfc.getCategorySlideSequence(category
1310
					.getID());
1311
			for (CategorySlideDefinition slideDef : slideDefs) {
1312
				sb.append("\t"
1313
						+ dfc.getSlideDefinition(slideDef.getSlideDefintionID())
1314
								.getLabel() + "\t"
1315
						+ slideDef.getEditorialImportance() + "\n");
1316
				// List<FeatureDefinition> featureDefs =
1317
				// dfc.getFeatureDefinitions(slideDef.getSlideDefintionID());
1318
 
1319
				List<SlideFeatureDefinition> slideFeatureDefs = dfc
1320
						.getSlideDefinition(slideDef.getSlideDefintionID())
1321
						.getSlideFeatureDefinitions();
1322
 
1323
				for (SlideFeatureDefinition slideFeatureDef : slideFeatureDefs) {
1324
					FeatureDefinition featureDef = dfc
1325
							.getFeatureDefinition(slideFeatureDef
1326
									.getFeatureDefintionID());
1327
					BulletDefinition bulletDef = featureDef
1328
							.getBulletDefinition();
1329
					sb.append("\t\t\t" + featureDef.getLabel() + "\t"
1330
							+ slideFeatureDef.getEditorialImportance() + "\t"
1331
							+ featureDef.allowsBlank() + "\t"
1332
							+ bulletDef.isLearned() + "\t"
1333
							+ bulletDef.isMultivalue());
580 rajveer 1334
					List<Long> units = bulletDef.getUnitIDs();
4964 amit.gupta 1335
					if (bulletDef.getDatatypeDefinitionID() != null) {
1336
						sb.append("\t"
1337
								+ dfc.getDatatypeDefinition(
1338
										bulletDef.getDatatypeDefinitionID())
1339
										.getName());
1340
 
1226 rajveer 1341
					}
4964 amit.gupta 1342
					if (units != null) {
1343
						for (Long unit : units) {
1344
							sb.append("\t" + dfc.getUnit(unit).getFullForm()
1345
									+ "\t" + dfc.getUnit(unit).getShortForm());
580 rajveer 1346
						}
1347
					}
1226 rajveer 1348
					sb.append("\n");
580 rajveer 1349
				}
4964 amit.gupta 1350
 
580 rajveer 1351
				/*
4964 amit.gupta 1352
				 * for(FeatureDefinition featureDef: featureDefs){
1353
				 * BulletDefinition bulletDef =
1354
				 * featureDef.getBulletDefinition(); System.out.println("			" +
1355
				 * featureDef.getLabel() + " 	" + featureDef.allowsBlank() + "	"
1356
				 * + bulletDef.isLearned() + "	" + bulletDef.isMultivalue());
1357
				 * List<Long> units = bulletDef.getUnitIDs(); if(units!=null){
1358
				 * for(Long unit: units){ System.out.println("								"+
1359
				 * dfc.getUnit(unit).getFullForm() + "	"+
1360
				 * dfc.getUnit(unit).getShortForm()); } }
1361
				 * if(bulletDef.getDatatypeDefinitionID()!=null){
1362
				 * System.out.println("										" +
1363
				 * dfc.getDatatypeDefinition(bulletDef
1364
				 * .getDatatypeDefinitionID()).getName());
1365
				 * 
1366
				 * } }
1367
				 */
580 rajveer 1368
			}
1369
		}
1226 rajveer 1370
		System.out.println(sb.toString());
580 rajveer 1371
		return true;
1372
	}
4964 amit.gupta 1373
 
1374
	public boolean migrateOS() throws Exception {
4706 amit.gupta 1375
		Map<Long, Entity> map = CreationUtils.getEntities();
4964 amit.gupta 1376
		for (Long entityId : map.keySet()) {
1377
			Entity entity = map.get(entityId);
1378
			if (entity == null || entity.getSlides() == null) {
1379
				continue;
1380
			}
1381
 
1382
			for (Slide slide : entity.getSlides()) {
1383
				if (slide.getSlideDefinitionID() == 130020) {
1384
					List<Feature> features = slide.getFeatures();
1385
					for (Feature f : features) {
1386
						if (f.getFeatureDefinitionID() == 120043) {
1387
							Bullet b = f.getBullets().get(0);
1388
							String value = ((PrimitiveDataObject) b
1389
									.getDataObject()).getValue();
1390
							long enumValueID = getEnumValueForOS(value);
1391
							if (enumValueID == 110371L) {
1392
								Logger.log("Set entity:" + entityId
1393
										+ " as proprietary software", entity);
1394
							}
4706 amit.gupta 1395
							b.setDataObject(new EnumDataObject(enumValueID));
4964 amit.gupta 1396
						}
1397
					}
1398
				}
4706 amit.gupta 1399
 
4964 amit.gupta 1400
			}
1401
 
1402
			CreationUtils.updateEntity(entity);
1403
		}
1404
		return true;
4706 amit.gupta 1405
	}
1406
 
1407
	private long getEnumValueForOS(String value) {
1408
		value = value.toLowerCase();
1409
		Map<String, Long> map = getOSEnumMap();
4964 amit.gupta 1410
		String os = "Proprietary software";
1411
		if (value.contains("android")) {
1412
			if (value.contains("1.5")) {
1413
				os = "Android v1.5 (Cupcake)";
1414
			}
1415
			if (value.contains("1.6")) {
1416
				os = "Android v1.6 (Donut)";
1417
			}
1418
			if (value.contains("2.1")) {
1419
				os = "Android v2.1 (Eclair)";
1420
			}
1421
			if (value.contains("2.2")) {
1422
				os = "Android v2.2 (Froyo)";
1423
			}
1424
			if (value.contains("2.3")) {
1425
				os = "Android v2.3 (Gingerbread)";
1426
			}
1427
			if (value.contains("3.0")) {
1428
				os = "Android v3.0 (Honeycomb)";
1429
			}
1430
			if (value.contains("3.1")) {
1431
				os = "Android v3.1 (Honeycomb)";
1432
			}
1433
			if (value.contains("3.2")) {
1434
				os = "Android v3.2 (Honeycomb)";
1435
			}
4706 amit.gupta 1436
		}
4964 amit.gupta 1437
		if (value.contains("blackberry")) {
1438
			if (value.contains("os")) {
4706 amit.gupta 1439
				os = "BlackBerry OS";
1440
			}
4964 amit.gupta 1441
			if (value.contains("5.0")) {
4706 amit.gupta 1442
				os = "BlackBerry OS 5.0";
1443
			}
4964 amit.gupta 1444
			if (value.contains("6.0")) {
4706 amit.gupta 1445
				os = "BlackBerry OS 6.0";
1446
			}
4964 amit.gupta 1447
			if (value.contains("7.0")) {
4706 amit.gupta 1448
				os = "BlackBerry OS 7.0";
1449
			}
4964 amit.gupta 1450
			if (value.contains("tablet os")) {
4706 amit.gupta 1451
				os = "BlackBerry Tablet OS";
1452
			}
1453
		}
4964 amit.gupta 1454
		if (value.contains("brew mobile platform")) {
4706 amit.gupta 1455
			os = "Brew Mobile Platform";
1456
		}
4964 amit.gupta 1457
		if (value.contains("maemo 5")) {
4706 amit.gupta 1458
			os = "Maemo 5";
1459
		}
4964 amit.gupta 1460
		if (value.contains("windows phone 7")) {
4706 amit.gupta 1461
			os = "Windows Phone 7";
1462
		}
4964 amit.gupta 1463
		if (value.contains("windows phone 7.5 mango")) {
4706 amit.gupta 1464
			os = "Windows Phone 7.5 Mango";
1465
		}
4964 amit.gupta 1466
		if (value.contains("proprietary")) {
1467
			if (value.contains("lg"))
4706 amit.gupta 1468
				os = "Proprietary LG software";
4964 amit.gupta 1469
			else if (value.contains("micromax")) {
4706 amit.gupta 1470
				os = "Proprietary Micromax software";
4964 amit.gupta 1471
			} else if (value.contains("samsung")) {
4706 amit.gupta 1472
				os = "Proprietary Samsung software";
4964 amit.gupta 1473
			} else if (value.contains("sony ericsson")) {
4706 amit.gupta 1474
				os = "Proprietary Sony Ericsson software";
4964 amit.gupta 1475
			} else if (value.contains("spice")) {
4706 amit.gupta 1476
				os = "Proprietary Spice software";
4964 amit.gupta 1477
			} else if (value.contains("lava")) {
4706 amit.gupta 1478
				os = "Proprietary Lava software";
4964 amit.gupta 1479
			} else if (value.contains("alcatel")) {
4706 amit.gupta 1480
				os = "Proprietary Alcatel software";
4964 amit.gupta 1481
			} else if (value.contains("motorola")) {
4706 amit.gupta 1482
				os = "Proprietary Motorola software";
4964 amit.gupta 1483
			} else if (value.contains("karbonn")) {
4706 amit.gupta 1484
				os = "Proprietary Karbonn software";
4964 amit.gupta 1485
			} else {
4706 amit.gupta 1486
				os = "Proprietary software";
1487
			}
1488
		}
4964 amit.gupta 1489
		if (value.contains("mmp")) {
4706 amit.gupta 1490
			os = "Proprietary Samsung software";
1491
		}
4964 amit.gupta 1492
		if (value.contains("samsung")) {
1493
			if (value.contains("bada")) {
1494
				os = "Samsung bada";
1495
			}
1496
			if (value.contains("bada 1.2")) {
1497
				os = "Samsung bada 1.2";
1498
			}
4706 amit.gupta 1499
		}
4964 amit.gupta 1500
		if (value.contains("sony ericsson java platform 8")) {
4706 amit.gupta 1501
			os = "Proprietary Sony Ericsson software";
1502
		}
4964 amit.gupta 1503
		if (value.contains("s60")) {
4706 amit.gupta 1504
			os = "Symbian 60";
1505
		}
4964 amit.gupta 1506
		if (value.contains("symbian")) {
1507
			if (value.contains("40")) {
4706 amit.gupta 1508
				os = "Symbian 40";
1509
			}
4964 amit.gupta 1510
			if (value.contains("60")) {
4706 amit.gupta 1511
				os = "Symbian 60";
1512
			}
4964 amit.gupta 1513
			if (value.contains("^3")) {
4706 amit.gupta 1514
				os = "Symbian^3";
1515
			}
4964 amit.gupta 1516
			if (value.contains("anna")) {
4706 amit.gupta 1517
				os = "Symbian Anna";
1518
			}
4964 amit.gupta 1519
			if (value.contains("belle")) {
4706 amit.gupta 1520
				os = "Symbian Belle";
1521
			}
1522
		}
4964 amit.gupta 1523
		if (value.contains("ios 4")) {
4706 amit.gupta 1524
			os = "iOS 4";
1525
		}
4964 amit.gupta 1526
		if (value.contains("ios 5")) {
4706 amit.gupta 1527
			os = "iOS 5";
1528
		}
1529
		return map.get(os);
1530
	}
4964 amit.gupta 1531
 
1532
	private Map<String, Long> getOSEnumMap() {
4706 amit.gupta 1533
		Map<String, Long> map = new HashMap<String, Long>();
1534
		map.put("Android v1.5 (Cupcake)", 110335L);
1535
		map.put("Android v1.6 (Donut)", 110336L);
1536
		map.put("Android v2.1 (Eclair)", 110337L);
1537
		map.put("Android v2.2 (Froyo)", 110338L);
1538
		map.put("Android v2.3 (Gingerbread)", 110339L);
1539
		map.put("Android v3.0 (Honeycomb)", 110340L);
1540
		map.put("Android v3.1 (Honeycomb)", 110341L);
4964 amit.gupta 1541
		map.put("Android v3.2 (Honeycomb)", 110342L);
4706 amit.gupta 1542
		map.put("BlackBerry OS", 110343L);
1543
		map.put("BlackBerry OS 5.0", 110344L);
1544
		map.put("BlackBerry OS 6.0", 110345L);
1545
		map.put("BlackBerry OS 7.0", 110346L);
1546
		map.put("BlackBerry Tablet OS", 110347L);
1547
		map.put("Brew Mobile Platform", 110348L);
1548
		map.put("Maemo 5", 110349L);
1549
		map.put("Windows Phone 7", 110350L);
1550
		map.put("Windows Phone 7.5 Mango", 110351L);
1551
		map.put("Proprietary LG software", 110352L);
1552
		map.put("Proprietary Micromax software", 110353L);
1553
		map.put("Proprietary Samsung software", 110354L);
1554
		map.put("Proprietary Sony Ericsson software", 110355L);
1555
		map.put("Proprietary Spice software", 110356L);
1556
		map.put("Proprietary Lava software", 110367L);
1557
		map.put("Proprietary Karbonn software", 110368L);
1558
		map.put("Proprietary Motorola software", 110369L);
1559
		map.put("Proprietary Alcatel software", 110370L);
4964 amit.gupta 1560
		map.put("Proprietary software", 110371L);
4706 amit.gupta 1561
		map.put("Samsung bada", 110357L);
1562
		map.put("Samsung bada 1.2", 110358L);
1563
		map.put("Symbian 40", 110360L);
1564
		map.put("Symbian 60", 110361L);
1565
		map.put("Symbian^3", 110362L);
1566
		map.put("Symbian Anna", 110363L);
1567
		map.put("Symbian Belle", 110364L);
1568
		map.put("iOS 4", 110365L);
1569
		map.put("iOS 5", 110366L);
4964 amit.gupta 1570
 
4706 amit.gupta 1571
		return map;
4964 amit.gupta 1572
 
4706 amit.gupta 1573
	}
4964 amit.gupta 1574
 
457 rajveer 1575
}