Subversion Repositories SmartDukaan

Rev

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