Subversion Repositories SmartDukaan

Rev

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