Subversion Repositories SmartDukaan

Rev

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