Subversion Repositories SmartDukaan

Rev

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