Subversion Repositories SmartDukaan

Rev

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