Subversion Repositories SmartDukaan

Rev

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