Subversion Repositories SmartDukaan

Rev

Rev 5397 | Rev 5672 | 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;
5370 amit.gupta 9
import in.shop2020.metamodel.core.Media;
10
import in.shop2020.metamodel.core.Media.Type;
1226 rajveer 11
import in.shop2020.metamodel.core.PrimitiveDataObject;
479 rajveer 12
import in.shop2020.metamodel.core.Slide;
580 rajveer 13
import in.shop2020.metamodel.definitions.BulletDefinition;
457 rajveer 14
import in.shop2020.metamodel.definitions.Catalog;
580 rajveer 15
import in.shop2020.metamodel.definitions.Category;
16
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
457 rajveer 17
import in.shop2020.metamodel.definitions.DefinitionsContainer;
580 rajveer 18
import in.shop2020.metamodel.definitions.FeatureDefinition;
19
import in.shop2020.metamodel.definitions.SlideDefinition;
20
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;
479 rajveer 21
import in.shop2020.metamodel.util.CreationUtils;
2720 mandeep.dh 22
import in.shop2020.metamodel.util.ExpandedBullet;
1739 rajveer 23
import in.shop2020.metamodel.util.ExpandedEntity;
2287 rajveer 24
import in.shop2020.model.v1.catalog.InventoryService.Client;
25
import in.shop2020.model.v1.catalog.Item;
26
import in.shop2020.model.v1.catalog.status;
3127 rajveer 27
import in.shop2020.thrift.clients.CatalogClient;
4706 amit.gupta 28
import in.shop2020.utils.Logger;
457 rajveer 29
 
2720 mandeep.dh 30
import java.io.BufferedReader;
5370 amit.gupta 31
import java.io.ByteArrayInputStream;
32
import java.io.ByteArrayOutputStream;
2720 mandeep.dh 33
import java.io.DataInputStream;
34
import java.io.File;
35
import java.io.FileInputStream;
5370 amit.gupta 36
import java.io.FileOutputStream;
37
import java.io.InputStream;
2720 mandeep.dh 38
import java.io.InputStreamReader;
5370 amit.gupta 39
import java.io.ObjectInputStream;
40
import java.io.ObjectOutputStream;
41
import java.io.OutputStream;
2720 mandeep.dh 42
import java.util.ArrayList;
5370 amit.gupta 43
import java.util.Collection;
3873 mandeep.dh 44
import java.util.Collections;
4706 amit.gupta 45
import java.util.HashMap;
5671 amit.gupta 46
import java.util.Iterator;
2720 mandeep.dh 47
import java.util.List;
48
import java.util.Map;
49
import java.util.TreeMap;
580 rajveer 50
 
5370 amit.gupta 51
import org.apache.commons.io.IOUtils;
4818 amit.gupta 52
import org.apache.commons.lang.StringUtils;
53
 
457 rajveer 54
/*
55
 * @author rajveer 
56
 * 
57
 *
58
 */
59
 
60
public class ContentMigrator {
61
	private String sourceDbPath;
62
	private String destinationDbPath;
4964 amit.gupta 63
 
457 rajveer 64
	public static void main(String[] args) throws Exception {
65
		String usage = "Usage: ContentMigrator {source db path}{destination db path}";
4964 amit.gupta 66
 
67
		String sourceDbPath = null, destinationDbPath = null;
68
		String dryRun = null;
69
		// if(args.length < 2) {
70
		// System.out.println(usage);
71
		// System.exit(-1);
72
		// }else{
73
		// sourceDbPath = args[0];
74
		// destinationDbPath = args[1];
75
		// dryRun = args[2];
76
		// }
77
		//
5281 amit.gupta 78
		ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath,destinationDbPath);
5671 amit.gupta 79
		Long catgoryId = 10020L;
80
		Long newSummarySlideDefId = 130134L;
81
		contentmigrator.migrateWarrantyForCategory(catgoryId);
5281 amit.gupta 82
		//contentmigrator.renameTitles();
4964 amit.gupta 83
		// contentmigrator.migrateWarrantyType();
84
		// CreationUtils.storeComparisonStats(null);n
85
		// contentmigrator.migrateMedia();
86
		// contentmigrator.populateHelpdocEntityIds();
87
		// contentmigrator.migrateDataBack();
88
		// contentmigrator.migrateBrandModel(dryRun);
89
		// contentmigrator.migrateData();
90
		// contentmigrator.migrateRemoveBorrowedCategoryIdFromSlide();
91
		// contentmigrator.migrateModel1();
92
		// contentmigrator.changeEntityState();
93
		// contentmigrator.removeBrowserBullets();
94
		// contentmigrator.migrateModel2();
95
		// contentmigrator.printDataModel();
96
		// contentmigrator.makeEntitiesObject();
97
		// contentmigrator.printSlides();
1739 rajveer 98
		/*
4964 amit.gupta 99
		 * DefinitionsContainer dfc =
100
		 * Catalog.getInstance().getDefinitionsContainer(); for(Long fid:
101
		 * dfc.getCategoryFacetDefinitions().keySet()){ for(FacetDefinition
102
		 * facetDef:
103
		 * dfc.getCategoryFacetDefinitions().get(fid).getFacetDefinitions()){
104
		 * System.out.println("***" + fid + " *** " + facetDef.getID() +
105
		 * facetDef.getTarget() ); }
106
		 * 
107
		 * }
108
		 */
109
 
110
		// System.out.println("**********" + dfc.getCategoryFacetDefinitions());
111
		// System.out.println("**********" + dfc.getSlideFacetDefinitions());
112
 
113
		/*
114
		 * for(Long defID : dfc.getSlideFacetDefinitions().keySet()){
115
		 * for(FacetDefinition facetDef:
116
		 * dfc.getSlideFacetDefinitions().get(defID)){ System.out.println(defID
117
		 * + "****" + facetDef.getID() + facetDef.getDescription()); }
118
		 * 
119
		 * }
120
		 */
121
 
122
		/*
123
		 * System.out.println(OldCreationUtils.getSlideSequence(1000194));
124
		 * List<Slide> slides = OldCreationUtils.getEntity(1000194).getSlides();
125
		 * for(Slide slide: slides){
126
		 * System.out.println(slide.getSlideDefinitionID()); }
127
		 */
128
 
129
		// ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath,
130
		// destinationDbPath);
131
		// boolean result = contentmigrator.migrate();
132
		// System.out.println("Content migration status:  "+ result);
133
 
134
	}
135
 
5671 amit.gupta 136
	private void migrateWarrantyForCategory(Long catgoryId) throws Exception {
137
		Collection<Entity> entities = CreationUtils.getEntities(catgoryId);
138
		int count = 0;
139
		for (Entity entity : entities) {
140
			Slide slide = entity.getSlide(130054l);
141
			if(slide!=null){
142
				List<Slide> childrenSlide = slide.getChildrenSlides();
143
				Iterator<Slide> it = childrenSlide.iterator();
144
				while (it.hasNext()){
145
					Slide sl = it.next();
146
					if (130105l == sl.getSlideDefinitionID()){
147
						it.remove();
148
						System.out.println("Removed warranty slide from entity:" + entity.getID());
149
						break;
150
					}
151
				}
152
				CreationUtils.updateEntity(entity);
153
			}
154
		}
155
	}
156
 
157
	private void checkYouTube() throws Exception {
158
		// TODO Auto-generated method stub
159
		Collection<Entity> entities = CreationUtils.getEntities().values();
160
		//entities = (List<Entity>)this.clone(entities);
161
		for (Entity entity : entities) {
162
			long entityId = entity.getID();
163
			try {
164
				List<Slide> entitySlides = entity.getSlides();
165
				if (entity == null || entitySlides == null) {
166
					continue;
167
				}
168
				Slide summarySlide = null;
169
				FreeformContent ffc = null;
170
 
171
				List<Slide> newEntitySlides = new ArrayList<Slide>(); 
172
				Slide connectivitySlide = new Slide(130129);
173
				Slide looknfeelSlide = new Slide(130128);
174
				for (Slide slide : entitySlides) {
175
						ffc = slide.getFreeformContent();
176
						if(ffc != null){
177
							Map<String, Media> mediaMap = ffc.getMedias();
178
							if(mediaMap!=null){
179
								for(Media media : mediaMap.values()){
180
									if(media.getType().equals(Type.VIDEO_WITHOUT_SKIN) || media.getType().equals(Type.VIDEO_WITH_SKIN)){
181
										if(media.getYoutubeId().contains("&"))
182
										System.out.println(entityId + " : " + media.getLabel() + ":" + media.getYoutubeId());
183
									}
184
								}
185
							}
186
						}
187
				}
188
 
189
			}catch(Exception e){
190
				System.out.println("Could not migrate " + entityId);
191
			}
192
		}
193
 
194
 
195
	}
196
 
4964 amit.gupta 197
	private void renameTitles() throws Exception {
198
		Map<Long, Entity> map = CreationUtils.getEntities();
199
		for (Long entityId : map.keySet()) {
200
			Entity entity = map.get(entityId);
201
			if (entity == null || entity.getSlides() == null) {
202
				continue;
1314 rajveer 203
			}
204
 
4964 amit.gupta 205
 
206
			String brand = entity.getBrand();
207
			String modelName = entity.getModelName();
208
			String modelNumber = entity.getModelNumber();
209
			String value = "";
210
			if(StringUtils.isEmpty(modelName)){
211
				value = brand + " " + modelNumber + " Price in India | Specifications, Features and Reviews";
212
			}else {
213
				value = brand + " " + modelName + " Price in India | " + modelNumber + " Specifications, Features and Reviews";
1314 rajveer 214
			}
215
 
4964 amit.gupta 216
			Slide summarySlide = entity.getSlide(130054);
217
			if(summarySlide != null){
218
				for(Feature f : summarySlide.getFeatures()){
219
					if (f.getFeatureDefinitionID()==120132){
220
						List<Bullet> bulletList = f.getBullets();
221
						for (Bullet b : bulletList) {
222
							b.setDataObject(new PrimitiveDataObject(value));
223
						}
224
						CreationUtils.updateEntity(entity);
225
						continue;
226
					}
227
				}
228
			}
1314 rajveer 229
		}
457 rajveer 230
	}
231
 
4818 amit.gupta 232
	private void migrateNetwork() throws Exception {
233
		Map<Long, Entity> map = CreationUtils.getEntities();
4964 amit.gupta 234
		for (Long entityId : map.keySet()) {
235
			Entity entity = map.get(entityId);
236
			if (entity == null || entity.getSlides() == null) {
237
				continue;
238
			}
4818 amit.gupta 239
 
4964 amit.gupta 240
			for (Slide slide : entity.getSlides()) {
5281 amit.gupta 241
				if (slide.getSlideDefinitionID() == 130095) {
242
					List<Slide> slides = slide.getChildrenSlides();
243
					for(Slide slide1  : slides){
244
						if(slide1.getSlideDefinitionID() == 130096){							
245
							List<Feature> features = slide1.getFeatures();
246
							for (Feature f : features) {
247
								if (f.getFeatureDefinitionID() == 120175) {
248
									List<Bullet> bs = f.getBullets();
249
									for (Bullet b : bs) {
250
										Long enumValueId = ((EnumDataObject) b
251
												.getDataObject()).getEnumValueID();
252
										String value = Catalog.getInstance().getDefinitionsContainer().getEnumValue(enumValueId).getValue(); 
253
										if (value.trim().equals("")) {
254
											continue;
255
										}
256
										System.out.println(value);
257
 
258
									}
4964 amit.gupta 259
								}
260
							}
261
						}
262
					}
263
				}
264
 
265
			}
266
 
267
			CreationUtils.updateEntity(entity);
268
		}
4818 amit.gupta 269
	}
5370 amit.gupta 270
	private void migrateHeadSet() throws Exception {
271
 
272
		//Starting entity id for new Category with 10000
273
		long newCounter = 77777000;
274
		Collection<Entity> entities = CreationUtils.getEntities(10015);
275
 
276
		//entities = (List<Entity>)this.clone(entities);
277
		for (Entity entity : entities) {
278
			long entityId = entity.getID();
279
			try {
280
				List<Slide> entitySlides = entity.getSlides();
281
				if (entity == null || entitySlides == null) {
282
					continue;
283
				}
284
				Slide summarySlide = null;
285
				FreeformContent ffc = null;
286
 
287
				List<Slide> newEntitySlides = new ArrayList<Slide>(); 
288
				Slide connectivitySlide = new Slide(130129);
289
				Slide looknfeelSlide = new Slide(130128);
290
				for (Slide slide : entitySlides) {
291
					slide=(Slide)this.clone(slide);
292
					if (slide.getSlideDefinitionID() == 130068) {
293
						List<Feature> connectivityFeatures = new ArrayList<Feature>();
294
						List<Feature> looknfeelFeatures = new ArrayList<Feature>();
295
						List<Feature> features = slide.getFeatures();
296
						for (Feature f : features) {
297
							if (f.getFeatureDefinitionID() == 120105) {
298
								connectivityFeatures.add(f);
299
							}
300
							if (f.getFeatureDefinitionID() == 120106) {
301
								looknfeelFeatures.add(f);
302
							}
303
						}
304
						ffc = slide.getFreeformContent();
305
						if(ffc != null){
306
							Map<String, Media> mediaMap = ffc.getMedias();
307
							if(mediaMap!=null){
308
								for(Media media : mediaMap.values()){
309
									if(media.getType().equals(Type.IMAGE) || media.getType().equals(Type.DOCUMENT)){
310
										copyMedia(String.valueOf(newCounter), String.valueOf(entityId),media);
311
									}
312
								}
313
							}
314
						}
315
						connectivitySlide.setFeatures(connectivityFeatures);
316
						looknfeelSlide.setFeatures(looknfeelFeatures);
317
						looknfeelSlide.setFreeformContent(ffc);
318
					} 
319
					//Summary slide
320
					if(slide.getSlideDefinitionID() == 130054) {
321
						summarySlide = slide; 
322
						FreeformContent ffc1 = slide.getFreeformContent();
323
						if(ffc1 != null){
324
							Map<String, Media> mediaMap = ffc1.getMedias();
325
							if(mediaMap==null){
326
								continue;
327
							}
328
							for(Media media : mediaMap.values()){
329
								if(media.getType().equals(Type.IMAGE) || media.getType().equals(Type.DOCUMENT)){
330
									copyMedia(String.valueOf(newCounter), String.valueOf(entityId),media);
331
								}
332
							}
333
						}
334
					}
335
 
336
				}
337
 
338
				Entity newEntity = new Entity(newCounter, 10099);
5374 amit.gupta 339
				List<Long> newSlideSequence = new ArrayList<Long>();
340
				newSlideSequence.add(130128L);
341
				newSlideSequence.add(130129L);
342
				newSlideSequence.add(130054L);
343
				newEntity.setSlideSequence(newSlideSequence);
5370 amit.gupta 344
				newEntity.setBrand(entity.getBrand());
345
				newEntity.setModelName(entity.getModelName());
346
				newEntity.setModelNumber(entity.getModelNumber());
347
				//entitySlides.remove(featureSlide);
348
				newEntitySlides.add(connectivitySlide);
349
				newEntitySlides.add(looknfeelSlide);
350
				newEntitySlides.add(summarySlide);
351
				newEntity.setSlides(newEntitySlides);
352
				EntityState es = new EntityState(newCounter, 10099, "admin");
353
				es.setBrand(entity.getBrand());
354
				es.setModelName(entity.getModelName());
355
				es.setModelNumber(entity.getModelNumber());
356
				CreationUtils.createEntity(newEntity, es);
357
				System.out.println("New entity : " + newCounter + " created using : " + entityId);
358
				System.out.println(CreationUtils.getEntity(newCounter));
359
				newCounter++;
360
			}catch(Exception e){
361
				System.out.println("Could not migrate " + entityId);
362
			}
363
		}
364
 
365
	}
4818 amit.gupta 366
 
367
	private long getEnumValueForNetwork(String value, Long entityLong) {
368
		value = value.toLowerCase().replaceAll(" ", "");
369
		Map<String, Long> map = new HashMap<String, Long>();
4964 amit.gupta 370
		map.put("quadband(gsm850/900/1800/1900)", 110382L);
4818 amit.gupta 371
		map.put("quadband(gsm850/900/1800/1900)-sim1", 110383l);
372
		map.put("quadband(gsm850/900/1800/1900)-sim2", 110384l);
373
		map.put("triband(gsm900/1800/1900)", 110385l);
374
		map.put("triband(gsm900/1800/1900)-sim1", 110386l);
375
		map.put("triband(gsm900/1800/1900)-sim2", 110387l);
376
		map.put("dualband(gsm900/1800)", 110388l);
377
		map.put("dualband(gsm900/1800)-sim1", 110389l);
378
		map.put("dualband(gsm900/1800)-sim2", 110390l);
4964 amit.gupta 379
		map.put("cdma800", 110391l); // CDMA 800
380
		map.put("cdma800-sim2", 110392l); // CDMA 800-SIM 2
381
		map.put("cdma800-sim3", 110393l); // CDMA 800-SIM 3
382
 
383
		if (!StringUtils.contains(value, "sim")
384
				&& StringUtils.contains(value, "850/900/1800/1900")) {
4818 amit.gupta 385
			return map.get("quadband(gsm850/900/1800/1900)");
386
		}
4964 amit.gupta 387
		if (StringUtils.contains(value, "sim1")
388
				&& StringUtils.contains(value, "850/900/1800/1900")) {
4818 amit.gupta 389
			return map.get("quadband(gsm850/900/1800/1900)-sim1");
390
		}
4964 amit.gupta 391
		if (StringUtils.contains(value, "sim2")
392
				&& StringUtils.contains(value, "850/900/1800/1900")) {
4818 amit.gupta 393
			return map.get("quadband(gsm850/900/1800/1900)-sim2");
394
		}
4964 amit.gupta 395
		if (!StringUtils.contains(value, "sim")
396
				&& StringUtils.contains(value, "900/1800/1900")) {
4818 amit.gupta 397
			return map.get("triband(gsm900/1800/1900)");
398
		}
4964 amit.gupta 399
		if (StringUtils.contains(value, "sim1")
400
				&& StringUtils.contains(value, "900/1800/1900")) {
4818 amit.gupta 401
			return map.get("triband(gsm900/1800/1900)-sim1");
402
		}
4964 amit.gupta 403
		if (StringUtils.contains(value, "sim2")
404
				&& StringUtils.contains(value, "900/1800/1900")) {
4818 amit.gupta 405
			return map.get("triband(gsm900/1800/1900)-sim2");
406
		}
4964 amit.gupta 407
		if (!StringUtils.contains(value, "sim")
408
				&& StringUtils.contains(value, "900/1800")) {
4818 amit.gupta 409
			return map.get("dualband(gsm900/1800)");
410
		}
4964 amit.gupta 411
		if (StringUtils.contains(value, "sim1")
412
				&& StringUtils.contains(value, "900/1800")) {
4818 amit.gupta 413
			return map.get("dualband(gsm900/1800)-sim1");
414
		}
4964 amit.gupta 415
		if (StringUtils.contains(value, "sim2")
416
				&& StringUtils.contains(value, "900/1800")) {
4818 amit.gupta 417
			return map.get("dualband(gsm900/1800)-sim2");
418
		}
4964 amit.gupta 419
		if (StringUtils.contains(value, "cdma")) {
420
			if (StringUtils.contains(value, "sim2")) {
4818 amit.gupta 421
				return map.get("cdma800-sim2");
422
			}
4964 amit.gupta 423
			if (StringUtils.contains(value, "sim3")) {
4818 amit.gupta 424
				return map.get("cdma800-sim3");
425
			}
426
			return map.get("cdma800");
4964 amit.gupta 427
		} else {
428
			System.out.println("Unknown networks: " + value + " : "
429
					+ entityLong);
4818 amit.gupta 430
			return 0;
431
		}
432
	}
433
 
457 rajveer 434
	public ContentMigrator(String sourceDbPath, String destinationDbPath) {
4964 amit.gupta 435
		this.sourceDbPath = sourceDbPath;
457 rajveer 436
		this.destinationDbPath = destinationDbPath;
437
	}
2720 mandeep.dh 438
 
3873 mandeep.dh 439
	public void migrateWarrantyType() throws Exception {
4964 amit.gupta 440
		Map<Long, Entity> map = CreationUtils.getEntities();
441
		for (Long entityId : map.keySet()) {
442
			Entity entity = map.get(entityId);
443
			if (entity == null || entity.getSlides() == null) {
444
				continue;
445
			}
446
			for (Slide slide : entity.getSlides()) {
447
				if (slide.getSlideDefinitionID() == 130054) {
448
					Slide warrantySlide = new Slide(130105);
449
					warrantySlide.setFeatures(new ArrayList<Feature>());
3873 mandeep.dh 450
 
4964 amit.gupta 451
					Feature feature = new Feature(120219);
452
					feature.setBullets(Collections.singletonList(new Bullet(
453
							new EnumDataObject(110299))));
454
					warrantySlide.getFeatures().add(feature);
3873 mandeep.dh 455
 
4964 amit.gupta 456
					Feature existingWarrantyFeature = null;
457
					for (Feature summaryFeature : slide.getFeatures()) {
458
						if (summaryFeature.getFeatureDefinitionID() == 120125) {
459
							existingWarrantyFeature = summaryFeature;
460
							warrantySlide.getFeatures().add(summaryFeature);
461
							break;
462
						}
463
					}
3873 mandeep.dh 464
 
4964 amit.gupta 465
					slide.getFeatures().remove(existingWarrantyFeature);
466
					slide.addChild(warrantySlide);
467
					break;
468
				}
469
 
470
			}
471
 
472
			CreationUtils.updateEntity(entity);
473
		}
3873 mandeep.dh 474
	}
475
 
2720 mandeep.dh 476
	public void migrateMedia() throws Exception {
4964 amit.gupta 477
		Map<Long, Entity> map = CreationUtils.getEntities();
478
		for (Long entityId : map.keySet()) {
479
			Entity entity = map.get(entityId);
480
			if (entity == null || entity.getSlides() == null) {
481
				continue;
482
			}
483
			for (Slide slide : entity.getSlides()) {
484
				FreeformContent ffc = slide.getFreeformContent();
2720 mandeep.dh 485
 
4964 amit.gupta 486
				// if (ffc == null || ffc.getMediasNew() == null) {
487
				// continue;
488
				// }
489
				//
490
				// Map<String, Media> newMap = new LinkedHashMap<String,
491
				// Media>();
492
				// Media media = null;
493
				// for (String label : ffc.getMediasNew().keySet()) {
494
				// MediaNew m = ffc.getMediasNew().get(label);
495
				// media = new Media(m.getLabel(), Media.Type.valueOf(m
496
				// .getType().name()), m.getLocation());
497
				// media.setTitle(m.getTitle());
498
				// media.setFileName(m.getFileName());
499
				// newMap.put(label, media);
500
				// }
501
				// ffc.setMedias(newMap);
502
				// ffc.setMediasNew(null);
2720 mandeep.dh 503
 
4964 amit.gupta 504
				// if (ffc == null || ffc.getMedias() == null) {
505
				// continue;
506
				// }
507
				// Map<String, MediaNew> newMap = new LinkedHashMap<String,
508
				// MediaNew>();
509
				// MediaNew mediaNew = null;
510
				// for (String label : ffc.getMedias().keySet()) {
511
				// Media m = ffc.getMedias().get(label);
512
				// if (m.getType().equalsIgnoreCase("image")) {
513
				// mediaNew = new MediaNew(m.getLabel(),
514
				// MediaNew.Type.IMAGE, m.getLocation());
515
				// mediaNew.setFileName(m.getFileName());
516
				// } else if (m.getType().equalsIgnoreCase("youtube")) {
517
				// if (m.getVideoType().equalsIgnoreCase("withskin")) {
518
				// mediaNew = new MediaNew(m.getLabel(),
519
				// MediaNew.Type.VIDEO_WITH_SKIN,
520
				// m.getLocation());
521
				// } else {
522
				// mediaNew = new MediaNew(m.getLabel(),
523
				// MediaNew.Type.VIDEO_WITHOUT_SKIN,
524
				// m.getLocation());
525
				// }
526
				// }
527
				//
528
				// if (mediaNew != null) {
529
				// mediaNew.setTitle(m.getTitle());
530
				// newMap.put(label, mediaNew);
531
				// }
532
				// }
533
				// ffc.setMediasNew(newMap);
534
				// ffc.setMedias(null);
535
			}
536
			CreationUtils.updateEntity(entity);
537
		}
2720 mandeep.dh 538
	}
539
 
4964 amit.gupta 540
	public boolean populateHelpdocEntityIds() throws Exception {
541
		for (Entity entity : CreationUtils.getEntities().values()) {
2471 rajveer 542
			CreationUtils.updateEntity(entity);
543
		}
544
		return true;
545
	}
2720 mandeep.dh 546
 
4964 amit.gupta 547
	public boolean migrateBrandModel(String dryRun) throws Exception {
3127 rajveer 548
		CatalogClient catalogServiceClient = new CatalogClient();
2287 rajveer 549
		Client client = catalogServiceClient.getClient();
550
		List<Item> items = client.getAllItemsByStatus(status.ACTIVE);
551
		items.addAll(client.getAllItemsByStatus(status.PAUSED));
552
		items.addAll(client.getAllItemsByStatus(status.CONTENT_COMPLETE));
553
		Map<Long, Entity> entities = CreationUtils.getEntities();
554
		long count = 0;
555
		StringBuffer sb = new StringBuffer();
4964 amit.gupta 556
		for (Item item : items) {
2287 rajveer 557
			long entityId = item.getCatalogItemId();
558
			Entity entity = entities.get(entityId);
4964 amit.gupta 559
			if (entity == null) {
2292 rajveer 560
				continue;
561
			}
2294 rajveer 562
			String itemBrand = item.getBrand().trim();
2287 rajveer 563
			String itemModelName = item.getModelName();
4964 amit.gupta 564
			if (itemModelName != null) {
2294 rajveer 565
				itemModelName = itemModelName.trim();
566
			}
567
			String itemModelNumber = item.getModelNumber().trim();
568
			String entityBrand = entity.getBrand().trim();
569
			String entityModelName = entity.getModelName().trim();
4964 amit.gupta 570
			if (entityModelName != null) {
2294 rajveer 571
				entityModelName = entityModelName.trim();
572
			}
573
			String entityModelNumber = entity.getModelNumber().trim();
4964 amit.gupta 574
 
575
			if (itemBrand.equals(entityBrand)
576
					&& itemModelNumber.equals(entityModelNumber)) {
577
				if (itemModelName != null && entityModelName != null
578
						&& itemModelName.equals(entityModelName)) {
2292 rajveer 579
					continue;
4964 amit.gupta 580
				} else if (itemModelName == null && entityModelName == null) {
581
					continue;
2292 rajveer 582
				}
4964 amit.gupta 583
 
2287 rajveer 584
			}
585
			count++;
4964 amit.gupta 586
			sb.append(count + ") Item:   " + itemBrand + "\t" + itemModelName
587
					+ "\t" + itemModelNumber + "\t" + item.getId() + "\n");
588
			sb.append(count + ") Entity: " + entityBrand + "\t"
589
					+ entityModelName + "\t" + entityModelNumber + "\t"
590
					+ entity.getID() + "\n");
591
 
592
			if (dryRun.equals("false")) {
2294 rajveer 593
				item.setBrand(entityBrand);
594
				item.setModelName(entityModelName);
595
				item.setModelNumber(entityModelNumber);
4964 amit.gupta 596
				client.updateItem(item);
2287 rajveer 597
			}
598
		}
599
		System.out.println(sb.toString());
600
		return true;
601
	}
2720 mandeep.dh 602
 
473 rajveer 603
	/**
4964 amit.gupta 604
	 * this function will read source definition and source entities, and will
605
	 * convert source entities to destination entities according to destination
606
	 * definitions.
473 rajveer 607
	 * 
608
	 * @return boolean
4964 amit.gupta 609
	 * @throws Exception
473 rajveer 610
	 */
1226 rajveer 611
 
4964 amit.gupta 612
	public void printSlides() throws Exception {
613
		DefinitionsContainer defc = Catalog.getInstance()
614
				.getDefinitionsContainer();
615
		for (Category category : defc.getCategories().values()) {
616
			if (category.getChildrenCategory() != null)
617
				continue;
618
			System.out.println(category.getID() + "\t" + category.getLabel());
619
			for (CategorySlideDefinition defs : defc
620
					.getCategorySlideDefinitions(category.getID())) {
621
				System.out.println(defs.getSlideDefintionID()
622
						+ "\t"
623
						+ defs.getEditorialImportance()
624
						+ "\t"
625
						+ defc.getSlideDefinition(defs.getSlideDefintionID())
626
								.getLabel()
627
						+ "\t"
628
						+ defc.getSlideDefinition(defs.getSlideDefintionID())
629
								.getChildrenSlideDefinitionIDs());
1226 rajveer 630
			}
631
		}
632
	}
4964 amit.gupta 633
 
634
	public void removeBrowserBullets() throws Exception {
635
		Map<Long, List<ExpandedBullet>> learnedBullets = CreationUtils
636
				.getLearnedBullets();
1226 rajveer 637
		learnedBullets.get(new Long(120076));
638
		learnedBullets.remove(new Long(120076));
639
		CreationUtils.storeLearnedBullets(learnedBullets);
4964 amit.gupta 640
 
1226 rajveer 641
	}
4964 amit.gupta 642
 
643
	public boolean changeEntityState() throws Exception {
1226 rajveer 644
		Map<Long, EntityState> entitiesState = CreationUtils.getEntitiesState();
4964 amit.gupta 645
		for (Long entityId : entitiesState.keySet()) {
1226 rajveer 646
			EntityState state = entitiesState.get(entityId);
4964 amit.gupta 647
			if (state.getCategoryID() == 10002
648
					|| state.getCategoryID() == 10003
649
					|| state.getCategoryID() == 10004
650
					|| state.getCategoryID() == 10005) {
1226 rajveer 651
				state.setCompletedBy("");
652
				state.setMerkedReadyBy("");
4964 amit.gupta 653
				// state.setStatus(EntityStatus.ASSIGNED);
654
				// CreationUtils.updateEntityState(state);
1226 rajveer 655
				System.out.println(entityId + ":" + state.getStatus());
656
			}
657
			CreationUtils.updateEntityState(state);
658
		}
659
		return true;
660
	}
1739 rajveer 661
 
4964 amit.gupta 662
	public boolean migrateDataBack() throws Exception {
1226 rajveer 663
		Map<Long, Entity> entities = CreationUtils.getEntities();
4964 amit.gupta 664
		for (Entity entity : entities.values()) {
665
			if (entity == null) {
666
				continue;
667
			}
1226 rajveer 668
			List<Slide> slides = entity.getSlides();
4964 amit.gupta 669
			if (slides != null) {
670
				for (Slide slide : slides) {
671
					if (slide.getSlideDefinitionID() == 130054) {
672
						List<Feature> features = slide.getFeatures();
673
						int length = features.size();
674
						features.remove(length - 1);
675
						features.remove(length - 2);
676
						features.remove(length - 3);
677
						/*
678
						 * boolean a = false,b=false,c=false; for(Feature
679
						 * feature: features){ switch
680
						 * ((int)feature.getFeatureDefinitionID()) { case
681
						 * 120132: if(a){
682
						 * 
683
						 * }else{ a=true; } break; case 120133: break; case
684
						 * 120134: break; default: break; } }
685
						 */
686
						CreationUtils.updateEntity(entity);
1226 rajveer 687
					}
688
				}
689
			}
690
		}
4964 amit.gupta 691
		return true;
1226 rajveer 692
	}
4964 amit.gupta 693
 
694
	public boolean migrateData() throws Exception {
1226 rajveer 695
		Map<Long, Entity> entities = CreationUtils.getEntities();
4964 amit.gupta 696
		for (Entity entity : entities.values()) {
697
			ExpandedEntity expEntity = new ExpandedEntity(entity);
1226 rajveer 698
			List<Slide> slides = entity.getSlides();
4964 amit.gupta 699
			if (slides != null) {
700
				for (Slide slide : slides) {
701
					if (slide.getSlideDefinitionID() == 130054) {
702
						List<Feature> features = slide.getFeatures();
703
						String title = expEntity.getBrand() + " "
704
								+ expEntity.getModelName() + " "
705
								+ expEntity.getModelNumber();
706
						if (expEntity.getCategory().getParentCategory().getID() == 10001) {
707
							title += " | " + expEntity.getBrand()
708
									+ " Mobile Phones";
1226 rajveer 709
						}
4964 amit.gupta 710
						if (expEntity.getCategory().getParentCategory().getID() == 10011) {
711
							title += " " + expEntity.getCategory().getLabel()
712
									+ " | " + expEntity.getBrand()
713
									+ " Mobile Phone Accessories";
1226 rajveer 714
						}
4964 amit.gupta 715
						title += " | Saholic.com";
716
 
717
						// Add page title
718
						Feature feature1 = new Feature(120132);
719
						PrimitiveDataObject pdo1 = new PrimitiveDataObject(
720
								title);
721
						List<Bullet> bullets1 = new ArrayList<Bullet>();
722
						Bullet bullet1 = new Bullet(pdo1);
723
						bullets1.add(bullet1);
724
						feature1.setBullets(bullets1);
725
						features.add(feature1);
726
 
727
						String description = "Best Price "
728
								+ expEntity.getBrand() + " "
729
								+ expEntity.getModelName() + " "
730
								+ expEntity.getModelNumber() + " ";
731
 
732
						if (expEntity.getCategory().getParentCategory().getID() == 10011) {
733
							description += expEntity.getCategory().getLabel()
734
									+ " in India.";
735
						} else {
736
							description += ".";
1226 rajveer 737
						}
4964 amit.gupta 738
						description += " Experience n' buy online. FREE Next Day delivery."
739
								+ " Original product - Full manufacturer warranty. Comprehensive reviews.";
1226 rajveer 740
 
4964 amit.gupta 741
						description = description.replaceAll("--", "-");
742
 
743
						// Add meta description
744
						Feature feature2 = new Feature(120133);
745
						PrimitiveDataObject pdo2 = new PrimitiveDataObject(
746
								description);
747
						List<Bullet> bullets2 = new ArrayList<Bullet>();
748
						Bullet bullet2 = new Bullet(pdo2);
749
						bullets2.add(bullet2);
750
						feature2.setBullets(bullets2);
751
 
752
						features.add(feature2);
753
 
754
						String keywords = expEntity.getBrand() + " "
755
								+ expEntity.getModelName() + " "
756
								+ expEntity.getModelNumber() + ", ";
757
						if (expEntity.getCategory().getParentCategory().getID() == 10001) {
758
							keywords += expEntity.getBrand()
759
									+ " mobile phones, ";
1226 rajveer 760
						}
4964 amit.gupta 761
						if (expEntity.getCategory().getParentCategory().getID() == 10011) {
762
							keywords += "phone accessories, ";
1226 rajveer 763
						}
4964 amit.gupta 764
						keywords += expEntity.getBrand() + " "
765
								+ expEntity.getModelName() + " "
766
								+ expEntity.getModelNumber() + " Price, ";
767
						keywords += expEntity.getBrand() + " "
768
								+ expEntity.getModelName() + " "
769
								+ expEntity.getModelNumber() + " India, ";
770
						if (expEntity.getCategory().getParentCategory().getID() == 10001) {
771
							keywords += expEntity.getBrand() + " "
772
									+ expEntity.getModelName() + " "
773
									+ expEntity.getModelNumber() + " Review, ";
1226 rajveer 774
						}
4964 amit.gupta 775
						// Add meta keyborad
776
						Feature feature3 = new Feature(120134);
777
						PrimitiveDataObject pdo3 = new PrimitiveDataObject(
778
								keywords);
779
						List<Bullet> bullets3 = new ArrayList<Bullet>();
780
						Bullet bullet3 = new Bullet(pdo3);
781
						bullets3.add(bullet3);
782
						feature3.setBullets(bullets3);
783
 
784
						features.add(feature3);
785
 
786
						CreationUtils.updateEntity(entity);
787
					}
788
				}
789
			}
790
		}
791
		return true;
792
	}
793
 
794
	public boolean migrateModel2() throws Exception {
795
		Map<Long, Entity> entities = CreationUtils.getEntities();
796
		for (Entity entity : entities.values()) {
797
			List<Slide> slides = entity.getSlides();
798
			if (slides != null) {
799
				for (Slide slide : slides) {
800
					if (slide.getSlideDefinitionID() == 130011) {
801
						for (Feature feature : slide.getFeatures()) {
802
							if (feature.getFeatureDefinitionID() == 120054) {
803
								// feature.setFeatureDefinitionID(120030);
804
								System.out.println("* " + entity.getID() + ":"
805
										+ entity.getCategoryID());
1226 rajveer 806
							}
807
						}
4964 amit.gupta 808
					}
1226 rajveer 809
 
4964 amit.gupta 810
					if (slide.getSlideDefinitionID() == 130029) {
811
						// System.out.println("** " + entity.getID() + ":" +
812
						// entity.getCategoryID());
813
						if (entity.getCategoryID() == 10002) {
814
							Feature feature = new Feature(120051);
815
							slide.getFeatures().add(feature);
816
							System.out.println("** " + entity.getID() + ":"
817
									+ entity.getCategoryID());
1226 rajveer 818
						}
819
					}
820
 
821
				}
822
			}
4964 amit.gupta 823
			CreationUtils.updateEntity(entity);
1226 rajveer 824
		}
825
		return true;
826
	}
4964 amit.gupta 827
 
828
	/*
829
	 * public boolean migrateModel1() throws Exception{ //DefinitionsContainer
830
	 * oldDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH +
831
	 * "olddefinitions" + File.separator); //DefinitionsContainer newDfc = new
832
	 * DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" +
833
	 * File.separator);
834
	 * 
835
	 * Map<Long, Entity> entities = CreationUtils.getEntities(); for(Entity
836
	 * entity: entities.values()){ List<Long> slideSequence =
837
	 * entity.getSlideSequence(); Map<Long,Long> removeMap = new HashMap<Long,
838
	 * Long>(); List<Slide> slides = entity.getSlides(); if(slides!=null){
839
	 * for(Slide slide: slides){ List<Feature> features; Slide childSlide;
840
	 * switch ((int)slide.getSlideDefinitionID()) {
841
	 * 
842
	 * //Keyboard case 130004: case 130026: case 130027: case 130057:
843
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130026);
844
	 * slide.setSlideDefinitionID(130026); break;
845
	 * 
846
	 * //Voice Calling case 130005: removeMap.put(slide.getSlideDefinitionID(),
847
	 * (long)130005); slide.setSlideDefinitionID(130005); features = new
848
	 * ArrayList<Feature>(); features.addAll(slide.getFeatures()); childSlide =
849
	 * slide.getChildrenSlides().get(0);
850
	 * features.addAll(childSlide.getFeatures());
851
	 * if(childSlide.getFreeformContent()!=null){
852
	 * System.out.println("Voice Calling : HAS FFC : " +
853
	 * childSlide.getFreeformContent().getFreeformText() +
854
	 * childSlide.getFreeformContent().getMedias()); }
855
	 * slide.setChildrenSlides(null); slide.setFeatures(features); break; case
856
	 * 130035: removeMap.put(slide.getSlideDefinitionID(), (long)130005);
857
	 * slide.setSlideDefinitionID(130005); for(Feature feata:
858
	 * slide.getFeatures()){ if(feata.getFeatureDefinitionID()==120055){
859
	 * feata.setFeatureDefinitionID(120012); } } break;
860
	 * 
861
	 * //Data Connectivity case 130007: case 130028:
862
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130007);
863
	 * slide.setSlideDefinitionID(130007); break;
864
	 * 
865
	 * //Music case 130029: case 130030: case 130008:
866
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130029);
867
	 * slide.setSlideDefinitionID(130029); break;
868
	 * 
869
	 * //Video case 130031: case 130009:
870
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130031);
871
	 * slide.setSlideDefinitionID(130031); break;
872
	 * 
873
	 * //Camera case 130010: case 130036: case 130037:
874
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130010);
875
	 * slide.setSlideDefinitionID(130010); break; case 130060:
876
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130010);
877
	 * slide.setSlideDefinitionID(130010);
878
	 * 
879
	 * features = slide.getFeatures(); // Just to add camera feature in basic
880
	 * phones Feature feature = new Feature(120056); List<Bullet> bullets = new
881
	 * ArrayList<Bullet>(); PrimitiveDataObject pdo = new
882
	 * PrimitiveDataObject("1"); Bullet bullet = new Bullet(pdo);
883
	 * bullets.add(bullet); feature.setBullets(bullets); features.add(feature);
884
	 * //Created new feature break;
885
	 * 
886
	 * //Memory case 130011: removeMap.put(slide.getSlideDefinitionID(),
887
	 * (long)130011); slide.setSlideDefinitionID(130011); break; case 130032:
888
	 * case 130061: removeMap.put(slide.getSlideDefinitionID(), (long)130011);
889
	 * slide.setSlideDefinitionID(130011); features = slide.getFeatures();
890
	 * for(Feature feat: features){ if(feat.getFeatureDefinitionID() == 120054){
891
	 * feat.setFeatureDefinitionID(120030); } } break;
892
	 * 
893
	 * //Battery case 130044: removeMap.put(slide.getSlideDefinitionID(),
894
	 * (long)130043); slide.setSlideDefinitionID(130043);
895
	 * if(slide.getChildrenSlides().get(0).getSlideDefinitionID() == 130047){
896
	 * slide.getChildrenSlides().get(0).setSlideDefinitionID(130046); } break;
897
	 * 
898
	 * case 130042: removeMap.put(slide.getSlideDefinitionID(), (long)130043);
899
	 * slide.setSlideDefinitionID(130043); childSlide =
900
	 * slide.getChildrenSlides().get(0); if(childSlide.getSlideDefinitionID() ==
901
	 * 130045){ childSlide.setSlideDefinitionID(130046); }
902
	 * 
903
	 * List<Feature> childFeatures1 = new ArrayList<Feature>(); List<Feature>
904
	 * childFeatures2 = new ArrayList<Feature>(); Slide childChildSlide1 = new
905
	 * Slide(130048); Slide childChildSlide2 = new Slide(130049);
906
	 * 
907
	 * childChildSlide1.setFeatures(childFeatures1);
908
	 * childChildSlide2.setFeatures(childFeatures2);
909
	 * 
910
	 * childSlide.addChild(childChildSlide1);
911
	 * childSlide.addChild(childChildSlide2);
912
	 * 
913
	 * 
914
	 * for(Feature f: childSlide.getFeatures()){ if(f.getFeatureDefinitionID()
915
	 * == 120063){ f.setFeatureDefinitionID(120068); childFeatures1.add(f); }
916
	 * if(f.getFeatureDefinitionID() == 120064){
917
	 * f.setFeatureDefinitionID(120069); childFeatures2.add(f); } }
918
	 * 
919
	 * childSlide.setFeatures(null);
920
	 * 
921
	 * break;
922
	 * 
923
	 * case 130062: removeMap.put(slide.getSlideDefinitionID(), (long)130043);
924
	 * slide.setSlideDefinitionID(130043);
925
	 * 
926
	 * childSlide = new Slide(130046); features = new ArrayList<Feature>();
927
	 * 
928
	 * slide.addChild(childSlide);
929
	 * 
930
	 * List<Feature> childFeatures11 = new ArrayList<Feature>(); List<Feature>
931
	 * childFeatures21 = new ArrayList<Feature>(); Slide childChildSlide11 = new
932
	 * Slide(130048); Slide childChildSlide21 = new Slide(130049);
933
	 * 
934
	 * childChildSlide11.setFeatures(childFeatures11);
935
	 * childChildSlide21.setFeatures(childFeatures21);
936
	 * 
937
	 * childSlide.addChild(childChildSlide11);
938
	 * childSlide.addChild(childChildSlide21); for(Feature f:
939
	 * slide.getFeatures()){ if(f.getFeatureDefinitionID() == 120072){
940
	 * features.add(f); } if(f.getFeatureDefinitionID() == 120073){
941
	 * features.add(f); } if(f.getFeatureDefinitionID() == 120063){
942
	 * f.setFeatureDefinitionID(120068); childFeatures11.add(f); }
943
	 * if(f.getFeatureDefinitionID() == 120064){
944
	 * f.setFeatureDefinitionID(120069); childFeatures21.add(f); } }
945
	 * slide.setFeatures(features); break;
946
	 * 
947
	 * 
948
	 * //Mail n Msg case 130041: case 130063:
949
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130039);
950
	 * slide.setSlideDefinitionID(130039); break; case 130039:
951
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130039);
952
	 * slide.setSlideDefinitionID(130039);
953
	 * 
954
	 * childSlide = slide.getChildrenSlides().get(0);
955
	 * slide.setFeatures(childSlide.getFeatures());
956
	 * if(childSlide.getFreeformContent()!=null){
957
	 * System.out.println("Mail n Msg : HAS FFC : " +
958
	 * childSlide.getFreeformContent().getFreeformText() +
959
	 * childSlide.getFreeformContent().getMedias()); }
960
	 * slide.setChildrenSlides(null); break;
961
	 * 
962
	 * //Software case 130020: case 130034:
963
	 * removeMap.put(slide.getSlideDefinitionID(), (long)130020);
964
	 * slide.setSlideDefinitionID(130020); break;
965
	 * 
966
	 * 
967
	 * //Internet case 130050: removeMap.put(slide.getSlideDefinitionID(),
968
	 * (long)130050); slide.setSlideDefinitionID(130050);
969
	 * slide.setFeatures(slide.getChildrenSlides().get(0).getFeatures());
970
	 * 
971
	 * if(slide.getChildrenSlides().get(0).getFreeformContent()!=null){ String
972
	 * ffc = slide.getFreeformContent().getFreeformText();
973
	 * if(slide.getChildrenSlides
974
	 * ().get(0).getFreeformContent().getFreeformText()!=null){
975
	 * if(slide.getChildrenSlides
976
	 * ().get(0).getFreeformContent().getFreeformText().trim()!=""){ ffc = ffc +
977
	 * "\n *********    " +
978
	 * slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText();
979
	 * System.out.println("**************" +
980
	 * slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText());
981
	 * } }
982
	 * 
983
	 * List<String> ffcs = new ArrayList<String>(); ffcs.add(ffc);
984
	 * slide.getFreeformContent().setFreeformTexts(ffcs); }
985
	 * 
986
	 * slide.setChildrenSlides(null); //System.out.println("Slide: 130050");
987
	 * //printSlideContent(slide); break;
988
	 * 
989
	 * case 130052: removeMap.put(slide.getSlideDefinitionID(), (long)130050);
990
	 * slide.setSlideDefinitionID(130050);
991
	 * 
992
	 * for(Feature f2: slide.getFeatures()){ if(f2.getFeatureDefinitionID() ==
993
	 * 120077){ f2.setFeatureDefinitionID(120074); // List<Bullet> newBullets =
994
	 * new ArrayList<Bullet>(); // for(Bullet bul: f2.getBullets()){ //
995
	 * CompositeDataObject cdo = (CompositeDataObject) bul.getDataObject(); //
996
	 * for(PrimitiveDataObject pdo1: cdo.getPrimitiveDataObjects()){ //
997
	 * pdo1.getValue(); // BulletDataObject bdo2 = new
998
	 * EnumDataObject(enumValueID); // Bullet newbul = new Bullet(bdo2); //
999
	 * newBullets.add(newbul); // } // // } // f2.setBullets(newBullets); }
1000
	 * if(f2.getFeatureDefinitionID() == 120078){
1001
	 * f2.setFeatureDefinitionID(120075); } } //
1002
	 * slide.setFeatures(slide.getChildrenSlides().get(0).getFeatures()); //
1003
	 * slide.setChildrenSlides(null); //System.out.println("Slide: 130052");
1004
	 * 
1005
	 * //printSlideContent(slide); break;
1006
	 * 
1007
	 * case 130051: removeMap.put(slide.getSlideDefinitionID(), (long)130050);
1008
	 * slide.setSlideDefinitionID(130050); // System.out.println(slide);
1009
	 * //System.out.println("Slide 130051:"); // printSlideContent(slide);
1010
	 * break;
1011
	 * 
1012
	 * default: break; }
1013
	 * 
1014
	 * } List<Long> newSequence = new ArrayList<Long>(); for(Long id:
1015
	 * slideSequence){ if(removeMap.containsKey(id)){
1016
	 * newSequence.add(removeMap.get(id)); }else{ newSequence.add(id); } }
1017
	 * entity.setSlideSequence(newSequence); CreationUtils.updateEntity(entity);
1018
	 * } }
1019
	 * 
1020
	 * return true; }
1021
	 */
1022
 
1023
	public void printSlideContent(Slide slide) {
1024
 
1025
		System.out.println("Slide: "
1026
				+ slide.getFreeformContent().getFreeformText());
1027
		if (slide.getFeatures() != null) {
1028
			for (Feature feature : slide.getFeatures()) {
1029
				if (feature.getBullets() != null) {
1030
					for (Bullet bullet : feature.getBullets()) {
1031
						// System.out.println(bullet.getDataObject().toString());
1032
						// System.out.println(bullet.getFreeformContent());
1226 rajveer 1033
					}
1034
				}
4964 amit.gupta 1035
				if (feature.getFreeformContent() != null) {
1036
					System.out.println("Feature: "
1037
							+ feature.getFreeformContent().getFreeformText());
1226 rajveer 1038
				}
1039
			}
1040
		}
4964 amit.gupta 1041
		if (slide.getChildrenSlides() != null) {
1042
			for (Slide sl : slide.getChildrenSlides()) {
1226 rajveer 1043
				System.out.println("Child1: ");
1044
				printSlideContent(sl);
1045
				System.out.println("Child2: ");
1046
			}
1047
		}
4964 amit.gupta 1048
 
1226 rajveer 1049
	}
4964 amit.gupta 1050
 
1230 rajveer 1051
	/*
4964 amit.gupta 1052
	 * public boolean migrateModel() throws Exception{ //DefinitionsContainer
1053
	 * oldDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH +
1054
	 * "olddefinitions" + File.separator); //DefinitionsContainer newDfc = new
1055
	 * DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" +
1056
	 * File.separator);
1057
	 * 
1058
	 * Map<Long, Entity> entities = CreationUtils.getEntities(); for(Entity
1059
	 * entity: entities.values()){ List<Slide> slides = entity.getSlides();
1060
	 * if(slides!=null){ List<Slide> newSlides = new ArrayList<Slide>();
1061
	 * for(Slide slide: slides){ Slide newSlide; List<Feature> features; Slide
1062
	 * childSlide; switch ((int)slide.getSlideDefinitionID()) {
1063
	 * 
1064
	 * //Keyboard case 130004: case 130026: case 130027: case 130057: newSlide =
1065
	 * new Slide(130026); newSlide.setChildrenSlides(slide.getChildrenSlides());
1066
	 * newSlide.setFeatures(slide.getFeatures());
1067
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1068
	 * newSlides.add(newSlide); break;
1069
	 * 
1070
	 * //Voice Calling case 130005: newSlide = new Slide(130005);
1071
	 * newSlide.setChildrenSlides(null); features = new ArrayList<Feature>();
1072
	 * features.addAll(slide.getFeatures()); childSlide =
1073
	 * slide.getChildrenSlides().get(0);
1074
	 * features.addAll(childSlide.getFeatures());
1075
	 * if(childSlide.getFreeformContent()!=null){
1076
	 * System.out.println("Voice Calling : HAS FFC : " +
1077
	 * childSlide.getFreeformContent().getFreeformText() +
1078
	 * childSlide.getFreeformContent().getMedias()); }
1079
	 * newSlide.setFeatures(features);
1080
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1081
	 * newSlides.add(newSlide); break; case 130035: newSlide = new
1082
	 * Slide(130035); newSlide.setChildrenSlides(slide.getChildrenSlides());
1083
	 * for(Feature feata: slide.getFeatures()){
1084
	 * if(feata.getFeatureDefinitionID()==120055){
1085
	 * feata.setFeatureDefinitionID(120012); } }
1086
	 * newSlide.setFeatures(slide.getFeatures());
1087
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1088
	 * newSlides.add(newSlide); break;
1089
	 * 
1090
	 * //Data Connectivity case 130007: case 130028: newSlide = new
1091
	 * Slide(130007); newSlide.setChildrenSlides(slide.getChildrenSlides());
1092
	 * newSlide.setFeatures(slide.getFeatures());
1093
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1094
	 * newSlides.add(newSlide); break;
1095
	 * 
1096
	 * //Music case 130029: case 130030: case 130008: newSlide = new
1097
	 * Slide(130029); newSlide.setChildrenSlides(slide.getChildrenSlides());
1098
	 * newSlide.setFeatures(slide.getFeatures());
1099
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1100
	 * newSlides.add(newSlide); break;
1101
	 * 
1102
	 * //Video case 130031: case 130009: newSlide = new Slide(130031);
1103
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
1104
	 * newSlide.setFeatures(slide.getFeatures());
1105
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1106
	 * newSlides.add(newSlide); break;
1107
	 * 
1108
	 * //Camera case 130010: case 130036: case 130037: newSlide = new
1109
	 * Slide(130010); newSlide.setChildrenSlides(slide.getChildrenSlides());
1110
	 * newSlide.setFeatures(slide.getFeatures());
1111
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1112
	 * newSlides.add(newSlide); break; case 130060: newSlide = new
1113
	 * Slide(130010); newSlide.setChildrenSlides(slide.getChildrenSlides());
1114
	 * features = slide.getFeatures(); // Just to add camera feature in basic
1115
	 * phones Feature feature = new Feature(120056); List<Bullet> bullets = new
1116
	 * ArrayList<Bullet>(); PrimitiveDataObject pdo = new
1117
	 * PrimitiveDataObject("1"); Bullet bullet = new Bullet(pdo);
1118
	 * bullets.add(bullet); feature.setBullets(bullets); features.add(feature);
1119
	 * //Created new feature newSlide.setFeatures(features);
1120
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1121
	 * newSlides.add(newSlide); break;
1122
	 * 
1123
	 * //Memory case 130011: newSlide = new Slide(130011);
1124
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
1125
	 * newSlide.setFeatures(slide.getFeatures());
1126
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1127
	 * newSlides.add(newSlide); break; case 130032: case 130061: newSlide = new
1128
	 * Slide(130011); newSlide.setChildrenSlides(slide.getChildrenSlides());
1129
	 * features = slide.getFeatures(); for(Feature feat: features){
1130
	 * if(feat.getFeatureDefinitionID() == 130054){
1131
	 * feat.setFeatureDefinitionID(120030); } }
1132
	 * newSlide.setFeatures(slide.getFeatures());
1133
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1134
	 * newSlides.add(newSlide); break;
1135
	 * 
1136
	 * //Battery case 130044: newSlide = new Slide(130043);
1137
	 * if(slide.getChildrenSlides().get(0).getSlideDefinitionID() == 130047){
1138
	 * slide.getChildrenSlides().get(0).setSlideDefinitionID(130046); }
1139
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
1140
	 * newSlide.setFeatures(slide.getFeatures());
1141
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1142
	 * newSlides.add(newSlide); break;
1143
	 * 
1144
	 * case 130042: newSlide = new Slide(130043); childSlide =
1145
	 * slide.getChildrenSlides().get(0); if(childSlide.getSlideDefinitionID() ==
1146
	 * 130045){ childSlide.setSlideDefinitionID(130046); }
1147
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
1148
	 * 
1149
	 * List<Feature> childFeatures1 = new ArrayList<Feature>(); List<Feature>
1150
	 * childFeatures2 = new ArrayList<Feature>(); Slide childChildSlide1 = new
1151
	 * Slide(130048); Slide childChildSlide2 = new Slide(130049);
1152
	 * 
1153
	 * childChildSlide1.setFeatures(childFeatures1);
1154
	 * childChildSlide2.setFeatures(childFeatures2);
1155
	 * 
1156
	 * childSlide.addChild(childChildSlide1);
1157
	 * childSlide.addChild(childChildSlide2);
1158
	 * 
1159
	 * 
1160
	 * for(Feature f: childSlide.getFeatures()){ if(f.getFeatureDefinitionID()
1161
	 * == 120063){ f.setFeatureDefinitionID(120068); childFeatures1.add(f); }
1162
	 * if(f.getFeatureDefinitionID() == 120064){
1163
	 * f.setFeatureDefinitionID(120069); childFeatures2.add(f); } }
1164
	 * 
1165
	 * childSlide.setFeatures(null);
1166
	 * 
1167
	 * newSlide.setFeatures(slide.getFeatures());
1168
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1169
	 * newSlides.add(newSlide); break;
1170
	 * 
1171
	 * case 130062: newSlide = new Slide(130043);
1172
	 * newSlide.setChildrenSlides(slide.getChildrenSlides()); childSlide = new
1173
	 * Slide(130046); features = new ArrayList<Feature>();
1174
	 * newSlide.setFeatures(features); newSlide.addChild(childSlide);
1175
	 * 
1176
	 * List<Feature> childFeatures11 = new ArrayList<Feature>(); List<Feature>
1177
	 * childFeatures21 = new ArrayList<Feature>(); Slide childChildSlide11 = new
1178
	 * Slide(130048); Slide childChildSlide21 = new Slide(130049);
1179
	 * 
1180
	 * childChildSlide11.setFeatures(childFeatures11);
1181
	 * childChildSlide21.setFeatures(childFeatures21);
1182
	 * 
1183
	 * childSlide.addChild(childChildSlide11);
1184
	 * childSlide.addChild(childChildSlide21); for(Feature f:
1185
	 * slide.getFeatures()){ if(f.getFeatureDefinitionID() == 120072){
1186
	 * features.add(f); } if(f.getFeatureDefinitionID() == 120073){
1187
	 * features.add(f); } if(f.getFeatureDefinitionID() == 120063){
1188
	 * f.setFeatureDefinitionID(120068); childFeatures11.add(f); }
1189
	 * if(f.getFeatureDefinitionID() == 120064){
1190
	 * f.setFeatureDefinitionID(120069); childFeatures21.add(f); } }
1191
	 * 
1192
	 * newSlide.setFeatures(slide.getFeatures());
1193
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1194
	 * newSlides.add(newSlide); break;
1195
	 * 
1196
	 * 
1197
	 * //Mail n Msg case 130041: case 130063: newSlide = new Slide(130039);
1198
	 * newSlide.setChildrenSlides(slide.getChildrenSlides());
1199
	 * newSlide.setFeatures(slide.getFeatures());
1200
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1201
	 * newSlides.add(newSlide); break; case 130039: newSlide = new
1202
	 * Slide(130039); //newSlide.setChildrenSlides(slide.getChildrenSlides());
1203
	 * childSlide = slide.getChildrenSlides().get(0);
1204
	 * newSlide.setFeatures(childSlide.getFeatures());
1205
	 * if(childSlide.getFreeformContent()!=null){
1206
	 * System.out.println("Mail n Msg : HAS FFC : " +
1207
	 * childSlide.getFreeformContent().getFreeformText() +
1208
	 * childSlide.getFreeformContent().getMedias()); }
1209
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1210
	 * newSlides.add(newSlide); break;
1211
	 * 
1212
	 * //Software case 130020: case 130034: newSlide = new Slide(130034);
1213
	 * newSlide.setChildrenSlides(slide.getChildrenSlides()); features =
1214
	 * slide.getFeatures(); newSlide.setFeatures(slide.getFeatures());
1215
	 * newSlide.setFreeformContent(slide.getFreeformContent());
1216
	 * newSlides.add(newSlide); break;
1217
	 * 
1218
	 * 
1219
	 * default: newSlides.add(slide); break; } } entity.setSlides(newSlides);
1220
	 * CreationUtils.updateEntity(entity); } }
1221
	 * 
1222
	 * return true; }
1223
	 */
1224
	public boolean migrateRemoveBorrowedCategoryIdFromSlide() throws Exception {
1226 rajveer 1225
		Map<Long, Entity> entities = CreationUtils.getEntities();
4964 amit.gupta 1226
		for (Entity entity : entities.values()) {
1227
			if (entity.getID() == 0) {
1226 rajveer 1228
				CreationUtils.deleteEntity(entity.getID());
1229
			}
1230
			List<Slide> slides = entity.getSlides();
4964 amit.gupta 1231
			if (slides != null) {
1226 rajveer 1232
				List<Slide> newSlides = new ArrayList<Slide>();
4964 amit.gupta 1233
				for (Slide slide : slides) {
1226 rajveer 1234
					Slide newSlide = new Slide(slide.getSlideDefinitionID());
1235
					newSlide.setChildrenSlides(slide.getChildrenSlides());
1236
					newSlide.setFeatures(slide.getFeatures());
1237
					newSlide.setFreeformContent(slide.getFreeformContent());
1238
					newSlides.add(newSlide);
1239
				}
1240
				entity.setSlides(newSlides);
1241
				CreationUtils.updateEntity(entity);
1242
			}
1243
		}
1244
		return true;
1245
	}
479 rajveer 1246
 
4964 amit.gupta 1247
	public boolean migrate() throws Exception {
580 rajveer 1248
		/*
4964 amit.gupta 1249
		 * DefinitionsContainer sourceDefs = new
1250
		 * DefinitionsContainer(sourceDbPath); DefinitionsContainer
1251
		 * destinationDefs = new DefinitionsContainer(destinationDbPath);
1252
		 * EntityContainer sourceEnts = new EntityContainer(sourceDbPath);
1253
		 * EntityContainer destinationEnts = new
1254
		 * EntityContainer(destinationDbPath);
1255
		 * 
1256
		 * Map<Long, Entity> entities = sourceEnts.getEntities();
1257
		 * 
1258
		 * File f = new File("/home/rajveer/Desktop/info.txt"); FileWriter
1259
		 * fstream = new FileWriter(f); BufferedWriter out = new
1260
		 * BufferedWriter(fstream); StringBuilder sb = new StringBuilder();
1261
		 * 
1262
		 * 
1263
		 * for(Entity entity: entities.values()){ List<Slide> slides =
1264
		 * entity.getSlides();
1265
		 * 
1266
		 * //List<String> vidLabels =
1267
		 * CreationUtils.getMediaLabels(entity.getID(),"youtube");
1268
		 * //List<String> imgLabels =
1269
		 * CreationUtils.getMediaLabels(entity.getID(),"image");
1270
		 * 
1271
		 * //Map<String, Media> rawMedia =
1272
		 * CreationUtils.getRawMedia(entity.getID());
1273
		 * 
1274
		 * 
1275
		 * // List<String> vidLabels =
1276
		 * OldCreationUtils.getMediaLabels(entity.getID(),"youtube"); //
1277
		 * List<String> imgLabels =
1278
		 * OldCreationUtils.getMediaLabels(entity.getID(),"image");
1279
		 * 
1280
		 * Entity newEntity = new Entity(entity.getID(),
1281
		 * entity.getCategoryID()); newEntity.setBrand(entity.getBrand());
1282
		 * newEntity.setModelName(entity.getModelName());
1283
		 * newEntity.setModelNumber(entity.getModelNumber());
1284
		 * 
1285
		 * 
1286
		 * Map<String, in.shop2020.creation.util.Media> rawMedia =
1287
		 * OldCreationUtils.getRawMedia(entity.getID());
1288
		 * 
1289
		 * Map<String, Media> newrawMedia = new HashMap<String, Media>();
1290
		 * 
1291
		 * 
1292
		 * int totalRawVideos = 0; int totalRawImages = 0;
1293
		 * 
1294
		 * if(rawMedia!=null){ for(String label: rawMedia.keySet()){
1295
		 * in.shop2020.creation.util.Media media = rawMedia.get(label);
1296
		 * 
1297
		 * label = media.getLabel(); String type = media.getType(); String
1298
		 * location = media.getLocation();
1299
		 * 
1300
		 * Media newMedia = new Media(label, type, location);
1301
		 * 
1302
		 * newMedia.setTitle("Title"); if(type.equals("image")){
1303
		 * totalRawImages++; newMedia.setFileName(media.getFileName());
1304
		 * newMedia.setVideoType(""); }else{ totalRawVideos++;
1305
		 * newMedia.setVideoType("withoutskin"); newMedia.setFileName(""); }
1306
		 * 
1307
		 * newrawMedia.put(label, newMedia); System.out.println("old " +
1308
		 * media.toString()); // System.out.println("new " +
1309
		 * newMedia.toString()); // OldCreationUtils.removeMedia(entity.getID(),
1310
		 * label); // CreationUtils.addMedia(entity.getID(), newMedia); } }
1311
		 * 
1312
		 * int totalVideos = 0; int totalImages = 0; if(rawMedia==null){
1313
		 * for(Slide slide: slides ){
1314
		 */
1315
		/*
1316
		 * FreeformContent ffc = slide.getFreeformContent(); List<String>
1317
		 * vidList = new ArrayList<String>(); List<String> imgList = new
1318
		 * ArrayList<String>();
1319
		 * 
1320
		 * if(ffc!=null){ List<String> vidFfcLabels = ffc.getYoutubeRefs();
1321
		 * if(vidFfcLabels!=null){ for(String vidFfcLabel: vidFfcLabels){
1322
		 * StringTokenizer strTkn = new StringTokenizer(vidFfcLabel,"~!~");
1323
		 * String vidLabel = null; if(strTkn.hasMoreTokens()){ vidLabel =
1324
		 * strTkn.nextToken(); vidList.add(vidFfcLabel);
1325
		 * 
1326
		 * // ffc.removeMedia("youtube", vidFfcLabel); //
1327
		 * ffc.addMedia("youtube", vidLabel); } if(vidLabel == null){
1328
		 * System.out.println("Something is really breaking .. bu ha ha !!!"); }
1329
		 * totalVideos++; } } List<String> imgFfcLabels = ffc.getImageRefs();
1330
		 * if(imgFfcLabels!=null){ for(String imgFfcLabel: imgFfcLabels){
1331
		 * StringTokenizer strTkn = new StringTokenizer(imgFfcLabel,"~!~");
1332
		 * String imgLabel = null; if(strTkn.hasMoreTokens()){ imgLabel =
1333
		 * strTkn.nextToken(); imgList.add(imgFfcLabel);
1334
		 * 
1335
		 * // ffc.removeMedia("image", imgFfcLabel); // ffc.addMedia("image",
1336
		 * imgLabel); } if(imgLabel == null){
1337
		 * System.out.println("Something is really breaking .. bu ha ha !!!"); }
1338
		 * totalImages++; } }
1339
		 * 
1340
		 * for(String vidlab : vidList){ ffc.removeMedia("youtube", vidlab);
1341
		 * ffc.addMedia("youtube", (new StringTokenizer(vidlab,
1342
		 * "~!~")).nextToken()); } for(String imglab : imgList){
1343
		 * ffc.removeMedia("image",imglab); ffc.addMedia("image", (new
1344
		 * StringTokenizer(imglab, "~!~")).nextToken()); }
1345
		 * slide.setFreeformContent(ffc); System.out.println("Slide id is " +
1346
		 * slide.getSlideDefinitionID() + "   vid labels:  " + vidFfcLabels +
1347
		 * "   img labels" + imgFfcLabels); }
1348
		 */
1349
		/*
1350
		 * newEntity.addSlide(slide); }
1351
		 * 
1352
		 * // System.out.println("entity:"+ entity.getID() + ":trv:" +
1353
		 * totalRawVideos + ":tri:" + totalRawImages +":tv:" + totalVideos
1354
		 * +":ti:" + totalImages); // sb.append("entity:"+ entity.getID() +
1355
		 * ":trv:" + totalRawVideos + ":tri:" + totalRawImages +":tv:" +
1356
		 * totalVideos +":ti:" + totalImages+ ":tr:"
1357
		 * +(totalRawVideos+totalRawImages) + ":t:" +(totalVideos+totalImages) +
1358
		 * ":vd:" +(totalRawVideos-totalVideos) + ":id:"
1359
		 * +(totalRawImages-totalImages) + "\n"); sb.append(entity.getID() +
1360
		 * "\n");
1361
		 * 
1362
		 * 
1363
		 * destinationEnts.updateEntity(newEntity);
1364
		 * CreationUtils.storeEntity(newEntity);
1365
		 * 
1366
		 * Map<Long, List<Entity>> entitiesByCategory =
1367
		 * sourceEnts.getEntitiesbyCategory();
1368
		 * 
1369
		 * Map<Long, Entity> xentities = destinationEnts.getEntities();
1370
		 * 
1371
		 * CreationUtils.rewriteRepository(xentities, entitiesByCategory); }
1372
		 * else{ sb.append("				" + entity.getID() + "\n"); } }
1373
		 * 
1374
		 * 
1375
		 * out.write(sb.toString()); out.close();
1376
		 */
457 rajveer 1377
		return true;
1378
	}
4964 amit.gupta 1379
 
1380
	private boolean makeEntitiesObject() throws Exception {
1381
		// DefinitionsContainer sourceDefs = new
1382
		// DefinitionsContainer(sourceDbPath);
1383
		// DefinitionsContainer destinationDefs = new
1384
		// DefinitionsContainer(destinationDbPath);
1385
		// EntityContainer sourceEnts = new EntityContainer(sourceDbPath);
1386
		// EntityContainer destinationEnts = new
1387
		// EntityContainer(destinationDbPath);
1388
 
1389
		/*
1390
		 * Map<Long, List<Entity>> catEntities =
1391
		 * sourceEnts.getEntitiesbyCategory();
1392
		 * 
1393
		 * Map<Long, Entity> entities = sourceEnts.getEntities(); for(Long
1394
		 * catId: catEntities.keySet()){ List<Entity> ents =
1395
		 * catEntities.get(catId); for(Entity entity: ents){
1396
		 * entities.put(entity.getID(), entity);
1397
		 * System.out.println(entity.getID() + ":" + entity.getCategoryID() +
1398
		 * ":"+ entity.getBrand() + " "+ entity.getModelName() + " " +
1399
		 * entity.getModelNumber()); } }
1400
		 */
1401
 
791 rajveer 1402
		Map<Long, List<Entity>> catEntities = new TreeMap<Long, List<Entity>>();
1403
		Map<Long, Entity> entities = new TreeMap<Long, Entity>();
2720 mandeep.dh 1404
 
4964 amit.gupta 1405
		FileInputStream fstream = new FileInputStream("/home/rajveer/Desktop/1");
1406
		DataInputStream in = new DataInputStream(fstream);
1407
		BufferedReader br = new BufferedReader(new InputStreamReader(in));
1408
		String strLine;
2720 mandeep.dh 1409
 
4964 amit.gupta 1410
		while ((strLine = br.readLine()) != null) {
1411
			long entityID = Long.parseLong(strLine);
1412
			String entityDBFile = sourceDbPath + "entities" + File.separator
1413
					+ entityID + "/entity.ser";
1414
			System.out.println(entityDBFile);
1415
			Entity entity = (Entity) DBUtils.read(entityDBFile);
1416
			entities.put(entityID, entity);
2720 mandeep.dh 1417
 
4964 amit.gupta 1418
			List<Entity> catent = catEntities.get(entity.getCategoryID());
1419
			if (catent == null) {
1420
				catent = new ArrayList<Entity>();
1421
			}
1422
			catent.add(entity);
1423
			catEntities.put(entity.getCategoryID(), catent);
1424
		}
1425
		in.close();
1426
 
1427
		String entitiesDBFile = sourceDbPath + "entities" + File.separator
1428
				+ "entities.ser";
1429
		String entitiesbycategoryDBFile = sourceDbPath + "entities"
1430
				+ File.separator + "entitiesbycategory.ser";
1431
 
791 rajveer 1432
		DBUtils.delete(entitiesDBFile);
1433
		DBUtils.store(entities, entitiesDBFile);
2720 mandeep.dh 1434
 
4964 amit.gupta 1435
		// Remove existing
791 rajveer 1436
		DBUtils.delete(entitiesbycategoryDBFile);
1437
		DBUtils.store(catEntities, entitiesbycategoryDBFile);
2720 mandeep.dh 1438
 
4964 amit.gupta 1439
		return false;
791 rajveer 1440
	}
2720 mandeep.dh 1441
 
4964 amit.gupta 1442
	private boolean printDataModel() throws Exception {
1443
		DefinitionsContainer dfc = Catalog.getInstance()
1444
				.getDefinitionsContainer();
1226 rajveer 1445
		StringBuilder sb = new StringBuilder();
2720 mandeep.dh 1446
 
1226 rajveer 1447
		Map<Long, SlideDefinition> allSlideDefs = dfc.getSlideDefinitions();
4964 amit.gupta 1448
		for (Long slideDefId : allSlideDefs.keySet()) {
1226 rajveer 1449
			SlideDefinition slideDef = allSlideDefs.get(slideDefId);
1450
			sb.append(slideDefId + " - " + slideDef.getLabel() + "\n");
4964 amit.gupta 1451
			if (!slideDef.getChildrenSlideDefinitionIDs().isEmpty()) {
1452
				sb.append("Child Slides are: \t"
1453
						+ slideDef.getChildrenSlideDefinitionIDs() + "\n");
1226 rajveer 1454
			}
4964 amit.gupta 1455
			List<SlideFeatureDefinition> featureDefs = slideDef
1456
					.getSlideFeatureDefinitions();
1457
			for (SlideFeatureDefinition featureDef : featureDefs) {
1458
				sb.append("\t"
1459
						+ featureDef.getFeatureDefintionID()
1460
						+ "\t"
1461
						+ dfc.getFeatureDefinition(
1462
								featureDef.getFeatureDefintionID()).getLabel()
1463
						+ "\t" + featureDef.getEditorialImportance() + "\n");
1226 rajveer 1464
			}
1465
		}
1466
		System.out.println(sb.toString());
580 rajveer 1467
		Map<Long, Category> categories = dfc.getCategories();
4964 amit.gupta 1468
		if (categories != null) {
1226 rajveer 1469
			return true;
1470
		}
4964 amit.gupta 1471
		for (Category category : categories.values()) {
1472
			if (category.getChildrenCategory() != null) {
580 rajveer 1473
				continue;
1474
			}
1226 rajveer 1475
			sb.append(category.getLabel() + "\n");
4964 amit.gupta 1476
			List<CategorySlideDefinition> slideDefs = dfc
1477
					.getCategorySlideDefinitions(category.getID());
1478
			List<Long> slideSequence = dfc.getCategorySlideSequence(category
1479
					.getID());
1480
			for (CategorySlideDefinition slideDef : slideDefs) {
1481
				sb.append("\t"
1482
						+ dfc.getSlideDefinition(slideDef.getSlideDefintionID())
1483
								.getLabel() + "\t"
1484
						+ slideDef.getEditorialImportance() + "\n");
1485
				// List<FeatureDefinition> featureDefs =
1486
				// dfc.getFeatureDefinitions(slideDef.getSlideDefintionID());
1487
 
1488
				List<SlideFeatureDefinition> slideFeatureDefs = dfc
1489
						.getSlideDefinition(slideDef.getSlideDefintionID())
1490
						.getSlideFeatureDefinitions();
1491
 
1492
				for (SlideFeatureDefinition slideFeatureDef : slideFeatureDefs) {
1493
					FeatureDefinition featureDef = dfc
1494
							.getFeatureDefinition(slideFeatureDef
1495
									.getFeatureDefintionID());
1496
					BulletDefinition bulletDef = featureDef
1497
							.getBulletDefinition();
1498
					sb.append("\t\t\t" + featureDef.getLabel() + "\t"
1499
							+ slideFeatureDef.getEditorialImportance() + "\t"
1500
							+ featureDef.allowsBlank() + "\t"
1501
							+ bulletDef.isLearned() + "\t"
1502
							+ bulletDef.isMultivalue());
580 rajveer 1503
					List<Long> units = bulletDef.getUnitIDs();
4964 amit.gupta 1504
					if (bulletDef.getDatatypeDefinitionID() != null) {
1505
						sb.append("\t"
1506
								+ dfc.getDatatypeDefinition(
1507
										bulletDef.getDatatypeDefinitionID())
1508
										.getName());
1509
 
1226 rajveer 1510
					}
4964 amit.gupta 1511
					if (units != null) {
1512
						for (Long unit : units) {
1513
							sb.append("\t" + dfc.getUnit(unit).getFullForm()
1514
									+ "\t" + dfc.getUnit(unit).getShortForm());
580 rajveer 1515
						}
1516
					}
1226 rajveer 1517
					sb.append("\n");
580 rajveer 1518
				}
4964 amit.gupta 1519
 
580 rajveer 1520
				/*
4964 amit.gupta 1521
				 * for(FeatureDefinition featureDef: featureDefs){
1522
				 * BulletDefinition bulletDef =
1523
				 * featureDef.getBulletDefinition(); System.out.println("			" +
1524
				 * featureDef.getLabel() + " 	" + featureDef.allowsBlank() + "	"
1525
				 * + bulletDef.isLearned() + "	" + bulletDef.isMultivalue());
1526
				 * List<Long> units = bulletDef.getUnitIDs(); if(units!=null){
1527
				 * for(Long unit: units){ System.out.println("								"+
1528
				 * dfc.getUnit(unit).getFullForm() + "	"+
1529
				 * dfc.getUnit(unit).getShortForm()); } }
1530
				 * if(bulletDef.getDatatypeDefinitionID()!=null){
1531
				 * System.out.println("										" +
1532
				 * dfc.getDatatypeDefinition(bulletDef
1533
				 * .getDatatypeDefinitionID()).getName());
1534
				 * 
1535
				 * } }
1536
				 */
580 rajveer 1537
			}
1538
		}
1226 rajveer 1539
		System.out.println(sb.toString());
580 rajveer 1540
		return true;
1541
	}
4964 amit.gupta 1542
 
1543
	public boolean migrateOS() throws Exception {
4706 amit.gupta 1544
		Map<Long, Entity> map = CreationUtils.getEntities();
4964 amit.gupta 1545
		for (Long entityId : map.keySet()) {
1546
			Entity entity = map.get(entityId);
1547
			if (entity == null || entity.getSlides() == null) {
1548
				continue;
1549
			}
1550
 
1551
			for (Slide slide : entity.getSlides()) {
1552
				if (slide.getSlideDefinitionID() == 130020) {
1553
					List<Feature> features = slide.getFeatures();
1554
					for (Feature f : features) {
1555
						if (f.getFeatureDefinitionID() == 120043) {
1556
							Bullet b = f.getBullets().get(0);
1557
							String value = ((PrimitiveDataObject) b
1558
									.getDataObject()).getValue();
1559
							long enumValueID = getEnumValueForOS(value);
1560
							if (enumValueID == 110371L) {
1561
								Logger.log("Set entity:" + entityId
1562
										+ " as proprietary software", entity);
1563
							}
4706 amit.gupta 1564
							b.setDataObject(new EnumDataObject(enumValueID));
4964 amit.gupta 1565
						}
1566
					}
1567
				}
4706 amit.gupta 1568
 
4964 amit.gupta 1569
			}
1570
 
1571
			CreationUtils.updateEntity(entity);
1572
		}
1573
		return true;
4706 amit.gupta 1574
	}
1575
 
1576
	private long getEnumValueForOS(String value) {
1577
		value = value.toLowerCase();
1578
		Map<String, Long> map = getOSEnumMap();
4964 amit.gupta 1579
		String os = "Proprietary software";
1580
		if (value.contains("android")) {
1581
			if (value.contains("1.5")) {
1582
				os = "Android v1.5 (Cupcake)";
1583
			}
1584
			if (value.contains("1.6")) {
1585
				os = "Android v1.6 (Donut)";
1586
			}
1587
			if (value.contains("2.1")) {
1588
				os = "Android v2.1 (Eclair)";
1589
			}
1590
			if (value.contains("2.2")) {
1591
				os = "Android v2.2 (Froyo)";
1592
			}
1593
			if (value.contains("2.3")) {
1594
				os = "Android v2.3 (Gingerbread)";
1595
			}
1596
			if (value.contains("3.0")) {
1597
				os = "Android v3.0 (Honeycomb)";
1598
			}
1599
			if (value.contains("3.1")) {
1600
				os = "Android v3.1 (Honeycomb)";
1601
			}
1602
			if (value.contains("3.2")) {
1603
				os = "Android v3.2 (Honeycomb)";
1604
			}
4706 amit.gupta 1605
		}
4964 amit.gupta 1606
		if (value.contains("blackberry")) {
1607
			if (value.contains("os")) {
4706 amit.gupta 1608
				os = "BlackBerry OS";
1609
			}
4964 amit.gupta 1610
			if (value.contains("5.0")) {
4706 amit.gupta 1611
				os = "BlackBerry OS 5.0";
1612
			}
4964 amit.gupta 1613
			if (value.contains("6.0")) {
4706 amit.gupta 1614
				os = "BlackBerry OS 6.0";
1615
			}
4964 amit.gupta 1616
			if (value.contains("7.0")) {
4706 amit.gupta 1617
				os = "BlackBerry OS 7.0";
1618
			}
4964 amit.gupta 1619
			if (value.contains("tablet os")) {
4706 amit.gupta 1620
				os = "BlackBerry Tablet OS";
1621
			}
1622
		}
4964 amit.gupta 1623
		if (value.contains("brew mobile platform")) {
4706 amit.gupta 1624
			os = "Brew Mobile Platform";
1625
		}
4964 amit.gupta 1626
		if (value.contains("maemo 5")) {
4706 amit.gupta 1627
			os = "Maemo 5";
1628
		}
4964 amit.gupta 1629
		if (value.contains("windows phone 7")) {
4706 amit.gupta 1630
			os = "Windows Phone 7";
1631
		}
4964 amit.gupta 1632
		if (value.contains("windows phone 7.5 mango")) {
4706 amit.gupta 1633
			os = "Windows Phone 7.5 Mango";
1634
		}
4964 amit.gupta 1635
		if (value.contains("proprietary")) {
1636
			if (value.contains("lg"))
4706 amit.gupta 1637
				os = "Proprietary LG software";
4964 amit.gupta 1638
			else if (value.contains("micromax")) {
4706 amit.gupta 1639
				os = "Proprietary Micromax software";
4964 amit.gupta 1640
			} else if (value.contains("samsung")) {
4706 amit.gupta 1641
				os = "Proprietary Samsung software";
4964 amit.gupta 1642
			} else if (value.contains("sony ericsson")) {
4706 amit.gupta 1643
				os = "Proprietary Sony Ericsson software";
4964 amit.gupta 1644
			} else if (value.contains("spice")) {
4706 amit.gupta 1645
				os = "Proprietary Spice software";
4964 amit.gupta 1646
			} else if (value.contains("lava")) {
4706 amit.gupta 1647
				os = "Proprietary Lava software";
4964 amit.gupta 1648
			} else if (value.contains("alcatel")) {
4706 amit.gupta 1649
				os = "Proprietary Alcatel software";
4964 amit.gupta 1650
			} else if (value.contains("motorola")) {
4706 amit.gupta 1651
				os = "Proprietary Motorola software";
4964 amit.gupta 1652
			} else if (value.contains("karbonn")) {
4706 amit.gupta 1653
				os = "Proprietary Karbonn software";
4964 amit.gupta 1654
			} else {
4706 amit.gupta 1655
				os = "Proprietary software";
1656
			}
1657
		}
4964 amit.gupta 1658
		if (value.contains("mmp")) {
4706 amit.gupta 1659
			os = "Proprietary Samsung software";
1660
		}
4964 amit.gupta 1661
		if (value.contains("samsung")) {
1662
			if (value.contains("bada")) {
1663
				os = "Samsung bada";
1664
			}
1665
			if (value.contains("bada 1.2")) {
1666
				os = "Samsung bada 1.2";
1667
			}
4706 amit.gupta 1668
		}
4964 amit.gupta 1669
		if (value.contains("sony ericsson java platform 8")) {
4706 amit.gupta 1670
			os = "Proprietary Sony Ericsson software";
1671
		}
4964 amit.gupta 1672
		if (value.contains("s60")) {
4706 amit.gupta 1673
			os = "Symbian 60";
1674
		}
4964 amit.gupta 1675
		if (value.contains("symbian")) {
1676
			if (value.contains("40")) {
4706 amit.gupta 1677
				os = "Symbian 40";
1678
			}
4964 amit.gupta 1679
			if (value.contains("60")) {
4706 amit.gupta 1680
				os = "Symbian 60";
1681
			}
4964 amit.gupta 1682
			if (value.contains("^3")) {
4706 amit.gupta 1683
				os = "Symbian^3";
1684
			}
4964 amit.gupta 1685
			if (value.contains("anna")) {
4706 amit.gupta 1686
				os = "Symbian Anna";
1687
			}
4964 amit.gupta 1688
			if (value.contains("belle")) {
4706 amit.gupta 1689
				os = "Symbian Belle";
1690
			}
1691
		}
4964 amit.gupta 1692
		if (value.contains("ios 4")) {
4706 amit.gupta 1693
			os = "iOS 4";
1694
		}
4964 amit.gupta 1695
		if (value.contains("ios 5")) {
4706 amit.gupta 1696
			os = "iOS 5";
1697
		}
1698
		return map.get(os);
1699
	}
4964 amit.gupta 1700
 
1701
	private Map<String, Long> getOSEnumMap() {
4706 amit.gupta 1702
		Map<String, Long> map = new HashMap<String, Long>();
1703
		map.put("Android v1.5 (Cupcake)", 110335L);
1704
		map.put("Android v1.6 (Donut)", 110336L);
1705
		map.put("Android v2.1 (Eclair)", 110337L);
1706
		map.put("Android v2.2 (Froyo)", 110338L);
1707
		map.put("Android v2.3 (Gingerbread)", 110339L);
1708
		map.put("Android v3.0 (Honeycomb)", 110340L);
1709
		map.put("Android v3.1 (Honeycomb)", 110341L);
4964 amit.gupta 1710
		map.put("Android v3.2 (Honeycomb)", 110342L);
4706 amit.gupta 1711
		map.put("BlackBerry OS", 110343L);
1712
		map.put("BlackBerry OS 5.0", 110344L);
1713
		map.put("BlackBerry OS 6.0", 110345L);
1714
		map.put("BlackBerry OS 7.0", 110346L);
1715
		map.put("BlackBerry Tablet OS", 110347L);
1716
		map.put("Brew Mobile Platform", 110348L);
1717
		map.put("Maemo 5", 110349L);
1718
		map.put("Windows Phone 7", 110350L);
1719
		map.put("Windows Phone 7.5 Mango", 110351L);
1720
		map.put("Proprietary LG software", 110352L);
1721
		map.put("Proprietary Micromax software", 110353L);
1722
		map.put("Proprietary Samsung software", 110354L);
1723
		map.put("Proprietary Sony Ericsson software", 110355L);
1724
		map.put("Proprietary Spice software", 110356L);
1725
		map.put("Proprietary Lava software", 110367L);
1726
		map.put("Proprietary Karbonn software", 110368L);
1727
		map.put("Proprietary Motorola software", 110369L);
1728
		map.put("Proprietary Alcatel software", 110370L);
4964 amit.gupta 1729
		map.put("Proprietary software", 110371L);
4706 amit.gupta 1730
		map.put("Samsung bada", 110357L);
1731
		map.put("Samsung bada 1.2", 110358L);
1732
		map.put("Symbian 40", 110360L);
1733
		map.put("Symbian 60", 110361L);
1734
		map.put("Symbian^3", 110362L);
1735
		map.put("Symbian Anna", 110363L);
1736
		map.put("Symbian Belle", 110364L);
1737
		map.put("iOS 4", 110365L);
1738
		map.put("iOS 5", 110366L);
4964 amit.gupta 1739
 
4706 amit.gupta 1740
		return map;
4964 amit.gupta 1741
 
4706 amit.gupta 1742
	}
5370 amit.gupta 1743
 
1744
	private Object clone(Object object) throws Exception{
1745
		// Serializing and deserializing to clone the slide
1746
		// serialize
1747
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
1748
		ObjectOutputStream out = new ObjectOutputStream(bos);
1749
		out.writeObject(object);
4964 amit.gupta 1750
 
5370 amit.gupta 1751
		// De-serialization
1752
		ByteArrayInputStream bis = new ByteArrayInputStream(
1753
				bos.toByteArray());
1754
		ObjectInputStream in = new ObjectInputStream(bis);
1755
		return in.readObject();
1756
 
1757
	}
1758
 
1759
	/**
1760
	 * 
1761
	 * @throws Exception
1762
	 */
1763
	private void copyMedia(String newEntityId, String oldEntityId, Media media) throws Exception {
1764
		String mediaDirPath = Utils.CONTENT_DB_PATH + "media" + File.separator + newEntityId;
1765
		File mediaDir = new File(mediaDirPath);
1766
		if(!mediaDir.exists()) {
1767
			mediaDir.mkdir();
1768
		} 
1769
 
1770
		String mediaFilePath = mediaDirPath + File.separator + media.getFileName();
1771
		String oldMediaFilePath = media.getLocation();
1772
 
1773
		File mediaFile = new File(mediaFilePath);
1774
		mediaFile.createNewFile();
1775
 
1776
		File oldMediaFile = new File(oldMediaFilePath);
1777
 
1778
		InputStream in = new FileInputStream(oldMediaFile);
1779
 
1780
		// appending output stream
1781
		// @rajveer : replacing the existing file 
1782
		OutputStream out = new FileOutputStream(mediaFile); 
1783
 
1784
		try {
1785
			IOUtils.copy(in, out);
1786
		}
1787
		finally {
1788
			IOUtils.closeQuietly(in);
1789
			IOUtils.closeQuietly(out);
1790
		}
1791
		media.setLocation(mediaFilePath);
1792
	}
5396 amit.gupta 1793
 
1794
	private void migrateHeadSetBack() throws Exception {
1795
		Map<Long, Long>migratorMap = new HashMap<Long, Long>();
1796
		migratorMap.put(77777000L,1000291L);
1797
		migratorMap.put(77777001L,1000292L);
1798
		migratorMap.put(77777002L,1000293L);
1799
		migratorMap.put(77777003L,1000294L);
1800
		migratorMap.put(77777004L,1000295L);
1801
		migratorMap.put(77777005L,1000296L);
1802
		migratorMap.put(77777006L,1000297L);
1803
		migratorMap.put(77777007L,1000298L);
1804
		migratorMap.put(77777008L,1000299L);
1805
		migratorMap.put(77777009L,1000300L);
1806
		migratorMap.put(77777010L,1000301L);
1807
		migratorMap.put(77777011L,1000302L);
1808
		migratorMap.put(77777012L,1000303L);
1809
		migratorMap.put(77777013L,1000304L);
1810
		migratorMap.put(77777014L,1000305L);
1811
		migratorMap.put(77777015L,1000306L);
1812
		migratorMap.put(77777016L,1000351L);
1813
		migratorMap.put(77777017L,1000352L);
1814
		migratorMap.put(77777018L,1000353L);
1815
		migratorMap.put(77777019L,1000363L);
1816
		migratorMap.put(77777020L,1000364L);
1817
		migratorMap.put(77777021L,1000365L);
1818
		migratorMap.put(77777022L,1000425L);
1819
		migratorMap.put(77777023L,1000426L);
1820
		migratorMap.put(77777024L,1000430L);
1821
		migratorMap.put(77777025L,1000434L);
1822
		migratorMap.put(77777026L,1000435L);
1823
		migratorMap.put(77777027L,1000436L);
1824
		migratorMap.put(77777028L,1000437L);
1825
		migratorMap.put(77777029L,1000438L);
1826
		migratorMap.put(77777030L,1000439L);
1827
		migratorMap.put(77777031L,1000440L);
1828
		migratorMap.put(77777032L,1000441L);
1829
		migratorMap.put(77777033L,1000442L);
1830
		migratorMap.put(77777034L,1000443L);
1831
		migratorMap.put(77777035L,1000444L);
1832
		migratorMap.put(77777036L,1000445L);
1833
		migratorMap.put(77777037L,1000446L);
1834
		migratorMap.put(77777038L,1000447L);
1835
		migratorMap.put(77777039L,1000449L);
1836
		migratorMap.put(77777040L,1000450L);
1837
		migratorMap.put(77777041L,1000451L);
1838
		migratorMap.put(77777042L,1000452L);
1839
		migratorMap.put(77777043L,1000453L);
1840
		migratorMap.put(77777044L,1000454L);
1841
		migratorMap.put(77777045L,1000455L);
1842
		migratorMap.put(77777046L,1000518L);
1843
		migratorMap.put(77777047L,1000521L);
1844
		migratorMap.put(77777048L,1000572L);
1845
		migratorMap.put(77777049L,1000575L);
1846
		migratorMap.put(77777050L,1000623L);
1847
		migratorMap.put(77777051L,1000625L);
1848
		migratorMap.put(77777052L,1000626L);
1849
		migratorMap.put(77777053L,1000627L);
1850
		migratorMap.put(77777054L,1000628L);
1851
		migratorMap.put(77777055L,1000874L);
1852
		migratorMap.put(77777056L,1001200L);
1853
		migratorMap.put(77777057L,1001375L);
1854
		migratorMap.put(77777058L,1001376L);
1855
		migratorMap.put(77777059L,1001378L);
1856
		migratorMap.put(77777060L,1001382L);
1857
		migratorMap.put(77777061L,1001808L);
1858
		migratorMap.put(77777062L,1001809L);
1859
		migratorMap.put(77777063L,1001810L);
1860
		migratorMap.put(77777064L,1001811L);
1861
		migratorMap.put(77777065L,1001812L);
1862
		migratorMap.put(77777066L,1001814L);
1863
		migratorMap.put(77777067L,1001815L);
1864
		migratorMap.put(77777068L,1001816L);
1865
		migratorMap.put(77777069L,1001817L);
1866
		migratorMap.put(77777070L,1001818L);
1867
		migratorMap.put(77777071L,1001819L);
1868
		migratorMap.put(77777072L,1001820L);
1869
		migratorMap.put(77777073L,1001821L);
1870
		migratorMap.put(77777074L,1001822L);
1871
		migratorMap.put(77777075L,1001823L);
1872
		migratorMap.put(77777076L,1001824L);
1873
		migratorMap.put(77777077L,1001825L);
1874
		migratorMap.put(77777078L,1002318L);
1875
		migratorMap.put(77777079L,1002320L);
1876
		migratorMap.put(77777080L,1003852L);
1877
		migratorMap.put(77777081L,1003853L);
1878
		migratorMap.put(77777082L,1003854L);
1879
		migratorMap.put(77777083L,1003855L);
1880
		migratorMap.put(77777084L,1003856L);
1881
		migratorMap.put(77777085L,1003857L);
1882
		migratorMap.put(77777086L,1003916L);
1883
		migratorMap.put(77777087L,1003917L);
1884
		migratorMap.put(77777088L,1003918L);
1885
		migratorMap.put(77777089L,1003919L);
1886
		migratorMap.put(77777090L,1003920L);
1887
		migratorMap.put(77777091L,1003921L);
1888
		migratorMap.put(77777092L,1003922L);
1889
		migratorMap.put(77777093L,1003923L);
1890
		migratorMap.put(77777094L,1003924L);
1891
		migratorMap.put(77777095L,1003925L);
1892
		migratorMap.put(77777096L,1003926L);
1893
		migratorMap.put(77777097L,1003927L);
1894
		migratorMap.put(77777098L,1004087L);
1895
		migratorMap.put(77777099L,1004088L);
1896
		migratorMap.put(77777100L,1004089L);
1897
		migratorMap.put(77777101L,1004134L);
1898
		migratorMap.put(77777102L,1004135L);
1899
		migratorMap.put(77777103L,1004139L);
1900
 
1901
		for(Map.Entry<Long, Long> entry : migratorMap.entrySet()) {
1902
			Long newId  = entry.getKey();
1903
			Long validId  = entry.getValue();
1904
			Entity entity  = CreationUtils.getEntity(newId);
1905
			EntityState es = CreationUtils.getEntityState(newId);
1906
			Slide sl = entity.getSlide(130130);
5397 amit.gupta 1907
			/*entity.setID(validId);
1908
			es.setID(validId);*/
5396 amit.gupta 1909
 
1910
			long newCategoryId = 10015;
1911
			if(sl==null){
1912
				newCategoryId = 10082;
1913
			}else{			
1914
				for (Feature f : sl.getFeatures()){
1915
					if(f.getFeatureDefinitionID() == 120323){
1916
						newCategoryId = 10015;
1917
					} else {
1918
						newCategoryId = 10082;
1919
					}
1920
				}
1921
			}
1922
			entity.setCategoryID(newCategoryId);
1923
			es.setCategoryID(newCategoryId);
5370 amit.gupta 1924
 
5396 amit.gupta 1925
			if(entity.getSlides()!=null){
1926
				for(Slide sl1 : entity.getSlides()) {
1927
					FreeformContent ffc = sl1.getFreeformContent();
1928
					if(ffc != null){
1929
						Map<String, Media> mediaMap = ffc.getMedias();
1930
						if(mediaMap!=null){
1931
							for(Media media : mediaMap.values()){
1932
								if(media.getType().equals(Type.IMAGE) || media.getType().equals(Type.DOCUMENT)){
1933
									copyMedia(String.valueOf(validId), String.valueOf(newId),media);
1934
								}
1935
							}
1936
						}
1937
					}
1938
				}
1939
			}
1940
			CreationUtils.updateEntity(entity);
1941
			CreationUtils.updateEntityState(es);
1942
			CreationUtils.deleteEntity(newId);
1943
			System.out.println(validId + " : " + es.getCategoryID() + ", removed entity id:" + newId);
1944
 
1945
		}
1946
 
1947
	}
1948
 
457 rajveer 1949
}
5370 amit.gupta 1950