Subversion Repositories SmartDukaan

Rev

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