Subversion Repositories SmartDukaan

Rev

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