Subversion Repositories SmartDukaan

Rev

Rev 1153 | Rev 1230 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1153 Rev 1226
Line 7... Line 7...
7
import java.io.File;
7
import java.io.File;
8
import java.io.FileInputStream;
8
import java.io.FileInputStream;
9
import java.io.FileWriter;
9
import java.io.FileWriter;
10
import java.io.InputStreamReader;
10
import java.io.InputStreamReader;
11
import java.util.ArrayList;
11
import java.util.ArrayList;
-
 
12
import java.util.Collection;
12
import java.util.HashMap;
13
import java.util.HashMap;
13
import java.util.List;
14
import java.util.List;
14
import java.util.Map;
15
import java.util.Map;
15
import java.util.StringTokenizer;
16
import java.util.StringTokenizer;
16
import java.util.TreeMap;
17
import java.util.TreeMap;
17
 
18
 
-
 
19
import in.shop2020.metamodel.core.Bullet;
-
 
20
import in.shop2020.metamodel.core.BulletDataObject;
-
 
21
import in.shop2020.metamodel.core.CompositeDataObject;
18
import in.shop2020.metamodel.core.Entity;
22
import in.shop2020.metamodel.core.Entity;
-
 
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;
19
import in.shop2020.metamodel.core.FreeformContent;
27
import in.shop2020.metamodel.core.FreeformContent;
20
import in.shop2020.metamodel.core.Media;
28
import in.shop2020.metamodel.core.Media;
-
 
29
import in.shop2020.metamodel.core.PrimitiveDataObject;
21
import in.shop2020.metamodel.core.Slide;
30
import in.shop2020.metamodel.core.Slide;
22
import in.shop2020.metamodel.definitions.BulletDefinition;
31
import in.shop2020.metamodel.definitions.BulletDefinition;
23
import in.shop2020.metamodel.definitions.Catalog;
32
import in.shop2020.metamodel.definitions.Catalog;
24
import in.shop2020.metamodel.definitions.Category;
33
import in.shop2020.metamodel.definitions.Category;
25
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
34
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
Line 28... Line 37...
28
import in.shop2020.metamodel.definitions.SlideDefinition;
37
import in.shop2020.metamodel.definitions.SlideDefinition;
29
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;
38
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;
30
import in.shop2020.metamodel.util.CreationUtils;
39
import in.shop2020.metamodel.util.CreationUtils;
31
//import in.shop2020.metamodel.util.OldCreationUtils;
40
//import in.shop2020.metamodel.util.OldCreationUtils;
32
//import in.shop2020.metamodel.util.OldCreationUtils;
41
//import in.shop2020.metamodel.util.OldCreationUtils;
-
 
42
import in.shop2020.metamodel.util.ExpandedBullet;
33
 
43
 
34
 
44
 
35
/*
45
/*
36
 * @author rajveer 
46
 * @author rajveer 
37
 * 
47
 * 
Line 53... Line 63...
53
			sourceDbPath = args[0];
63
			sourceDbPath = args[0];
54
			destinationDbPath = args[1];
64
			destinationDbPath = args[1];
55
		}
65
		}
56
		
66
		
57
		ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath, destinationDbPath);
67
		ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath, destinationDbPath);
-
 
68
		//contentmigrator.migrateRemoveBorrowedCategoryIdFromSlide();
-
 
69
		//contentmigrator.migrateModel1();
-
 
70
		//contentmigrator.changeEntityState();
-
 
71
		//contentmigrator.removeBrowserBullets();
-
 
72
		//contentmigrator.migrateModel2();
-
 
73
		//contentmigrator.printDataModel();
58
		//contentmigrator.makeEntitiesObject();
74
		//contentmigrator.makeEntitiesObject();
-
 
75
		contentmigrator.printSlides();
59
		/*
76
		/*
60
		System.out.println(OldCreationUtils.getSlideSequence(1000194));
77
		System.out.println(OldCreationUtils.getSlideSequence(1000194));
61
		List<Slide> slides =  OldCreationUtils.getEntity(1000194).getSlides();
78
		List<Slide> slides =  OldCreationUtils.getEntity(1000194).getSlides();
62
		for(Slide slide: slides){
79
		for(Slide slide: slides){
63
			System.out.println(slide.getSlideDefinitionID());
80
			System.out.println(slide.getSlideDefinitionID());
Line 78... Line 95...
78
	 * source entities to destination entities according to destination definitions.  
95
	 * source entities to destination entities according to destination definitions.  
79
	 * 
96
	 * 
80
	 * @return boolean
97
	 * @return boolean
81
	 * @throws Exception 
98
	 * @throws Exception 
82
	 */
99
	 */
-
 
100
 
-
 
101
	public void printSlides() throws Exception{
-
 
102
		DefinitionsContainer defc = Catalog.getInstance().getDefinitionsContainer();
-
 
103
		for(Category category: defc.getCategories().values()){
-
 
104
			if(category.getChildrenCategory()!=null)continue;
-
 
105
			System.out.println(category.getID() + "\t" +category.getLabel());
-
 
106
			for(CategorySlideDefinition defs: defc.getCategorySlideDefinitions(category.getID())){
-
 
107
				System.out.println(defs.getSlideDefintionID() + "\t" + defs.getEditorialImportance() + "\t" +  defc.getSlideDefinition(defs.getSlideDefintionID()).getLabel()+"\t"+defc.getSlideDefinition(defs.getSlideDefintionID()).getChildrenSlideDefinitionIDs());
-
 
108
			}
-
 
109
		}
-
 
110
	}
-
 
111
	
-
 
112
	public void removeBrowserBullets() throws Exception{
-
 
113
		Map<Long, List<ExpandedBullet>> learnedBullets =  CreationUtils.getLearnedBullets();
-
 
114
		learnedBullets.get(new Long(120076));
-
 
115
		learnedBullets.remove(new Long(120076));
-
 
116
		CreationUtils.storeLearnedBullets(learnedBullets);
-
 
117
		
-
 
118
	}
-
 
119
	
-
 
120
	public boolean changeEntityState() throws Exception{
-
 
121
		Map<Long, EntityState> entitiesState = CreationUtils.getEntitiesState();
-
 
122
		for(Long entityId: entitiesState.keySet()){
-
 
123
			EntityState state = entitiesState.get(entityId);
-
 
124
			if(state.getCategoryID() == 10002 || state.getCategoryID() == 10003 || state.getCategoryID() == 10004 || state.getCategoryID() == 10005){
-
 
125
				state.setCompletedBy("");
-
 
126
				state.setMerkedReadyBy("");
-
 
127
				//state.setStatus(EntityStatus.ASSIGNED);
-
 
128
				//CreationUtils.updateEntityState(state);
-
 
129
				System.out.println(entityId + ":" + state.getStatus());
-
 
130
			}
-
 
131
			CreationUtils.updateEntityState(state);
-
 
132
		}
-
 
133
		return true;
-
 
134
	}
83
	
135
	
-
 
136
	
-
 
137
	public boolean migrateModel2() throws Exception{
-
 
138
		Map<Long, Entity> entities = CreationUtils.getEntities();
-
 
139
		for(Entity entity: entities.values()){
-
 
140
			List<Slide> slides = entity.getSlides();
-
 
141
			if(slides!=null){
-
 
142
				for(Slide slide: slides){
-
 
143
					if(slide.getSlideDefinitionID() == 130011){
-
 
144
						for(Feature feature: slide.getFeatures()){
-
 
145
							if(feature.getFeatureDefinitionID() == 120054){
-
 
146
								feature.setFeatureDefinitionID(120030);
-
 
147
								System.out.println("* " + entity.getID() + ":" + entity.getCategoryID());
-
 
148
							}
-
 
149
						}
-
 
150
					}
-
 
151
					
-
 
152
					if(slide.getSlideDefinitionID() == 130029){
-
 
153
						//System.out.println("** " + entity.getID() + ":" + entity.getCategoryID());
-
 
154
						if(entity.getCategoryID() == 10002){
-
 
155
							Feature feature = new Feature(120051);
-
 
156
							slide.getFeatures().add(feature);
-
 
157
							System.out.println("** " + entity.getID() + ":" + entity.getCategoryID());
-
 
158
						}
-
 
159
					}
-
 
160
 
-
 
161
				}
-
 
162
			}
-
 
163
			CreationUtils.updateEntity(entity);
-
 
164
		}
-
 
165
	return true;
-
 
166
	}
-
 
167
	
-
 
168
	public boolean migrateModel1() throws Exception{
-
 
169
		//DefinitionsContainer oldDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" + File.separator);
-
 
170
		//DefinitionsContainer newDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" + File.separator);
-
 
171
		
-
 
172
		Map<Long, Entity> entities = CreationUtils.getEntities();
-
 
173
		for(Entity entity: entities.values()){
-
 
174
			List<Long> slideSequence = entity.getSlideSequence();
-
 
175
			Map<Long,Long> removeMap = new HashMap<Long, Long>();
-
 
176
			List<Slide> slides = entity.getSlides();
-
 
177
			if(slides!=null){
-
 
178
				for(Slide slide: slides){
-
 
179
					List<Feature> features;
-
 
180
					Slide childSlide;
-
 
181
					switch ((int)slide.getSlideDefinitionID()) {
-
 
182
					
-
 
183
					//Keyboard
-
 
184
					case 130004:
-
 
185
					case 130026:
-
 
186
					case 130027:
-
 
187
					case 130057:
-
 
188
						removeMap.put(slide.getSlideDefinitionID(), (long)130026);	
-
 
189
						slide.setSlideDefinitionID(130026);
-
 
190
						break;
-
 
191
					
-
 
192
					//Voice Calling
-
 
193
					case 130005:
-
 
194
						removeMap.put(slide.getSlideDefinitionID(), (long)130005);
-
 
195
						slide.setSlideDefinitionID(130005);
-
 
196
						features = new ArrayList<Feature>();
-
 
197
						features.addAll(slide.getFeatures());
-
 
198
						childSlide = slide.getChildrenSlides().get(0);
-
 
199
						features.addAll(childSlide.getFeatures());
-
 
200
						if(childSlide.getFreeformContent()!=null){
-
 
201
							System.out.println("Voice Calling : HAS FFC : " + childSlide.getFreeformContent().getFreeformText() + childSlide.getFreeformContent().getMedias());
-
 
202
						}
-
 
203
						slide.setChildrenSlides(null);
-
 
204
						slide.setFeatures(features);
-
 
205
						break;
-
 
206
					case 130035:
-
 
207
						removeMap.put(slide.getSlideDefinitionID(), (long)130005);
-
 
208
						slide.setSlideDefinitionID(130005);
-
 
209
						for(Feature feata: slide.getFeatures()){
-
 
210
							if(feata.getFeatureDefinitionID()==120055){
-
 
211
								feata.setFeatureDefinitionID(120012);
-
 
212
							}
-
 
213
						}
-
 
214
						break;
-
 
215
					
-
 
216
					//Data Connectivity
-
 
217
					case 130007:
-
 
218
					case 130028:
-
 
219
						removeMap.put(slide.getSlideDefinitionID(), (long)130007);
-
 
220
						slide.setSlideDefinitionID(130007);
-
 
221
						break;
-
 
222
						
-
 
223
					//Music
-
 
224
					case 130029:
-
 
225
					case 130030:
-
 
226
					case 130008:
-
 
227
						removeMap.put(slide.getSlideDefinitionID(), (long)130029);
-
 
228
						slide.setSlideDefinitionID(130029);
-
 
229
						break;
-
 
230
						
-
 
231
					//Video
-
 
232
					case 130031:
-
 
233
					case 130009:
-
 
234
						removeMap.put(slide.getSlideDefinitionID(), (long)130031);
-
 
235
						slide.setSlideDefinitionID(130031);
-
 
236
						break;
-
 
237
						
-
 
238
					//Camera
-
 
239
					case 130010:
-
 
240
					case 130036:
-
 
241
					case 130037:
-
 
242
						removeMap.put(slide.getSlideDefinitionID(), (long)130010);
-
 
243
						slide.setSlideDefinitionID(130010);
-
 
244
						break;
-
 
245
					case 130060:
-
 
246
						removeMap.put(slide.getSlideDefinitionID(), (long)130010);
-
 
247
						slide.setSlideDefinitionID(130010);
-
 
248
						
-
 
249
						features =  slide.getFeatures();
-
 
250
						// Just to add camera feature in basic phones
-
 
251
						Feature feature = new Feature(120056);
-
 
252
						List<Bullet> bullets =  new ArrayList<Bullet>();
-
 
253
						PrimitiveDataObject pdo = new PrimitiveDataObject("1");
-
 
254
						Bullet bullet = new Bullet(pdo);
-
 
255
						bullets.add(bullet);
-
 
256
						feature.setBullets(bullets);
-
 
257
						features.add(feature);
-
 
258
						//Created new feature
-
 
259
						break;
-
 
260
						
-
 
261
					//Memory
-
 
262
					case 130011:
-
 
263
						removeMap.put(slide.getSlideDefinitionID(), (long)130011);
-
 
264
						slide.setSlideDefinitionID(130011);
-
 
265
						break;
-
 
266
					case 130032:
-
 
267
					case 130061:
-
 
268
						removeMap.put(slide.getSlideDefinitionID(), (long)130011);
-
 
269
						slide.setSlideDefinitionID(130011);
-
 
270
						features =  slide.getFeatures();
-
 
271
						for(Feature feat: features){
-
 
272
							if(feat.getFeatureDefinitionID() == 120054){
-
 
273
								feat.setFeatureDefinitionID(120030);
-
 
274
							}
-
 
275
						}
-
 
276
						break;
-
 
277
						
-
 
278
					//Battery
-
 
279
					case 130044:
-
 
280
						removeMap.put(slide.getSlideDefinitionID(), (long)130043);
-
 
281
						slide.setSlideDefinitionID(130043);
-
 
282
						if(slide.getChildrenSlides().get(0).getSlideDefinitionID() == 130047){
-
 
283
							slide.getChildrenSlides().get(0).setSlideDefinitionID(130046);
-
 
284
						}
-
 
285
						break;
-
 
286
						
-
 
287
					case 130042:
-
 
288
						removeMap.put(slide.getSlideDefinitionID(), (long)130043);
-
 
289
						slide.setSlideDefinitionID(130043);
-
 
290
						childSlide = slide.getChildrenSlides().get(0);
-
 
291
						if(childSlide.getSlideDefinitionID() == 130045){
-
 
292
							childSlide.setSlideDefinitionID(130046);
-
 
293
						}
-
 
294
						
-
 
295
						List<Feature> childFeatures1 = new ArrayList<Feature>();
-
 
296
						List<Feature> childFeatures2 = new ArrayList<Feature>();
-
 
297
						Slide childChildSlide1 = new Slide(130048);
-
 
298
						Slide childChildSlide2 = new Slide(130049);
-
 
299
						
-
 
300
						childChildSlide1.setFeatures(childFeatures1);
-
 
301
						childChildSlide2.setFeatures(childFeatures2);
-
 
302
						
-
 
303
						childSlide.addChild(childChildSlide1);
-
 
304
						childSlide.addChild(childChildSlide2);
-
 
305
 
-
 
306
						
-
 
307
						for(Feature f: childSlide.getFeatures()){
-
 
308
							if(f.getFeatureDefinitionID() == 120063){
-
 
309
								f.setFeatureDefinitionID(120068);
-
 
310
								childFeatures1.add(f);
-
 
311
							}
-
 
312
							if(f.getFeatureDefinitionID() == 120064){
-
 
313
								f.setFeatureDefinitionID(120069);
-
 
314
								childFeatures2.add(f);
-
 
315
							}
-
 
316
						}
-
 
317
						
-
 
318
						childSlide.setFeatures(null);
-
 
319
						
-
 
320
						break;
-
 
321
						
-
 
322
					case 130062:
-
 
323
						removeMap.put(slide.getSlideDefinitionID(), (long)130043);
-
 
324
						slide.setSlideDefinitionID(130043);
-
 
325
						
-
 
326
						childSlide = new Slide(130046);
-
 
327
						features = new ArrayList<Feature>();
-
 
328
						
-
 
329
						slide.addChild(childSlide);
-
 
330
						
-
 
331
						List<Feature> childFeatures11 = new ArrayList<Feature>();
-
 
332
						List<Feature> childFeatures21 = new ArrayList<Feature>();
-
 
333
						Slide childChildSlide11 = new Slide(130048);
-
 
334
						Slide childChildSlide21 = new Slide(130049);
-
 
335
						
-
 
336
						childChildSlide11.setFeatures(childFeatures11);
-
 
337
						childChildSlide21.setFeatures(childFeatures21);
-
 
338
						
-
 
339
						childSlide.addChild(childChildSlide11);
-
 
340
						childSlide.addChild(childChildSlide21);
-
 
341
						for(Feature f: slide.getFeatures()){
-
 
342
							if(f.getFeatureDefinitionID() == 120072){
-
 
343
								features.add(f);
-
 
344
							}
-
 
345
							if(f.getFeatureDefinitionID() == 120073){
-
 
346
								features.add(f);
-
 
347
							}
-
 
348
							if(f.getFeatureDefinitionID() == 120063){
-
 
349
								f.setFeatureDefinitionID(120068);
-
 
350
								childFeatures11.add(f);
-
 
351
							}
-
 
352
							if(f.getFeatureDefinitionID() == 120064){
-
 
353
								f.setFeatureDefinitionID(120069);
-
 
354
								childFeatures21.add(f);
-
 
355
							}
-
 
356
						}
-
 
357
						slide.setFeatures(features);
-
 
358
						break;
-
 
359
						
-
 
360
						
-
 
361
					//Mail n Msg
-
 
362
					case 130041:
-
 
363
					case 130063:
-
 
364
						removeMap.put(slide.getSlideDefinitionID(), (long)130039);
-
 
365
						slide.setSlideDefinitionID(130039);
-
 
366
						break;
-
 
367
					case 130039:
-
 
368
						removeMap.put(slide.getSlideDefinitionID(), (long)130039);
-
 
369
						slide.setSlideDefinitionID(130039);
-
 
370
						
-
 
371
						childSlide = slide.getChildrenSlides().get(0);
-
 
372
						slide.setFeatures(childSlide.getFeatures());
-
 
373
						if(childSlide.getFreeformContent()!=null){
-
 
374
							System.out.println("Mail n Msg : HAS FFC : " + childSlide.getFreeformContent().getFreeformText() + childSlide.getFreeformContent().getMedias());
-
 
375
						}
-
 
376
						slide.setChildrenSlides(null);
-
 
377
						break;
-
 
378
						
-
 
379
					//Software
-
 
380
					case 130020:
-
 
381
					case 130034:
-
 
382
						removeMap.put(slide.getSlideDefinitionID(), (long)130020);
-
 
383
						slide.setSlideDefinitionID(130020);
-
 
384
						break;
-
 
385
						
-
 
386
					
-
 
387
					//Internet
-
 
388
					case 130050:
-
 
389
						removeMap.put(slide.getSlideDefinitionID(), (long)130050);
-
 
390
						slide.setSlideDefinitionID(130050);
-
 
391
						slide.setFeatures(slide.getChildrenSlides().get(0).getFeatures());
-
 
392
						
-
 
393
						if(slide.getChildrenSlides().get(0).getFreeformContent()!=null){
-
 
394
							String ffc = slide.getFreeformContent().getFreeformText();
-
 
395
							if(slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText()!=null){
-
 
396
								if(slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText().trim()!=""){
-
 
397
									ffc = ffc + "\n *********    " + slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText();
-
 
398
									System.out.println("**************" + slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText());
-
 
399
								}
-
 
400
							}
-
 
401
							
-
 
402
							List<String> ffcs = new ArrayList<String>();
-
 
403
							ffcs.add(ffc);
-
 
404
							slide.getFreeformContent().setFreeformTexts(ffcs);
-
 
405
						}
-
 
406
						
-
 
407
						slide.setChildrenSlides(null);
-
 
408
						//System.out.println("Slide: 130050");
-
 
409
						//printSlideContent(slide);
-
 
410
						break;
-
 
411
 
-
 
412
					case 130052:
-
 
413
						removeMap.put(slide.getSlideDefinitionID(), (long)130050);
-
 
414
						slide.setSlideDefinitionID(130050);
-
 
415
						
-
 
416
						for(Feature f2: slide.getFeatures()){
-
 
417
							if(f2.getFeatureDefinitionID() == 120077){
-
 
418
								f2.setFeatureDefinitionID(120074);
-
 
419
//								List<Bullet> newBullets = new ArrayList<Bullet>();
-
 
420
//								for(Bullet bul: f2.getBullets()){
-
 
421
//									CompositeDataObject cdo =  (CompositeDataObject) bul.getDataObject();
-
 
422
//									for(PrimitiveDataObject pdo1: cdo.getPrimitiveDataObjects()){
-
 
423
//										pdo1.getValue();
-
 
424
//										BulletDataObject bdo2 = new EnumDataObject(enumValueID);
-
 
425
//										Bullet newbul = new Bullet(bdo2);
-
 
426
//										newBullets.add(newbul);
-
 
427
//									}
-
 
428
//									
-
 
429
//								}
-
 
430
//								f2.setBullets(newBullets);
-
 
431
							}
-
 
432
							if(f2.getFeatureDefinitionID() == 120078){
-
 
433
								f2.setFeatureDefinitionID(120075);
-
 
434
							}
-
 
435
						}
-
 
436
//						slide.setFeatures(slide.getChildrenSlides().get(0).getFeatures());
-
 
437
//						slide.setChildrenSlides(null);
-
 
438
						//System.out.println("Slide: 130052");
-
 
439
						
-
 
440
						//printSlideContent(slide);
-
 
441
						break;
-
 
442
 
-
 
443
					case 130051:
-
 
444
						removeMap.put(slide.getSlideDefinitionID(), (long)130050);
-
 
445
						slide.setSlideDefinitionID(130050);
-
 
446
//						System.out.println(slide);
-
 
447
						//System.out.println("Slide 130051:");
-
 
448
		//				printSlideContent(slide);
-
 
449
						break;
-
 
450
						
-
 
451
					default:
-
 
452
						break;
-
 
453
					}
-
 
454
 
-
 
455
				}
-
 
456
				List<Long> newSequence = new ArrayList<Long>();
-
 
457
				for(Long id: slideSequence){
-
 
458
					if(removeMap.containsKey(id)){
-
 
459
						newSequence.add(removeMap.get(id));
-
 
460
					}else{
-
 
461
						newSequence.add(id);
-
 
462
					}
-
 
463
				}
-
 
464
				entity.setSlideSequence(newSequence);
-
 
465
				CreationUtils.updateEntity(entity);
-
 
466
			}
-
 
467
		}
-
 
468
			
-
 
469
		return true;
-
 
470
	}
-
 
471
 
-
 
472
	
-
 
473
	
-
 
474
	public void printSlideContent(Slide slide){
-
 
475
		
-
 
476
		System.out.println("Slide: " + slide.getFreeformContent().getFreeformText());
-
 
477
		if(slide.getFeatures()!=null){
-
 
478
			for(Feature feature: slide.getFeatures()){
-
 
479
				if(feature.getBullets()!=null){
-
 
480
					for(Bullet bullet:feature.getBullets()){
-
 
481
						//System.out.println(bullet.getDataObject().toString());
-
 
482
						//System.out.println(bullet.getFreeformContent());
-
 
483
					}
-
 
484
				}
-
 
485
				if(feature.getFreeformContent()!=null){
-
 
486
					System.out.println("Feature: "+ feature.getFreeformContent().getFreeformText());
-
 
487
				}
-
 
488
			}
-
 
489
		}
-
 
490
		if(slide.getChildrenSlides()!=null){
-
 
491
			for(Slide sl: slide.getChildrenSlides()){
-
 
492
				System.out.println("Child1: ");
-
 
493
				printSlideContent(sl);
-
 
494
				System.out.println("Child2: ");
-
 
495
			}
-
 
496
		}
-
 
497
		
-
 
498
	}
-
 
499
	
-
 
500
	public boolean migrateModel() throws Exception{
-
 
501
		//DefinitionsContainer oldDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" + File.separator);
-
 
502
		//DefinitionsContainer newDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" + File.separator);
-
 
503
		
-
 
504
		Map<Long, Entity> entities = CreationUtils.getEntities();
-
 
505
		for(Entity entity: entities.values()){
-
 
506
			List<Slide> slides = entity.getSlides();
-
 
507
			if(slides!=null){
-
 
508
				List<Slide> newSlides = new ArrayList<Slide>();
-
 
509
				for(Slide slide: slides){
-
 
510
					Slide newSlide;
-
 
511
					List<Feature> features;
-
 
512
					Slide childSlide;
-
 
513
					switch ((int)slide.getSlideDefinitionID()) {
-
 
514
					
-
 
515
					//Keyboard
-
 
516
					case 130004:
-
 
517
					case 130026:
-
 
518
					case 130027:
-
 
519
					case 130057:
-
 
520
						newSlide = new Slide(130026);
-
 
521
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
522
						newSlide.setFeatures(slide.getFeatures());
-
 
523
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
524
						newSlides.add(newSlide);
-
 
525
						break;
-
 
526
					
-
 
527
					//Voice Calling
-
 
528
					case 130005:
-
 
529
						newSlide = new Slide(130005);
-
 
530
						newSlide.setChildrenSlides(null);
-
 
531
						features = new ArrayList<Feature>();
-
 
532
						features.addAll(slide.getFeatures());
-
 
533
						childSlide = slide.getChildrenSlides().get(0);
-
 
534
						features.addAll(childSlide.getFeatures());
-
 
535
						if(childSlide.getFreeformContent()!=null){
-
 
536
							System.out.println("Voice Calling : HAS FFC : " + childSlide.getFreeformContent().getFreeformText() + childSlide.getFreeformContent().getMedias());
-
 
537
						}
-
 
538
						newSlide.setFeatures(features);
-
 
539
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
540
						newSlides.add(newSlide);						
-
 
541
						break;
-
 
542
					case 130035:
-
 
543
						newSlide = new Slide(130035);
-
 
544
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
545
						for(Feature feata: slide.getFeatures()){
-
 
546
							if(feata.getFeatureDefinitionID()==120055){
-
 
547
								feata.setFeatureDefinitionID(120012);
-
 
548
							}
-
 
549
						}
-
 
550
						newSlide.setFeatures(slide.getFeatures());
-
 
551
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
552
						newSlides.add(newSlide);						
-
 
553
						break;
-
 
554
					
-
 
555
					//Data Connectivity
-
 
556
					case 130007:
-
 
557
					case 130028:
-
 
558
						newSlide = new Slide(130007);
-
 
559
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
560
						newSlide.setFeatures(slide.getFeatures());
-
 
561
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
562
						newSlides.add(newSlide);
-
 
563
						break;
-
 
564
						
-
 
565
					//Music
-
 
566
					case 130029:
-
 
567
					case 130030:
-
 
568
					case 130008:
-
 
569
						newSlide = new Slide(130029);
-
 
570
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
571
						newSlide.setFeatures(slide.getFeatures());
-
 
572
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
573
						newSlides.add(newSlide);
-
 
574
						break;
-
 
575
						
-
 
576
					//Video
-
 
577
					case 130031:
-
 
578
					case 130009:
-
 
579
						newSlide = new Slide(130031);
-
 
580
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
581
						newSlide.setFeatures(slide.getFeatures());
-
 
582
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
583
						newSlides.add(newSlide);
-
 
584
						break;
-
 
585
						
-
 
586
					//Camera
-
 
587
					case 130010:
-
 
588
					case 130036:
-
 
589
					case 130037:
-
 
590
						newSlide = new Slide(130010);
-
 
591
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
592
						newSlide.setFeatures(slide.getFeatures());
-
 
593
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
594
						newSlides.add(newSlide);
-
 
595
						break;
-
 
596
					case 130060:
-
 
597
						newSlide = new Slide(130010);
-
 
598
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
599
						features =  slide.getFeatures();
-
 
600
						// Just to add camera feature in basic phones
-
 
601
						Feature feature = new Feature(120056);
-
 
602
						List<Bullet> bullets =  new ArrayList<Bullet>();
-
 
603
						PrimitiveDataObject pdo = new PrimitiveDataObject("1");
-
 
604
						Bullet bullet = new Bullet(pdo);
-
 
605
						bullets.add(bullet);
-
 
606
						feature.setBullets(bullets);
-
 
607
						features.add(feature);
-
 
608
						//Created new feature
-
 
609
						newSlide.setFeatures(features);
-
 
610
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
611
						newSlides.add(newSlide);
-
 
612
						break;
-
 
613
						
-
 
614
					//Memory
-
 
615
					case 130011:
-
 
616
						newSlide = new Slide(130011);
-
 
617
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
618
						newSlide.setFeatures(slide.getFeatures());
-
 
619
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
620
						newSlides.add(newSlide);
-
 
621
						break;
-
 
622
					case 130032:
-
 
623
					case 130061:
-
 
624
						newSlide = new Slide(130011);
-
 
625
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
626
						features =  slide.getFeatures();
-
 
627
						for(Feature feat: features){
-
 
628
							if(feat.getFeatureDefinitionID() == 130054){
-
 
629
								feat.setFeatureDefinitionID(120030);
-
 
630
							}
-
 
631
						}
-
 
632
						newSlide.setFeatures(slide.getFeatures());
-
 
633
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
634
						newSlides.add(newSlide);
-
 
635
						break;
-
 
636
						
-
 
637
					//Battery
-
 
638
					case 130044:
-
 
639
						newSlide = new Slide(130043);
-
 
640
						if(slide.getChildrenSlides().get(0).getSlideDefinitionID() == 130047){
-
 
641
							slide.getChildrenSlides().get(0).setSlideDefinitionID(130046);
-
 
642
						}
-
 
643
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
644
						newSlide.setFeatures(slide.getFeatures());
-
 
645
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
646
						newSlides.add(newSlide);
-
 
647
						break;
-
 
648
						
-
 
649
					case 130042:
-
 
650
						newSlide = new Slide(130043);
-
 
651
						childSlide = slide.getChildrenSlides().get(0);
-
 
652
						if(childSlide.getSlideDefinitionID() == 130045){
-
 
653
							childSlide.setSlideDefinitionID(130046);
-
 
654
						}
-
 
655
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
656
						
-
 
657
						List<Feature> childFeatures1 = new ArrayList<Feature>();
-
 
658
						List<Feature> childFeatures2 = new ArrayList<Feature>();
-
 
659
						Slide childChildSlide1 = new Slide(130048);
-
 
660
						Slide childChildSlide2 = new Slide(130049);
-
 
661
						
-
 
662
						childChildSlide1.setFeatures(childFeatures1);
-
 
663
						childChildSlide2.setFeatures(childFeatures2);
-
 
664
						
-
 
665
						childSlide.addChild(childChildSlide1);
-
 
666
						childSlide.addChild(childChildSlide2);
-
 
667
 
-
 
668
						
-
 
669
						for(Feature f: childSlide.getFeatures()){
-
 
670
							if(f.getFeatureDefinitionID() == 120063){
-
 
671
								f.setFeatureDefinitionID(120068);
-
 
672
								childFeatures1.add(f);
-
 
673
							}
-
 
674
							if(f.getFeatureDefinitionID() == 120064){
-
 
675
								f.setFeatureDefinitionID(120069);
-
 
676
								childFeatures2.add(f);
-
 
677
							}
-
 
678
						}
-
 
679
						
-
 
680
						childSlide.setFeatures(null);
-
 
681
						
-
 
682
						newSlide.setFeatures(slide.getFeatures());
-
 
683
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
684
						newSlides.add(newSlide);
-
 
685
						break;
-
 
686
						
-
 
687
					case 130062:
-
 
688
						newSlide = new Slide(130043);
-
 
689
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
690
						childSlide = new Slide(130046);
-
 
691
						features = new ArrayList<Feature>();
-
 
692
						newSlide.setFeatures(features);
-
 
693
						newSlide.addChild(childSlide);
-
 
694
						
-
 
695
						List<Feature> childFeatures11 = new ArrayList<Feature>();
-
 
696
						List<Feature> childFeatures21 = new ArrayList<Feature>();
-
 
697
						Slide childChildSlide11 = new Slide(130048);
-
 
698
						Slide childChildSlide21 = new Slide(130049);
-
 
699
						
-
 
700
						childChildSlide11.setFeatures(childFeatures11);
-
 
701
						childChildSlide21.setFeatures(childFeatures21);
-
 
702
						
-
 
703
						childSlide.addChild(childChildSlide11);
-
 
704
						childSlide.addChild(childChildSlide21);
-
 
705
						for(Feature f: slide.getFeatures()){
-
 
706
							if(f.getFeatureDefinitionID() == 120072){
-
 
707
								features.add(f);
-
 
708
							}
-
 
709
							if(f.getFeatureDefinitionID() == 120073){
-
 
710
								features.add(f);
-
 
711
							}
-
 
712
							if(f.getFeatureDefinitionID() == 120063){
-
 
713
								f.setFeatureDefinitionID(120068);
-
 
714
								childFeatures11.add(f);
-
 
715
							}
-
 
716
							if(f.getFeatureDefinitionID() == 120064){
-
 
717
								f.setFeatureDefinitionID(120069);
-
 
718
								childFeatures21.add(f);
-
 
719
							}
-
 
720
						}
-
 
721
						
-
 
722
						newSlide.setFeatures(slide.getFeatures());
-
 
723
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
724
						newSlides.add(newSlide);
-
 
725
						break;
-
 
726
						
-
 
727
						
-
 
728
					//Mail n Msg
-
 
729
					case 130041:
-
 
730
					case 130063:
-
 
731
						newSlide = new Slide(130039);
-
 
732
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
733
						newSlide.setFeatures(slide.getFeatures());
-
 
734
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
735
						newSlides.add(newSlide);
-
 
736
						break;
-
 
737
					case 130039:
-
 
738
						newSlide = new Slide(130039);
-
 
739
						//newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
740
						childSlide = slide.getChildrenSlides().get(0);
-
 
741
						newSlide.setFeatures(childSlide.getFeatures());
-
 
742
						if(childSlide.getFreeformContent()!=null){
-
 
743
							System.out.println("Mail n Msg : HAS FFC : " + childSlide.getFreeformContent().getFreeformText() + childSlide.getFreeformContent().getMedias());
-
 
744
						}
-
 
745
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
746
						newSlides.add(newSlide);
-
 
747
						break;
-
 
748
						
-
 
749
					//Software
-
 
750
					case 130020:
-
 
751
					case 130034:
-
 
752
						newSlide = new Slide(130034);
-
 
753
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
754
						features =  slide.getFeatures();
-
 
755
						newSlide.setFeatures(slide.getFeatures());
-
 
756
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
757
						newSlides.add(newSlide);
-
 
758
						break;
-
 
759
 
-
 
760
						
-
 
761
					default:
-
 
762
						newSlides.add(slide);
-
 
763
						break;
-
 
764
					}
-
 
765
					/*
-
 
766
					if(slide.getSlideDefinitionID() == 130004){
-
 
767
						Slide newSlide = new Slide(130026);
-
 
768
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
769
						newSlide.setFeatures(slide.getFeatures());
-
 
770
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
771
						newSlides.add(newSlide);						
-
 
772
					}else{
-
 
773
						Slide newSlide = new Slide(slide.getSlideDefinitionID());
-
 
774
						newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
775
						newSlide.setFeatures(slide.getFeatures());
-
 
776
						newSlide.setFreeformContent(slide.getFreeformContent());
-
 
777
						newSlides.add(newSlide);
-
 
778
					}
-
 
779
					*/
-
 
780
				}
-
 
781
				entity.setSlides(newSlides);
-
 
782
				CreationUtils.updateEntity(entity);
-
 
783
			}
-
 
784
		}
-
 
785
			
-
 
786
		return true;
-
 
787
	}
-
 
788
	public boolean migrateRemoveBorrowedCategoryIdFromSlide() throws Exception{
-
 
789
		Map<Long, Entity> entities = CreationUtils.getEntities();
-
 
790
		for(Entity entity: entities.values()){
-
 
791
			if(entity.getID() == 0){
-
 
792
				CreationUtils.deleteEntity(entity.getID());
-
 
793
			}
-
 
794
			List<Slide> slides = entity.getSlides();
-
 
795
			if(slides!=null){
-
 
796
				List<Slide> newSlides = new ArrayList<Slide>();
-
 
797
				for(Slide slide: slides){
-
 
798
					Slide newSlide = new Slide(slide.getSlideDefinitionID());
-
 
799
					newSlide.setChildrenSlides(slide.getChildrenSlides());
-
 
800
					newSlide.setFeatures(slide.getFeatures());
-
 
801
					newSlide.setFreeformContent(slide.getFreeformContent());
-
 
802
					newSlides.add(newSlide);
-
 
803
				}
-
 
804
				entity.setSlides(newSlides);
-
 
805
				CreationUtils.updateEntity(entity);
-
 
806
			}
-
 
807
		}
-
 
808
		return true;
-
 
809
	}
84
	public boolean migrate() throws Exception{
810
	public boolean migrate() throws Exception{
85
	/*	 
811
	/*	 
86
		DefinitionsContainer sourceDefs = new DefinitionsContainer(sourceDbPath);
812
		DefinitionsContainer sourceDefs = new DefinitionsContainer(sourceDbPath);
87
		DefinitionsContainer destinationDefs = new DefinitionsContainer(destinationDbPath);
813
		DefinitionsContainer destinationDefs = new DefinitionsContainer(destinationDbPath);
88
		EntityContainer sourceEnts = new EntityContainer(sourceDbPath);
814
		EntityContainer sourceEnts = new EntityContainer(sourceDbPath);
Line 304... Line 1030...
304
		
1030
		
305
	}
1031
	}
306
	
1032
	
307
	private boolean printDataModel() throws Exception{
1033
	private boolean printDataModel() throws Exception{
308
		DefinitionsContainer dfc = Catalog.getInstance().getDefinitionsContainer();
1034
		DefinitionsContainer dfc = Catalog.getInstance().getDefinitionsContainer();
-
 
1035
		StringBuilder sb = new StringBuilder();
309
		
1036
		
-
 
1037
		Map<Long, SlideDefinition> allSlideDefs = dfc.getSlideDefinitions();
-
 
1038
		for(Long slideDefId: allSlideDefs.keySet()){
-
 
1039
			SlideDefinition slideDef = allSlideDefs.get(slideDefId);
-
 
1040
			sb.append(slideDefId + " - " + slideDef.getLabel() + "\n");
-
 
1041
			if(!slideDef.getChildrenSlideDefinitionIDs().isEmpty()){
-
 
1042
				sb.append("Child Slides are: \t" + slideDef.getChildrenSlideDefinitionIDs()+"\n");
-
 
1043
			}
-
 
1044
			List<SlideFeatureDefinition> featureDefs = slideDef.getSlideFeatureDefinitions();
-
 
1045
			for(SlideFeatureDefinition featureDef: featureDefs){
-
 
1046
				sb.append("\t" + featureDef.getFeatureDefintionID() + "\t" + dfc.getFeatureDefinition(featureDef.getFeatureDefintionID()).getLabel() + "\t" + featureDef.getEditorialImportance() + "\n");
-
 
1047
			}
-
 
1048
		}
-
 
1049
		System.out.println(sb.toString());
310
		Map<Long, Category> categories = dfc.getCategories();
1050
		Map<Long, Category> categories = dfc.getCategories();
-
 
1051
		if(categories !=null){
-
 
1052
			return true;
-
 
1053
		}
311
		for(Category category: categories.values()){
1054
		for(Category category: categories.values()){
312
			if(category.getChildrenCategory() != null){
1055
			if(category.getChildrenCategory() != null){
313
				continue;
1056
				continue;
314
			}
1057
			}
315
			System.out.println(category.getLabel());
1058
			sb.append(category.getLabel() + "\n");
316
			List<CategorySlideDefinition> slideDefs =  dfc.getCategorySlideDefinitions(category.getID());
1059
			List<CategorySlideDefinition> slideDefs =  dfc.getCategorySlideDefinitions(category.getID());
-
 
1060
			List<Long> slideSequence = dfc.getCategorySlideSequence(category.getID());
317
			for(CategorySlideDefinition slideDef: slideDefs){
1061
			for(CategorySlideDefinition slideDef: slideDefs){
318
				System.out.println("	"+ dfc.getSlideDefinition(slideDef.getSlideDefintionID()).getLabel() +  "	" + slideDef.getEditorialImportance());
1062
				sb.append("\t"+ dfc.getSlideDefinition(slideDef.getSlideDefintionID()).getLabel() +  "\t" + slideDef.getEditorialImportance() + "\n");
319
				//List<FeatureDefinition> featureDefs = dfc.getFeatureDefinitions(slideDef.getSlideDefintionID());
1063
				//List<FeatureDefinition> featureDefs = dfc.getFeatureDefinitions(slideDef.getSlideDefintionID());
320
				
1064
				
321
				List<SlideFeatureDefinition> slideFeatureDefs = dfc.getSlideDefinition(slideDef.getSlideDefintionID()).getSlideFeatureDefinitions();
1065
				List<SlideFeatureDefinition> slideFeatureDefs = dfc.getSlideDefinition(slideDef.getSlideDefintionID()).getSlideFeatureDefinitions();
322
				
1066
				
323
				for(SlideFeatureDefinition slideFeatureDef: slideFeatureDefs){
1067
				for(SlideFeatureDefinition slideFeatureDef: slideFeatureDefs){
324
					FeatureDefinition featureDef = dfc.getFeatureDefinition(slideFeatureDef.getFeatureDefintionID());
1068
					FeatureDefinition featureDef = dfc.getFeatureDefinition(slideFeatureDef.getFeatureDefintionID());
325
					BulletDefinition bulletDef = featureDef.getBulletDefinition();
1069
					BulletDefinition bulletDef = featureDef.getBulletDefinition();
326
					System.out.println("			" + slideFeatureDef.getEditorialImportance() + "	" + featureDef.getLabel() + " 	" +  featureDef.allowsBlank() + "	" + bulletDef.isLearned() + "	" + bulletDef.isMultivalue());
1070
					sb.append("\t\t\t"  + featureDef.getLabel() + "\t" + slideFeatureDef.getEditorialImportance() + "\t" +  featureDef.allowsBlank() + "\t" + bulletDef.isLearned() + "\t" + bulletDef.isMultivalue() );
327
					List<Long> units = bulletDef.getUnitIDs();
1071
					List<Long> units = bulletDef.getUnitIDs();
-
 
1072
					if(bulletDef.getDatatypeDefinitionID()!=null){
-
 
1073
						sb.append( "\t" + dfc.getDatatypeDefinition(bulletDef.getDatatypeDefinitionID()).getName());
-
 
1074
						
-
 
1075
					}
328
					if(units!=null){
1076
					if(units!=null){
329
						for(Long unit: units){
1077
						for(Long unit: units){
330
							System.out.println("									"+ dfc.getUnit(unit).getFullForm() + "	"+ dfc.getUnit(unit).getShortForm());
1078
							sb.append( "\t" + dfc.getUnit(unit).getFullForm() + "\t" + dfc.getUnit(unit).getShortForm());
331
						}
1079
						}
332
					}
1080
					}
333
					if(bulletDef.getDatatypeDefinitionID()!=null){
1081
					sb.append("\n");
334
						System.out.println("											"  + dfc.getDatatypeDefinition(bulletDef.getDatatypeDefinitionID()).getName());
-
 
335
						
-
 
336
					}
-
 
337
					
-
 
338
				}
1082
				}
339
				
1083
				
340
				/*
1084
				/*
341
				for(FeatureDefinition featureDef: featureDefs){
1085
				for(FeatureDefinition featureDef: featureDefs){
342
					BulletDefinition bulletDef = featureDef.getBulletDefinition();
1086
					BulletDefinition bulletDef = featureDef.getBulletDefinition();
Line 353... Line 1097...
353
					}
1097
					}
354
				}
1098
				}
355
				*/
1099
				*/
356
			}
1100
			}
357
		}
1101
		}
-
 
1102
		System.out.println(sb.toString());
358
		return true;
1103
		return true;
359
	}
1104
	}
360
}
1105
}