Subversion Repositories SmartDukaan

Rev

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