Subversion Repositories SmartDukaan

Rev

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