Subversion Repositories SmartDukaan

Rev

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