Subversion Repositories SmartDukaan

Rev

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