Subversion Repositories SmartDukaan

Rev

Rev 4706 | Rev 4964 | 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
 
1226 rajveer 3
import in.shop2020.metamodel.core.Bullet;
479 rajveer 4
import in.shop2020.metamodel.core.Entity;
1226 rajveer 5
import in.shop2020.metamodel.core.EntityState;
3873 mandeep.dh 6
import in.shop2020.metamodel.core.EnumDataObject;
1226 rajveer 7
import in.shop2020.metamodel.core.Feature;
479 rajveer 8
import in.shop2020.metamodel.core.FreeformContent;
1226 rajveer 9
import in.shop2020.metamodel.core.PrimitiveDataObject;
479 rajveer 10
import in.shop2020.metamodel.core.Slide;
580 rajveer 11
import in.shop2020.metamodel.definitions.BulletDefinition;
457 rajveer 12
import in.shop2020.metamodel.definitions.Catalog;
580 rajveer 13
import in.shop2020.metamodel.definitions.Category;
14
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
457 rajveer 15
import in.shop2020.metamodel.definitions.DefinitionsContainer;
580 rajveer 16
import in.shop2020.metamodel.definitions.FeatureDefinition;
17
import in.shop2020.metamodel.definitions.SlideDefinition;
18
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;
479 rajveer 19
import in.shop2020.metamodel.util.CreationUtils;
2720 mandeep.dh 20
import in.shop2020.metamodel.util.ExpandedBullet;
1739 rajveer 21
import in.shop2020.metamodel.util.ExpandedEntity;
2287 rajveer 22
import in.shop2020.model.v1.catalog.InventoryService.Client;
23
import in.shop2020.model.v1.catalog.Item;
24
import in.shop2020.model.v1.catalog.status;
3127 rajveer 25
import in.shop2020.thrift.clients.CatalogClient;
4706 amit.gupta 26
import in.shop2020.utils.Logger;
457 rajveer 27
 
2720 mandeep.dh 28
import java.io.BufferedReader;
29
import java.io.DataInputStream;
30
import java.io.File;
31
import java.io.FileInputStream;
32
import java.io.InputStreamReader;
33
import java.util.ArrayList;
3873 mandeep.dh 34
import java.util.Collections;
4706 amit.gupta 35
import java.util.HashMap;
2720 mandeep.dh 36
import java.util.List;
37
import java.util.Map;
4706 amit.gupta 38
import java.util.Set;
2720 mandeep.dh 39
import java.util.TreeMap;
580 rajveer 40
 
4818 amit.gupta 41
import org.apache.commons.lang.ArrayUtils;
42
import org.apache.commons.lang.StringUtils;
43
 
457 rajveer 44
/*
45
 * @author rajveer 
46
 * 
47
 *
48
 */
49
 
50
public class ContentMigrator {
51
	private String sourceDbPath;
52
	private String destinationDbPath;
53
	public static void main(String[] args) throws Exception {
54
		String usage = "Usage: ContentMigrator {source db path}{destination db path}";
55
 
2287 rajveer 56
		String sourceDbPath = null, destinationDbPath = null; String dryRun = null;
2720 mandeep.dh 57
//		if(args.length < 2) {
58
//			System.out.println(usage);
59
//			System.exit(-1);
60
//		}else{
61
//			sourceDbPath = args[0];
62
//			destinationDbPath = args[1];
63
//			dryRun = args[2];
64
//		}
65
//		
2794 rajveer 66
		ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath, destinationDbPath);
4818 amit.gupta 67
		contentmigrator.migrateNetwork();
4706 amit.gupta 68
//		contentmigrator.migrateWarrantyType();
3873 mandeep.dh 69
//    	CreationUtils.storeComparisonStats(null);
2794 rajveer 70
//		contentmigrator.migrateMedia();
457 rajveer 71
 
2471 rajveer 72
 
2720 mandeep.dh 73
		//contentmigrator.populateHelpdocEntityIds();
2329 rajveer 74
		//contentmigrator.migrateDataBack();
2471 rajveer 75
		//contentmigrator.migrateBrandModel(dryRun);
2287 rajveer 76
		//contentmigrator.migrateData();
1226 rajveer 77
		//contentmigrator.migrateRemoveBorrowedCategoryIdFromSlide();
78
		//contentmigrator.migrateModel1();
79
		//contentmigrator.changeEntityState();
80
		//contentmigrator.removeBrowserBullets();
81
		//contentmigrator.migrateModel2();
82
		//contentmigrator.printDataModel();
1050 rajveer 83
		//contentmigrator.makeEntitiesObject();
1314 rajveer 84
		//contentmigrator.printSlides();
1739 rajveer 85
		/*
1314 rajveer 86
		DefinitionsContainer dfc = Catalog.getInstance().getDefinitionsContainer();
87
		for(Long fid: dfc.getCategoryFacetDefinitions().keySet()){
88
			for(FacetDefinition facetDef: dfc.getCategoryFacetDefinitions().get(fid).getFacetDefinitions()){
89
				System.out.println("***" + fid + " *** " + facetDef.getID() + facetDef.getTarget() );
90
			}
91
 
1739 rajveer 92
		}*/
93
 
1314 rajveer 94
		//System.out.println("**********" + dfc.getCategoryFacetDefinitions());
95
		//System.out.println("**********" + dfc.getSlideFacetDefinitions());
96
 
1739 rajveer 97
		/*
1314 rajveer 98
		for(Long defID : dfc.getSlideFacetDefinitions().keySet()){
99
			for(FacetDefinition facetDef: dfc.getSlideFacetDefinitions().get(defID)){
100
				System.out.println(defID + "****" + facetDef.getID() + facetDef.getDescription());	
101
			}
102
 
103
		}
1739 rajveer 104
		*/
1314 rajveer 105
 
1055 rajveer 106
		/*
1050 rajveer 107
		System.out.println(OldCreationUtils.getSlideSequence(1000194));
108
		List<Slide> slides =  OldCreationUtils.getEntity(1000194).getSlides();
109
		for(Slide slide: slides){
110
			System.out.println(slide.getSlideDefinitionID());
111
		}
1055 rajveer 112
		*/
1050 rajveer 113
 
580 rajveer 114
		//ContentMigrator contentmigrator = new ContentMigrator(sourceDbPath, destinationDbPath);
115
		//boolean result = contentmigrator.migrate();
116
		//System.out.println("Content migration status:  "+ result);
3873 mandeep.dh 117
 
118
 
457 rajveer 119
	}
120
 
2720 mandeep.dh 121
 
4818 amit.gupta 122
	private void migrateNetwork() throws Exception {
123
		Map<Long, Entity> map = CreationUtils.getEntities();
124
	    for (Long entityId : map.keySet()) {
125
            Entity entity = map.get(entityId);
126
            if (entity == null || entity.getSlides() == null) {
127
                continue;
128
            }
129
 
130
            for (Slide slide : entity.getSlides()) {
131
                if (slide.getSlideDefinitionID() == 130005) {
132
                	List<Feature> features = slide.getFeatures();
133
                	for(Feature f: features){
134
                		if(f.getFeatureDefinitionID()==120012){
135
                			List<Bullet> bs = f.getBullets();
136
                			for(Bullet b : bs){
137
                			String value = ((PrimitiveDataObject)b.getDataObject()).getValue();
138
                			if(value.trim().equals("")){
139
                				continue;
140
                			}
141
                			//System.out.println(value);
142
                			long enumValueID= getEnumValueForNetwork(value, entityId);
143
                			/*if(enumValueID == 110371L){
144
                				Logger.log("Set entity:" + entityId + " as proprietary software", entity);
145
                			}*/
146
                			if(enumValueID!=0){
147
                				b.setDataObject(new EnumDataObject(enumValueID));
148
                			}
149
                		}
150
                		}
151
                	}
152
                }
153
 
154
            }
155
 
156
           CreationUtils.updateEntity(entity);
157
	    }
158
	}
159
 
160
 
161
	private long getEnumValueForNetwork(String value, Long entityLong) {
162
		value = value.toLowerCase().replaceAll(" ", "");
163
		Map<String, Long> map = new HashMap<String, Long>();
164
		map.put("quadband(gsm850/900/1800/1900)",	110382L);
165
		map.put("quadband(gsm850/900/1800/1900)-sim1", 110383l);
166
		map.put("quadband(gsm850/900/1800/1900)-sim2", 110384l);
167
		map.put("triband(gsm900/1800/1900)", 110385l);
168
		map.put("triband(gsm900/1800/1900)-sim1", 110386l);
169
		map.put("triband(gsm900/1800/1900)-sim2", 110387l);
170
		map.put("dualband(gsm900/1800)", 110388l);
171
		map.put("dualband(gsm900/1800)-sim1", 110389l);
172
		map.put("dualband(gsm900/1800)-sim2", 110390l);
173
		map.put("cdma800", 110391l); //CDMA 800
174
		map.put("cdma800-sim2", 110392l); //CDMA 800-SIM 2
175
		map.put("cdma800-sim3", 110393l); //CDMA 800-SIM 3
176
 
177
		if(!StringUtils.contains(value, "sim") && StringUtils.contains(value, "850/900/1800/1900")){
178
			return map.get("quadband(gsm850/900/1800/1900)");
179
		}
180
		if(StringUtils.contains(value, "sim1") && StringUtils.contains(value, "850/900/1800/1900")){
181
			return map.get("quadband(gsm850/900/1800/1900)-sim1");
182
		}
183
		if(StringUtils.contains(value, "sim2") && StringUtils.contains(value, "850/900/1800/1900")){
184
			return map.get("quadband(gsm850/900/1800/1900)-sim2");
185
		}
186
		if(!StringUtils.contains(value, "sim") && StringUtils.contains(value, "900/1800/1900")){
187
			return map.get("triband(gsm900/1800/1900)");
188
		}
189
		if(StringUtils.contains(value, "sim1") && StringUtils.contains(value, "900/1800/1900")){
190
			return map.get("triband(gsm900/1800/1900)-sim1");
191
		}
192
		if(StringUtils.contains(value, "sim2") && StringUtils.contains(value, "900/1800/1900")){
193
			return map.get("triband(gsm900/1800/1900)-sim2");
194
		}
195
		if(!StringUtils.contains(value, "sim") && StringUtils.contains(value, "900/1800")){
196
			return map.get("dualband(gsm900/1800)");
197
		}
198
		if(StringUtils.contains(value, "sim1") && StringUtils.contains(value, "900/1800")){
199
			return map.get("dualband(gsm900/1800)-sim1");
200
		}
201
		if(StringUtils.contains(value, "sim2") && StringUtils.contains(value, "900/1800")){
202
			return map.get("dualband(gsm900/1800)-sim2");
203
		}
204
		if(StringUtils.contains(value, "cdma")){
205
			if(StringUtils.contains(value, "sim2")){
206
				return map.get("cdma800-sim2");
207
			}
208
			if(StringUtils.contains(value, "sim3")){
209
				return map.get("cdma800-sim3");
210
			}
211
			return map.get("cdma800");
212
		}
213
		else {
214
			System.out.println("Unknown networks: " + value + " : " + entityLong);
215
			return 0;
216
		}
217
	}
218
 
219
 
457 rajveer 220
	public ContentMigrator(String sourceDbPath, String destinationDbPath) {
2720 mandeep.dh 221
		this.sourceDbPath      = sourceDbPath;
457 rajveer 222
		this.destinationDbPath = destinationDbPath;
223
	}
2720 mandeep.dh 224
 
3873 mandeep.dh 225
	public void migrateWarrantyType() throws Exception {
226
	    Map<Long, Entity> map = CreationUtils.getEntities();
227
	    for (Long entityId : map.keySet()) {
228
            Entity entity = map.get(entityId);
229
            if (entity == null || entity.getSlides() == null) {
230
                continue;
231
            }
232
            for (Slide slide : entity.getSlides()) {
233
                if (slide.getSlideDefinitionID() == 130054) {
234
                    Slide warrantySlide = new Slide(130105);
235
                    warrantySlide.setFeatures(new ArrayList<Feature>());
236
 
237
                    Feature feature = new Feature(120219);
238
                    feature.setBullets(Collections.singletonList(new Bullet(new EnumDataObject(110299))));
239
                    warrantySlide.getFeatures().add(feature);
240
 
241
                    Feature existingWarrantyFeature = null;
242
                    for (Feature summaryFeature : slide.getFeatures()) {
243
                        if (summaryFeature.getFeatureDefinitionID() == 120125) {
244
                            existingWarrantyFeature = summaryFeature;
245
                            warrantySlide.getFeatures().add(summaryFeature);
246
                            break;
247
                        }
248
                    }
249
 
250
                    slide.getFeatures().remove(existingWarrantyFeature);
251
                    slide.addChild(warrantySlide);
252
                    break;
253
                }
254
 
255
            }
256
 
257
            CreationUtils.updateEntity(entity);
258
	    }
259
	}
260
 
2720 mandeep.dh 261
	public void migrateMedia() throws Exception {
262
	    Map<Long, Entity> map = CreationUtils.getEntities();
263
	    for (Long entityId : map.keySet()) {
264
	        Entity entity = map.get(entityId);
265
	        if (entity == null || entity.getSlides() == null) {
266
	            continue;
267
	        }
268
	        for (Slide slide : entity.getSlides()) {
269
	            FreeformContent ffc = slide.getFreeformContent();
270
 
2722 mandeep.dh 271
//	            if (ffc == null || ffc.getMediasNew() == null) {
272
//                    continue;
273
//                }
274
//
275
//                Map<String, Media> newMap = new LinkedHashMap<String, Media>();
276
//                Media media = null;
277
//                for (String label : ffc.getMediasNew().keySet()) {
278
//                    MediaNew m = ffc.getMediasNew().get(label);
279
//                    media = new Media(m.getLabel(), Media.Type.valueOf(m
280
//                            .getType().name()), m.getLocation());
281
//                    media.setTitle(m.getTitle());
282
//                    media.setFileName(m.getFileName());
283
//                    newMap.put(label, media);
284
//                }
285
//                ffc.setMedias(newMap);
286
//                ffc.setMediasNew(null);
2720 mandeep.dh 287
 
288
 
289
//	             if (ffc == null || ffc.getMedias() == null) {
290
//	                 continue;
291
//	             }
292
//                Map<String, MediaNew> newMap = new LinkedHashMap<String, MediaNew>();
293
//                MediaNew mediaNew = null;
294
//                for (String label : ffc.getMedias().keySet()) {
295
//                    Media m = ffc.getMedias().get(label);
296
//                    if (m.getType().equalsIgnoreCase("image")) {
297
//                        mediaNew = new MediaNew(m.getLabel(),
298
//                                MediaNew.Type.IMAGE, m.getLocation());
299
//                        mediaNew.setFileName(m.getFileName());
300
//                    } else if (m.getType().equalsIgnoreCase("youtube")) {
301
//                        if (m.getVideoType().equalsIgnoreCase("withskin")) {
302
//                            mediaNew = new MediaNew(m.getLabel(),
303
//                                    MediaNew.Type.VIDEO_WITH_SKIN,
304
//                                    m.getLocation());
305
//                        } else {
306
//                            mediaNew = new MediaNew(m.getLabel(),
307
//                                    MediaNew.Type.VIDEO_WITHOUT_SKIN,
308
//                                    m.getLocation());
309
//                        }
310
//                    }
311
//
312
//                    if (mediaNew != null) {
313
//                        mediaNew.setTitle(m.getTitle());
314
//                        newMap.put(label, mediaNew);
315
//                    }
316
//                }
317
//                ffc.setMediasNew(newMap);
318
//                ffc.setMedias(null);
319
	        }
320
	        CreationUtils.updateEntity(entity);
321
	    }
322
	}
323
 
2471 rajveer 324
	public boolean populateHelpdocEntityIds() throws Exception{
325
		for(Entity entity: CreationUtils.getEntities().values()){
326
			CreationUtils.updateEntity(entity);
327
		}
328
		return true;
329
	}
2720 mandeep.dh 330
 
2287 rajveer 331
	public boolean migrateBrandModel(String dryRun) throws Exception{
3127 rajveer 332
		CatalogClient catalogServiceClient = new CatalogClient();
2287 rajveer 333
		Client client = catalogServiceClient.getClient();
334
		List<Item> items = client.getAllItemsByStatus(status.ACTIVE);
335
		items.addAll(client.getAllItemsByStatus(status.PAUSED));
336
		items.addAll(client.getAllItemsByStatus(status.CONTENT_COMPLETE));
337
		Map<Long, Entity> entities = CreationUtils.getEntities();
338
		long count = 0;
339
		StringBuffer sb = new StringBuffer();
340
		for(Item item:items){
341
			long entityId = item.getCatalogItemId();
342
			Entity entity = entities.get(entityId);
2292 rajveer 343
			if(entity==null){
344
				continue;
345
			}
2294 rajveer 346
			String itemBrand = item.getBrand().trim();
2287 rajveer 347
			String itemModelName = item.getModelName();
2294 rajveer 348
			if(itemModelName!=null){
349
				itemModelName = itemModelName.trim();
350
			}
351
			String itemModelNumber = item.getModelNumber().trim();
352
			String entityBrand = entity.getBrand().trim();
353
			String entityModelName = entity.getModelName().trim();
354
			if(entityModelName!=null){
355
				entityModelName = entityModelName.trim();
356
			}
357
			String entityModelNumber = entity.getModelNumber().trim();
2287 rajveer 358
 
2292 rajveer 359
			if(itemBrand.equals(entityBrand) && itemModelNumber.equals(entityModelNumber)){
360
				if(itemModelName!=null && entityModelName !=null &&  itemModelName.equals(entityModelName)){
361
					continue;	
362
				}else if(itemModelName==null && entityModelName ==null){
363
					continue;
364
				}
365
 
2287 rajveer 366
			}
367
			count++;
2292 rajveer 368
			sb.append(count + ") Item:   " + itemBrand + "\t" + itemModelName + "\t" + itemModelNumber+ "\t"+ item.getId() + "\n");
369
			sb.append(count + ") Entity: " + entityBrand + "\t" + entityModelName + "\t" + entityModelNumber+ "\t" + entity.getID() + "\n");
370
 
2287 rajveer 371
			if(dryRun.equals("false")){
2294 rajveer 372
				item.setBrand(entityBrand);
373
				item.setModelName(entityModelName);
374
				item.setModelNumber(entityModelNumber);
2287 rajveer 375
				client.updateItem(item);				
376
			}
377
		}
378
		System.out.println(sb.toString());
379
		return true;
380
	}
2720 mandeep.dh 381
 
473 rajveer 382
	/**
383
	 * this function will read source definition and source entities, and will convert
384
	 * source entities to destination entities according to destination definitions.  
385
	 * 
386
	 * @return boolean
479 rajveer 387
	 * @throws Exception 
473 rajveer 388
	 */
1226 rajveer 389
 
390
	public void printSlides() throws Exception{
391
		DefinitionsContainer defc = Catalog.getInstance().getDefinitionsContainer();
392
		for(Category category: defc.getCategories().values()){
393
			if(category.getChildrenCategory()!=null)continue;
394
			System.out.println(category.getID() + "\t" +category.getLabel());
395
			for(CategorySlideDefinition defs: defc.getCategorySlideDefinitions(category.getID())){
396
				System.out.println(defs.getSlideDefintionID() + "\t" + defs.getEditorialImportance() + "\t" +  defc.getSlideDefinition(defs.getSlideDefintionID()).getLabel()+"\t"+defc.getSlideDefinition(defs.getSlideDefintionID()).getChildrenSlideDefinitionIDs());
397
			}
398
		}
399
	}
580 rajveer 400
 
1226 rajveer 401
	public void removeBrowserBullets() throws Exception{
402
		Map<Long, List<ExpandedBullet>> learnedBullets =  CreationUtils.getLearnedBullets();
403
		learnedBullets.get(new Long(120076));
404
		learnedBullets.remove(new Long(120076));
405
		CreationUtils.storeLearnedBullets(learnedBullets);
406
 
407
	}
408
 
409
	public boolean changeEntityState() throws Exception{
410
		Map<Long, EntityState> entitiesState = CreationUtils.getEntitiesState();
411
		for(Long entityId: entitiesState.keySet()){
412
			EntityState state = entitiesState.get(entityId);
413
			if(state.getCategoryID() == 10002 || state.getCategoryID() == 10003 || state.getCategoryID() == 10004 || state.getCategoryID() == 10005){
414
				state.setCompletedBy("");
415
				state.setMerkedReadyBy("");
416
				//state.setStatus(EntityStatus.ASSIGNED);
417
				//CreationUtils.updateEntityState(state);
418
				System.out.println(entityId + ":" + state.getStatus());
419
			}
420
			CreationUtils.updateEntityState(state);
421
		}
422
		return true;
423
	}
424
 
1739 rajveer 425
 
2300 rajveer 426
	   public boolean migrateDataBack() throws Exception{
427
	        Map<Long, Entity> entities = CreationUtils.getEntities();
428
	        for(Entity entity: entities.values()){
429
	        	if(entity==null){
430
	        		continue;
431
	        	}
432
	            List<Slide> slides = entity.getSlides();
433
	            if(slides!=null){
434
	                for(Slide slide: slides){
435
	                    if(slide.getSlideDefinitionID() == 130054){
436
	                        List<Feature> features = slide.getFeatures();
437
	                        int length = features.size();
438
	                        features.remove(length-1);
439
	                        features.remove(length-2);
440
	                        features.remove(length-3);
441
	                        /*
442
	                        boolean a = false,b=false,c=false;
443
	                        for(Feature feature: features){
444
	                        	switch ((int)feature.getFeatureDefinitionID()) {
445
								case 120132:
446
									if(a){
447
 
448
									}else{
449
										a=true;
450
									}
451
									break;
452
								case 120133:
453
									break;
454
								case 120134:
455
									break;
456
								default:
457
									break;
458
								}
459
	                        }
460
	                        */	                        
461
	                        CreationUtils.updateEntity(entity);
462
	                    }
463
	                }
464
	            }
465
	        }
466
	    return true;
467
	    }
468
 
469
 
1739 rajveer 470
	   public boolean migrateData() throws Exception{
471
	        Map<Long, Entity> entities = CreationUtils.getEntities();
472
	        for(Entity entity: entities.values()){
473
	            ExpandedEntity expEntity = new ExpandedEntity(entity);
474
	            List<Slide> slides = entity.getSlides();
475
	            if(slides!=null){
476
	                for(Slide slide: slides){
477
	                    if(slide.getSlideDefinitionID() == 130054){
478
	                        List<Feature> features = slide.getFeatures();
479
	                        String title = expEntity.getBrand() + " " + expEntity.getModelName()+ " " 
480
	                        + expEntity.getModelNumber();
2300 rajveer 481
   	                    if(expEntity.getCategory().getParentCategory().getID() == 10001) {
482
   	                        title +=  " | " + expEntity.getBrand() + " Mobile Phones";
483
   	                    }
484
   	                    if(expEntity.getCategory().getParentCategory().getID() == 10011) {
485
   	                        title += " " + expEntity.getCategory().getLabel()
486
   	                            + " | " + expEntity.getBrand() + " Mobile Phone Accessories";
487
   	                    }
488
   	                    title += " | Saholic.com";
489
 
1739 rajveer 490
	                        //Add page title
491
	                        Feature feature1 = new Feature(120132);
492
	                        PrimitiveDataObject pdo1 = new PrimitiveDataObject(title);
493
	                        List<Bullet> bullets1 = new ArrayList<Bullet>();
494
	                        Bullet bullet1 = new Bullet(pdo1);
495
	                        bullets1.add(bullet1);
496
	                        feature1.setBullets(bullets1);
497
	                        features.add(feature1);
498
 
499
 
500
	                        String description = "Best Price " + expEntity.getBrand() + " " + expEntity.getModelName() 
501
	                        + " " + expEntity.getModelNumber() + " ";
502
 
2300 rajveer 503
   	                    if(expEntity.getCategory().getParentCategory().getID() == 10011) {
504
   	                        description += expEntity.getCategory().getLabel() + " in India.";
505
   	                    }
506
   	                    else {
507
   	                        description += ".";
508
   	                    }
509
   	                    description += " Experience n' buy online. FREE Next Day delivery."
510
   	                        + " Original product - Full manufacturer warranty. Comprehensive reviews.";
511
 
512
   	                    description = description.replaceAll("--", "-");
513
 
1739 rajveer 514
	                        //Add meta description
515
	                        Feature feature2 = new Feature(120133);
2300 rajveer 516
                           PrimitiveDataObject pdo2 = new PrimitiveDataObject(description);
517
                           List<Bullet> bullets2 = new ArrayList<Bullet>();
518
                           Bullet bullet2 = new Bullet(pdo2);
519
                           bullets2.add(bullet2);
520
                           feature2.setBullets(bullets2);	 
521
 
522
                           features.add(feature2);
523
 
524
 
525
                           String keywords = expEntity.getBrand() + " " + expEntity.getModelName() + " " + expEntity.getModelNumber() + ", ";
526
                           if(expEntity.getCategory().getParentCategory().getID() == 10001) {
527
                               keywords += expEntity.getBrand() + " mobile phones, ";
528
                           }
529
                           if(expEntity.getCategory().getParentCategory().getID() == 10011) {
530
                               keywords += "phone accessories, ";
531
                           }
532
                           keywords += expEntity.getBrand() + " " + expEntity.getModelName() + " " + expEntity.getModelNumber() + " Price, ";
533
                           keywords += expEntity.getBrand() + " " + expEntity.getModelName() + " " + expEntity.getModelNumber() + " India, ";
534
                           if(expEntity.getCategory().getParentCategory().getID() == 10001) {
535
                               keywords += expEntity.getBrand() + " " + expEntity.getModelName() + " " + expEntity.getModelNumber() + " Review, ";
536
                           }
537
                           //Add meta keyborad
1739 rajveer 538
	                        Feature feature3 = new Feature(120134);
539
	                        PrimitiveDataObject pdo3 = new PrimitiveDataObject(keywords);
540
	                        List<Bullet> bullets3 = new ArrayList<Bullet>();
541
	                        Bullet bullet3 = new Bullet(pdo3);
542
	                        bullets3.add(bullet3);
543
	                        feature3.setBullets(bullets3);
544
 
545
	                        features.add(feature3);
546
 
547
	                        CreationUtils.updateEntity(entity);
548
	                    }
549
	                }
550
	            }
551
	        }
552
	    return true;
553
	    }
554
 
2300 rajveer 555
 
556
	   public boolean migrateModel2() throws Exception{
1226 rajveer 557
		Map<Long, Entity> entities = CreationUtils.getEntities();
558
		for(Entity entity: entities.values()){
559
			List<Slide> slides = entity.getSlides();
560
			if(slides!=null){
561
				for(Slide slide: slides){
562
					if(slide.getSlideDefinitionID() == 130011){
563
						for(Feature feature: slide.getFeatures()){
564
							if(feature.getFeatureDefinitionID() == 120054){
1230 rajveer 565
		//						feature.setFeatureDefinitionID(120030);
1226 rajveer 566
								System.out.println("* " + entity.getID() + ":" + entity.getCategoryID());
567
							}
568
						}
569
					}
570
 
571
					if(slide.getSlideDefinitionID() == 130029){
572
						//System.out.println("** " + entity.getID() + ":" + entity.getCategoryID());
573
						if(entity.getCategoryID() == 10002){
574
							Feature feature = new Feature(120051);
575
							slide.getFeatures().add(feature);
576
							System.out.println("** " + entity.getID() + ":" + entity.getCategoryID());
577
						}
578
					}
579
 
580
				}
581
			}
582
			CreationUtils.updateEntity(entity);
583
		}
584
	return true;
585
	}
1230 rajveer 586
	/*
1226 rajveer 587
	public boolean migrateModel1() throws Exception{
588
		//DefinitionsContainer oldDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" + File.separator);
589
		//DefinitionsContainer newDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" + File.separator);
590
 
591
		Map<Long, Entity> entities = CreationUtils.getEntities();
592
		for(Entity entity: entities.values()){
593
			List<Long> slideSequence = entity.getSlideSequence();
594
			Map<Long,Long> removeMap = new HashMap<Long, Long>();
595
			List<Slide> slides = entity.getSlides();
596
			if(slides!=null){
597
				for(Slide slide: slides){
598
					List<Feature> features;
599
					Slide childSlide;
600
					switch ((int)slide.getSlideDefinitionID()) {
601
 
602
					//Keyboard
603
					case 130004:
604
					case 130026:
605
					case 130027:
606
					case 130057:
607
						removeMap.put(slide.getSlideDefinitionID(), (long)130026);	
608
						slide.setSlideDefinitionID(130026);
609
						break;
610
 
611
					//Voice Calling
612
					case 130005:
613
						removeMap.put(slide.getSlideDefinitionID(), (long)130005);
614
						slide.setSlideDefinitionID(130005);
615
						features = new ArrayList<Feature>();
616
						features.addAll(slide.getFeatures());
617
						childSlide = slide.getChildrenSlides().get(0);
618
						features.addAll(childSlide.getFeatures());
619
						if(childSlide.getFreeformContent()!=null){
620
							System.out.println("Voice Calling : HAS FFC : " + childSlide.getFreeformContent().getFreeformText() + childSlide.getFreeformContent().getMedias());
621
						}
622
						slide.setChildrenSlides(null);
623
						slide.setFeatures(features);
624
						break;
625
					case 130035:
626
						removeMap.put(slide.getSlideDefinitionID(), (long)130005);
627
						slide.setSlideDefinitionID(130005);
628
						for(Feature feata: slide.getFeatures()){
629
							if(feata.getFeatureDefinitionID()==120055){
630
								feata.setFeatureDefinitionID(120012);
631
							}
632
						}
633
						break;
634
 
635
					//Data Connectivity
636
					case 130007:
637
					case 130028:
638
						removeMap.put(slide.getSlideDefinitionID(), (long)130007);
639
						slide.setSlideDefinitionID(130007);
640
						break;
641
 
642
					//Music
643
					case 130029:
644
					case 130030:
645
					case 130008:
646
						removeMap.put(slide.getSlideDefinitionID(), (long)130029);
647
						slide.setSlideDefinitionID(130029);
648
						break;
649
 
650
					//Video
651
					case 130031:
652
					case 130009:
653
						removeMap.put(slide.getSlideDefinitionID(), (long)130031);
654
						slide.setSlideDefinitionID(130031);
655
						break;
656
 
657
					//Camera
658
					case 130010:
659
					case 130036:
660
					case 130037:
661
						removeMap.put(slide.getSlideDefinitionID(), (long)130010);
662
						slide.setSlideDefinitionID(130010);
663
						break;
664
					case 130060:
665
						removeMap.put(slide.getSlideDefinitionID(), (long)130010);
666
						slide.setSlideDefinitionID(130010);
667
 
668
						features =  slide.getFeatures();
669
						// Just to add camera feature in basic phones
670
						Feature feature = new Feature(120056);
671
						List<Bullet> bullets =  new ArrayList<Bullet>();
672
						PrimitiveDataObject pdo = new PrimitiveDataObject("1");
673
						Bullet bullet = new Bullet(pdo);
674
						bullets.add(bullet);
675
						feature.setBullets(bullets);
676
						features.add(feature);
677
						//Created new feature
678
						break;
679
 
680
					//Memory
681
					case 130011:
682
						removeMap.put(slide.getSlideDefinitionID(), (long)130011);
683
						slide.setSlideDefinitionID(130011);
684
						break;
685
					case 130032:
686
					case 130061:
687
						removeMap.put(slide.getSlideDefinitionID(), (long)130011);
688
						slide.setSlideDefinitionID(130011);
689
						features =  slide.getFeatures();
690
						for(Feature feat: features){
691
							if(feat.getFeatureDefinitionID() == 120054){
692
								feat.setFeatureDefinitionID(120030);
693
							}
694
						}
695
						break;
696
 
697
					//Battery
698
					case 130044:
699
						removeMap.put(slide.getSlideDefinitionID(), (long)130043);
700
						slide.setSlideDefinitionID(130043);
701
						if(slide.getChildrenSlides().get(0).getSlideDefinitionID() == 130047){
702
							slide.getChildrenSlides().get(0).setSlideDefinitionID(130046);
703
						}
704
						break;
705
 
706
					case 130042:
707
						removeMap.put(slide.getSlideDefinitionID(), (long)130043);
708
						slide.setSlideDefinitionID(130043);
709
						childSlide = slide.getChildrenSlides().get(0);
710
						if(childSlide.getSlideDefinitionID() == 130045){
711
							childSlide.setSlideDefinitionID(130046);
712
						}
713
 
714
						List<Feature> childFeatures1 = new ArrayList<Feature>();
715
						List<Feature> childFeatures2 = new ArrayList<Feature>();
716
						Slide childChildSlide1 = new Slide(130048);
717
						Slide childChildSlide2 = new Slide(130049);
718
 
719
						childChildSlide1.setFeatures(childFeatures1);
720
						childChildSlide2.setFeatures(childFeatures2);
721
 
722
						childSlide.addChild(childChildSlide1);
723
						childSlide.addChild(childChildSlide2);
724
 
725
 
726
						for(Feature f: childSlide.getFeatures()){
727
							if(f.getFeatureDefinitionID() == 120063){
728
								f.setFeatureDefinitionID(120068);
729
								childFeatures1.add(f);
730
							}
731
							if(f.getFeatureDefinitionID() == 120064){
732
								f.setFeatureDefinitionID(120069);
733
								childFeatures2.add(f);
734
							}
735
						}
736
 
737
						childSlide.setFeatures(null);
738
 
739
						break;
740
 
741
					case 130062:
742
						removeMap.put(slide.getSlideDefinitionID(), (long)130043);
743
						slide.setSlideDefinitionID(130043);
744
 
745
						childSlide = new Slide(130046);
746
						features = new ArrayList<Feature>();
747
 
748
						slide.addChild(childSlide);
749
 
750
						List<Feature> childFeatures11 = new ArrayList<Feature>();
751
						List<Feature> childFeatures21 = new ArrayList<Feature>();
752
						Slide childChildSlide11 = new Slide(130048);
753
						Slide childChildSlide21 = new Slide(130049);
754
 
755
						childChildSlide11.setFeatures(childFeatures11);
756
						childChildSlide21.setFeatures(childFeatures21);
757
 
758
						childSlide.addChild(childChildSlide11);
759
						childSlide.addChild(childChildSlide21);
760
						for(Feature f: slide.getFeatures()){
761
							if(f.getFeatureDefinitionID() == 120072){
762
								features.add(f);
763
							}
764
							if(f.getFeatureDefinitionID() == 120073){
765
								features.add(f);
766
							}
767
							if(f.getFeatureDefinitionID() == 120063){
768
								f.setFeatureDefinitionID(120068);
769
								childFeatures11.add(f);
770
							}
771
							if(f.getFeatureDefinitionID() == 120064){
772
								f.setFeatureDefinitionID(120069);
773
								childFeatures21.add(f);
774
							}
775
						}
776
						slide.setFeatures(features);
777
						break;
778
 
779
 
780
					//Mail n Msg
781
					case 130041:
782
					case 130063:
783
						removeMap.put(slide.getSlideDefinitionID(), (long)130039);
784
						slide.setSlideDefinitionID(130039);
785
						break;
786
					case 130039:
787
						removeMap.put(slide.getSlideDefinitionID(), (long)130039);
788
						slide.setSlideDefinitionID(130039);
789
 
790
						childSlide = slide.getChildrenSlides().get(0);
791
						slide.setFeatures(childSlide.getFeatures());
792
						if(childSlide.getFreeformContent()!=null){
793
							System.out.println("Mail n Msg : HAS FFC : " + childSlide.getFreeformContent().getFreeformText() + childSlide.getFreeformContent().getMedias());
794
						}
795
						slide.setChildrenSlides(null);
796
						break;
797
 
798
					//Software
799
					case 130020:
800
					case 130034:
801
						removeMap.put(slide.getSlideDefinitionID(), (long)130020);
802
						slide.setSlideDefinitionID(130020);
803
						break;
804
 
805
 
806
					//Internet
807
					case 130050:
808
						removeMap.put(slide.getSlideDefinitionID(), (long)130050);
809
						slide.setSlideDefinitionID(130050);
810
						slide.setFeatures(slide.getChildrenSlides().get(0).getFeatures());
811
 
812
						if(slide.getChildrenSlides().get(0).getFreeformContent()!=null){
813
							String ffc = slide.getFreeformContent().getFreeformText();
814
							if(slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText()!=null){
815
								if(slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText().trim()!=""){
816
									ffc = ffc + "\n *********    " + slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText();
817
									System.out.println("**************" + slide.getChildrenSlides().get(0).getFreeformContent().getFreeformText());
818
								}
819
							}
820
 
821
							List<String> ffcs = new ArrayList<String>();
822
							ffcs.add(ffc);
823
							slide.getFreeformContent().setFreeformTexts(ffcs);
824
						}
825
 
826
						slide.setChildrenSlides(null);
827
						//System.out.println("Slide: 130050");
828
						//printSlideContent(slide);
829
						break;
830
 
831
					case 130052:
832
						removeMap.put(slide.getSlideDefinitionID(), (long)130050);
833
						slide.setSlideDefinitionID(130050);
834
 
835
						for(Feature f2: slide.getFeatures()){
836
							if(f2.getFeatureDefinitionID() == 120077){
837
								f2.setFeatureDefinitionID(120074);
838
//								List<Bullet> newBullets = new ArrayList<Bullet>();
839
//								for(Bullet bul: f2.getBullets()){
840
//									CompositeDataObject cdo =  (CompositeDataObject) bul.getDataObject();
841
//									for(PrimitiveDataObject pdo1: cdo.getPrimitiveDataObjects()){
842
//										pdo1.getValue();
843
//										BulletDataObject bdo2 = new EnumDataObject(enumValueID);
844
//										Bullet newbul = new Bullet(bdo2);
845
//										newBullets.add(newbul);
846
//									}
847
//									
848
//								}
849
//								f2.setBullets(newBullets);
850
							}
851
							if(f2.getFeatureDefinitionID() == 120078){
852
								f2.setFeatureDefinitionID(120075);
853
							}
854
						}
855
//						slide.setFeatures(slide.getChildrenSlides().get(0).getFeatures());
856
//						slide.setChildrenSlides(null);
857
						//System.out.println("Slide: 130052");
858
 
859
						//printSlideContent(slide);
860
						break;
861
 
862
					case 130051:
863
						removeMap.put(slide.getSlideDefinitionID(), (long)130050);
864
						slide.setSlideDefinitionID(130050);
865
//						System.out.println(slide);
866
						//System.out.println("Slide 130051:");
867
		//				printSlideContent(slide);
868
						break;
869
 
870
					default:
871
						break;
872
					}
873
 
874
				}
875
				List<Long> newSequence = new ArrayList<Long>();
876
				for(Long id: slideSequence){
877
					if(removeMap.containsKey(id)){
878
						newSequence.add(removeMap.get(id));
879
					}else{
880
						newSequence.add(id);
881
					}
882
				}
883
				entity.setSlideSequence(newSequence);
884
				CreationUtils.updateEntity(entity);
885
			}
886
		}
887
 
888
		return true;
889
	}
1230 rajveer 890
*/
1226 rajveer 891
 
892
 
893
	public void printSlideContent(Slide slide){
894
 
895
		System.out.println("Slide: " + slide.getFreeformContent().getFreeformText());
896
		if(slide.getFeatures()!=null){
897
			for(Feature feature: slide.getFeatures()){
898
				if(feature.getBullets()!=null){
899
					for(Bullet bullet:feature.getBullets()){
900
						//System.out.println(bullet.getDataObject().toString());
901
						//System.out.println(bullet.getFreeformContent());
902
					}
903
				}
904
				if(feature.getFreeformContent()!=null){
905
					System.out.println("Feature: "+ feature.getFreeformContent().getFreeformText());
906
				}
907
			}
908
		}
909
		if(slide.getChildrenSlides()!=null){
910
			for(Slide sl: slide.getChildrenSlides()){
911
				System.out.println("Child1: ");
912
				printSlideContent(sl);
913
				System.out.println("Child2: ");
914
			}
915
		}
916
 
917
	}
1230 rajveer 918
	/*
1226 rajveer 919
	public boolean migrateModel() throws Exception{
920
		//DefinitionsContainer oldDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" + File.separator);
921
		//DefinitionsContainer newDfc = new DefinitionsContainer(Utils.CONTENT_DB_PATH + "olddefinitions" + File.separator);
922
 
923
		Map<Long, Entity> entities = CreationUtils.getEntities();
924
		for(Entity entity: entities.values()){
925
			List<Slide> slides = entity.getSlides();
926
			if(slides!=null){
927
				List<Slide> newSlides = new ArrayList<Slide>();
928
				for(Slide slide: slides){
929
					Slide newSlide;
930
					List<Feature> features;
931
					Slide childSlide;
932
					switch ((int)slide.getSlideDefinitionID()) {
933
 
934
					//Keyboard
935
					case 130004:
936
					case 130026:
937
					case 130027:
938
					case 130057:
939
						newSlide = new Slide(130026);
940
						newSlide.setChildrenSlides(slide.getChildrenSlides());
941
						newSlide.setFeatures(slide.getFeatures());
942
						newSlide.setFreeformContent(slide.getFreeformContent());
943
						newSlides.add(newSlide);
944
						break;
945
 
946
					//Voice Calling
947
					case 130005:
948
						newSlide = new Slide(130005);
949
						newSlide.setChildrenSlides(null);
950
						features = new ArrayList<Feature>();
951
						features.addAll(slide.getFeatures());
952
						childSlide = slide.getChildrenSlides().get(0);
953
						features.addAll(childSlide.getFeatures());
954
						if(childSlide.getFreeformContent()!=null){
955
							System.out.println("Voice Calling : HAS FFC : " + childSlide.getFreeformContent().getFreeformText() + childSlide.getFreeformContent().getMedias());
956
						}
957
						newSlide.setFeatures(features);
958
						newSlide.setFreeformContent(slide.getFreeformContent());
959
						newSlides.add(newSlide);						
960
						break;
961
					case 130035:
962
						newSlide = new Slide(130035);
963
						newSlide.setChildrenSlides(slide.getChildrenSlides());
964
						for(Feature feata: slide.getFeatures()){
965
							if(feata.getFeatureDefinitionID()==120055){
966
								feata.setFeatureDefinitionID(120012);
967
							}
968
						}
969
						newSlide.setFeatures(slide.getFeatures());
970
						newSlide.setFreeformContent(slide.getFreeformContent());
971
						newSlides.add(newSlide);						
972
						break;
973
 
974
					//Data Connectivity
975
					case 130007:
976
					case 130028:
977
						newSlide = new Slide(130007);
978
						newSlide.setChildrenSlides(slide.getChildrenSlides());
979
						newSlide.setFeatures(slide.getFeatures());
980
						newSlide.setFreeformContent(slide.getFreeformContent());
981
						newSlides.add(newSlide);
982
						break;
983
 
984
					//Music
985
					case 130029:
986
					case 130030:
987
					case 130008:
988
						newSlide = new Slide(130029);
989
						newSlide.setChildrenSlides(slide.getChildrenSlides());
990
						newSlide.setFeatures(slide.getFeatures());
991
						newSlide.setFreeformContent(slide.getFreeformContent());
992
						newSlides.add(newSlide);
993
						break;
994
 
995
					//Video
996
					case 130031:
997
					case 130009:
998
						newSlide = new Slide(130031);
999
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1000
						newSlide.setFeatures(slide.getFeatures());
1001
						newSlide.setFreeformContent(slide.getFreeformContent());
1002
						newSlides.add(newSlide);
1003
						break;
1004
 
1005
					//Camera
1006
					case 130010:
1007
					case 130036:
1008
					case 130037:
1009
						newSlide = new Slide(130010);
1010
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1011
						newSlide.setFeatures(slide.getFeatures());
1012
						newSlide.setFreeformContent(slide.getFreeformContent());
1013
						newSlides.add(newSlide);
1014
						break;
1015
					case 130060:
1016
						newSlide = new Slide(130010);
1017
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1018
						features =  slide.getFeatures();
1019
						// Just to add camera feature in basic phones
1020
						Feature feature = new Feature(120056);
1021
						List<Bullet> bullets =  new ArrayList<Bullet>();
1022
						PrimitiveDataObject pdo = new PrimitiveDataObject("1");
1023
						Bullet bullet = new Bullet(pdo);
1024
						bullets.add(bullet);
1025
						feature.setBullets(bullets);
1026
						features.add(feature);
1027
						//Created new feature
1028
						newSlide.setFeatures(features);
1029
						newSlide.setFreeformContent(slide.getFreeformContent());
1030
						newSlides.add(newSlide);
1031
						break;
1032
 
1033
					//Memory
1034
					case 130011:
1035
						newSlide = new Slide(130011);
1036
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1037
						newSlide.setFeatures(slide.getFeatures());
1038
						newSlide.setFreeformContent(slide.getFreeformContent());
1039
						newSlides.add(newSlide);
1040
						break;
1041
					case 130032:
1042
					case 130061:
1043
						newSlide = new Slide(130011);
1044
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1045
						features =  slide.getFeatures();
1046
						for(Feature feat: features){
1047
							if(feat.getFeatureDefinitionID() == 130054){
1048
								feat.setFeatureDefinitionID(120030);
1049
							}
1050
						}
1051
						newSlide.setFeatures(slide.getFeatures());
1052
						newSlide.setFreeformContent(slide.getFreeformContent());
1053
						newSlides.add(newSlide);
1054
						break;
1055
 
1056
					//Battery
1057
					case 130044:
1058
						newSlide = new Slide(130043);
1059
						if(slide.getChildrenSlides().get(0).getSlideDefinitionID() == 130047){
1060
							slide.getChildrenSlides().get(0).setSlideDefinitionID(130046);
1061
						}
1062
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1063
						newSlide.setFeatures(slide.getFeatures());
1064
						newSlide.setFreeformContent(slide.getFreeformContent());
1065
						newSlides.add(newSlide);
1066
						break;
1067
 
1068
					case 130042:
1069
						newSlide = new Slide(130043);
1070
						childSlide = slide.getChildrenSlides().get(0);
1071
						if(childSlide.getSlideDefinitionID() == 130045){
1072
							childSlide.setSlideDefinitionID(130046);
1073
						}
1074
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1075
 
1076
						List<Feature> childFeatures1 = new ArrayList<Feature>();
1077
						List<Feature> childFeatures2 = new ArrayList<Feature>();
1078
						Slide childChildSlide1 = new Slide(130048);
1079
						Slide childChildSlide2 = new Slide(130049);
1080
 
1081
						childChildSlide1.setFeatures(childFeatures1);
1082
						childChildSlide2.setFeatures(childFeatures2);
1083
 
1084
						childSlide.addChild(childChildSlide1);
1085
						childSlide.addChild(childChildSlide2);
1086
 
1087
 
1088
						for(Feature f: childSlide.getFeatures()){
1089
							if(f.getFeatureDefinitionID() == 120063){
1090
								f.setFeatureDefinitionID(120068);
1091
								childFeatures1.add(f);
1092
							}
1093
							if(f.getFeatureDefinitionID() == 120064){
1094
								f.setFeatureDefinitionID(120069);
1095
								childFeatures2.add(f);
1096
							}
1097
						}
1098
 
1099
						childSlide.setFeatures(null);
1100
 
1101
						newSlide.setFeatures(slide.getFeatures());
1102
						newSlide.setFreeformContent(slide.getFreeformContent());
1103
						newSlides.add(newSlide);
1104
						break;
1105
 
1106
					case 130062:
1107
						newSlide = new Slide(130043);
1108
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1109
						childSlide = new Slide(130046);
1110
						features = new ArrayList<Feature>();
1111
						newSlide.setFeatures(features);
1112
						newSlide.addChild(childSlide);
1113
 
1114
						List<Feature> childFeatures11 = new ArrayList<Feature>();
1115
						List<Feature> childFeatures21 = new ArrayList<Feature>();
1116
						Slide childChildSlide11 = new Slide(130048);
1117
						Slide childChildSlide21 = new Slide(130049);
1118
 
1119
						childChildSlide11.setFeatures(childFeatures11);
1120
						childChildSlide21.setFeatures(childFeatures21);
1121
 
1122
						childSlide.addChild(childChildSlide11);
1123
						childSlide.addChild(childChildSlide21);
1124
						for(Feature f: slide.getFeatures()){
1125
							if(f.getFeatureDefinitionID() == 120072){
1126
								features.add(f);
1127
							}
1128
							if(f.getFeatureDefinitionID() == 120073){
1129
								features.add(f);
1130
							}
1131
							if(f.getFeatureDefinitionID() == 120063){
1132
								f.setFeatureDefinitionID(120068);
1133
								childFeatures11.add(f);
1134
							}
1135
							if(f.getFeatureDefinitionID() == 120064){
1136
								f.setFeatureDefinitionID(120069);
1137
								childFeatures21.add(f);
1138
							}
1139
						}
1140
 
1141
						newSlide.setFeatures(slide.getFeatures());
1142
						newSlide.setFreeformContent(slide.getFreeformContent());
1143
						newSlides.add(newSlide);
1144
						break;
1145
 
1146
 
1147
					//Mail n Msg
1148
					case 130041:
1149
					case 130063:
1150
						newSlide = new Slide(130039);
1151
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1152
						newSlide.setFeatures(slide.getFeatures());
1153
						newSlide.setFreeformContent(slide.getFreeformContent());
1154
						newSlides.add(newSlide);
1155
						break;
1156
					case 130039:
1157
						newSlide = new Slide(130039);
1158
						//newSlide.setChildrenSlides(slide.getChildrenSlides());
1159
						childSlide = slide.getChildrenSlides().get(0);
1160
						newSlide.setFeatures(childSlide.getFeatures());
1161
						if(childSlide.getFreeformContent()!=null){
1162
							System.out.println("Mail n Msg : HAS FFC : " + childSlide.getFreeformContent().getFreeformText() + childSlide.getFreeformContent().getMedias());
1163
						}
1164
						newSlide.setFreeformContent(slide.getFreeformContent());
1165
						newSlides.add(newSlide);
1166
						break;
1167
 
1168
					//Software
1169
					case 130020:
1170
					case 130034:
1171
						newSlide = new Slide(130034);
1172
						newSlide.setChildrenSlides(slide.getChildrenSlides());
1173
						features =  slide.getFeatures();
1174
						newSlide.setFeatures(slide.getFeatures());
1175
						newSlide.setFreeformContent(slide.getFreeformContent());
1176
						newSlides.add(newSlide);
1177
						break;
1178
 
1179
 
1180
					default:
1181
						newSlides.add(slide);
1182
						break;
1183
					}
1184
				}
1185
				entity.setSlides(newSlides);
1186
				CreationUtils.updateEntity(entity);
1187
			}
1188
		}
1189
 
1190
		return true;
1191
	}
1230 rajveer 1192
 
1193
	*/
1226 rajveer 1194
	public boolean migrateRemoveBorrowedCategoryIdFromSlide() throws Exception{
1195
		Map<Long, Entity> entities = CreationUtils.getEntities();
1196
		for(Entity entity: entities.values()){
1197
			if(entity.getID() == 0){
1198
				CreationUtils.deleteEntity(entity.getID());
1199
			}
1200
			List<Slide> slides = entity.getSlides();
1201
			if(slides!=null){
1202
				List<Slide> newSlides = new ArrayList<Slide>();
1203
				for(Slide slide: slides){
1204
					Slide newSlide = new Slide(slide.getSlideDefinitionID());
1205
					newSlide.setChildrenSlides(slide.getChildrenSlides());
1206
					newSlide.setFeatures(slide.getFeatures());
1207
					newSlide.setFreeformContent(slide.getFreeformContent());
1208
					newSlides.add(newSlide);
1209
				}
1210
				entity.setSlides(newSlides);
1211
				CreationUtils.updateEntity(entity);
1212
			}
1213
		}
1214
		return true;
1215
	}
479 rajveer 1216
	public boolean migrate() throws Exception{
580 rajveer 1217
	/*	 
473 rajveer 1218
		DefinitionsContainer sourceDefs = new DefinitionsContainer(sourceDbPath);
1219
		DefinitionsContainer destinationDefs = new DefinitionsContainer(destinationDbPath);
1220
		EntityContainer sourceEnts = new EntityContainer(sourceDbPath);
1221
		EntityContainer destinationEnts = new EntityContainer(destinationDbPath);
1222
 
479 rajveer 1223
		Map<Long, Entity> entities = sourceEnts.getEntities();
473 rajveer 1224
 
479 rajveer 1225
		File f = new File("/home/rajveer/Desktop/info.txt");
1226
		FileWriter fstream = new FileWriter(f);
1227
        BufferedWriter out = new BufferedWriter(fstream);
1228
        StringBuilder sb = new StringBuilder();
1229
 
1230
 
1231
		for(Entity entity: entities.values()){
1232
			List<Slide> slides = entity.getSlides();
1233
 
1234
			//List<String> vidLabels = CreationUtils.getMediaLabels(entity.getID(),"youtube");
1235
			//List<String> imgLabels = CreationUtils.getMediaLabels(entity.getID(),"image");
1236
 
1237
			//Map<String, Media> rawMedia = CreationUtils.getRawMedia(entity.getID());
1238
 
1239
 
1240
//			List<String> vidLabels = OldCreationUtils.getMediaLabels(entity.getID(),"youtube");
1241
//			List<String> imgLabels = OldCreationUtils.getMediaLabels(entity.getID(),"image");
1242
 
1243
			Entity newEntity = new Entity(entity.getID(), entity.getCategoryID());
1244
			newEntity.setBrand(entity.getBrand());
1245
			newEntity.setModelName(entity.getModelName());
1246
			newEntity.setModelNumber(entity.getModelNumber());
1247
 
1248
 
1249
			Map<String, in.shop2020.creation.util.Media> rawMedia = OldCreationUtils.getRawMedia(entity.getID());
1250
 
1251
			Map<String, Media> newrawMedia = new HashMap<String, Media>();
1252
 
1253
 
1254
			int totalRawVideos = 0;
1255
			int totalRawImages = 0;
1256
 
1257
			if(rawMedia!=null){
1258
				for(String label: rawMedia.keySet()){
1259
					in.shop2020.creation.util.Media media = rawMedia.get(label);
1260
 
1261
					label = media.getLabel();
1262
					String type = media.getType();
1263
					String location = media.getLocation();
1264
 
1265
					Media newMedia = new Media(label, type, location);
1266
 
1267
					newMedia.setTitle("Title");
1268
					if(type.equals("image")){
1269
						totalRawImages++;
1270
						newMedia.setFileName(media.getFileName());
1271
						newMedia.setVideoType("");
1272
					}else{
1273
						totalRawVideos++;
1274
						newMedia.setVideoType("withoutskin");
1275
						newMedia.setFileName("");
1276
					}
1277
 
1278
					newrawMedia.put(label, newMedia);
1279
					System.out.println("old " + media.toString());
1280
	//				System.out.println("new " + newMedia.toString());
1281
	//				OldCreationUtils.removeMedia(entity.getID(), label);
580 rajveer 1282
	//				CreationUtils.addMedia(entity.getID(), newMedia);
479 rajveer 1283
				}
1284
			}
1285
 
1286
			int totalVideos = 0;
1287
			int totalImages = 0;
580 rajveer 1288
			if(rawMedia==null){
479 rajveer 1289
			for(Slide slide: slides ){
580 rajveer 1290
			*/
1291
				/*
479 rajveer 1292
				FreeformContent ffc = slide.getFreeformContent();
1293
				List<String> vidList = new ArrayList<String>();
1294
				List<String> imgList = new ArrayList<String>();
1295
 
1296
				if(ffc!=null){
1297
					List<String> vidFfcLabels = ffc.getYoutubeRefs();
1298
					if(vidFfcLabels!=null){
1299
						for(String vidFfcLabel: vidFfcLabels){
1300
							StringTokenizer strTkn = new StringTokenizer(vidFfcLabel,"~!~");
1301
							String vidLabel = null;
1302
							if(strTkn.hasMoreTokens()){
1303
								vidLabel = strTkn.nextToken();
1304
								vidList.add(vidFfcLabel);
1305
 
1306
//								ffc.removeMedia("youtube", vidFfcLabel);
1307
//								ffc.addMedia("youtube", vidLabel);
1308
							}
1309
							if(vidLabel == null){
1310
								System.out.println("Something is really breaking .. bu ha ha !!!");
1311
							}
1312
							totalVideos++;
1313
						}
1314
					}
1315
					List<String> imgFfcLabels = ffc.getImageRefs();
1316
					if(imgFfcLabels!=null){
1317
						for(String imgFfcLabel: imgFfcLabels){
1318
							StringTokenizer strTkn = new StringTokenizer(imgFfcLabel,"~!~");
1319
							String imgLabel = null;
1320
							if(strTkn.hasMoreTokens()){
1321
								imgLabel = strTkn.nextToken();
1322
								imgList.add(imgFfcLabel);
1323
 
1324
//								ffc.removeMedia("image", imgFfcLabel);
1325
//								ffc.addMedia("image", imgLabel);							
1326
							}
1327
							if(imgLabel == null){
1328
								System.out.println("Something is really breaking .. bu ha ha !!!");
1329
							}
1330
							totalImages++;
1331
						}
1332
					}
1333
 
1334
					for(String vidlab : vidList){
1335
						ffc.removeMedia("youtube", vidlab);
1336
						ffc.addMedia("youtube", (new StringTokenizer(vidlab, "~!~")).nextToken());
1337
					}
1338
					for(String imglab : imgList){
1339
						ffc.removeMedia("image",imglab);
1340
						ffc.addMedia("image", (new StringTokenizer(imglab, "~!~")).nextToken());
1341
					}
1342
					slide.setFreeformContent(ffc);
1343
					System.out.println("Slide id is " + slide.getSlideDefinitionID() + "   vid labels:  " + vidFfcLabels + "   img labels" + imgFfcLabels);
1344
				}
580 rajveer 1345
			*/
1346
		/*
479 rajveer 1347
				newEntity.addSlide(slide);
1348
			}
1349
 
580 rajveer 1350
//			System.out.println("entity:"+ entity.getID() + ":trv:" + totalRawVideos + ":tri:" + totalRawImages +":tv:" + totalVideos +":ti:" + totalImages);
1351
//			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");
1352
			sb.append(entity.getID() + "\n");		
1353
 
1354
 
479 rajveer 1355
			destinationEnts.updateEntity(newEntity);
1356
			CreationUtils.storeEntity(newEntity);
1357
 
1358
			Map<Long, List<Entity>> entitiesByCategory = 
1359
				sourceEnts.getEntitiesbyCategory();
1360
 
580 rajveer 1361
			Map<Long, Entity> xentities = destinationEnts.getEntities();
479 rajveer 1362
 
1363
			CreationUtils.rewriteRepository(xentities, entitiesByCategory);
580 rajveer 1364
			}
1365
			else{
1366
				sb.append("				" + entity.getID() + "\n");
1367
			}
479 rajveer 1368
		}
1369
 
1370
 
1371
		out.write(sb.toString());
1372
		out.close();
1373
		*/
457 rajveer 1374
		return true;
1375
	}
580 rajveer 1376
 
791 rajveer 1377
	private boolean makeEntitiesObject() throws Exception{
1378
		//DefinitionsContainer sourceDefs = new DefinitionsContainer(sourceDbPath);
1379
		//DefinitionsContainer destinationDefs = new DefinitionsContainer(destinationDbPath);
1153 rajveer 1380
		//EntityContainer sourceEnts = new EntityContainer(sourceDbPath);
791 rajveer 1381
		//EntityContainer destinationEnts = new EntityContainer(destinationDbPath);
1382
 
1383
	/*
1384
		Map<Long, List<Entity>> catEntities = sourceEnts.getEntitiesbyCategory();
1385
 
1386
		Map<Long, Entity> entities = sourceEnts.getEntities();
1387
		for(Long catId: catEntities.keySet()){
1388
			List<Entity> ents = catEntities.get(catId);
1389
			for(Entity entity: ents){
1390
				entities.put(entity.getID(), entity);
1391
				System.out.println(entity.getID() + ":"  + entity.getCategoryID() + ":"+  entity.getBrand() + " "+ entity.getModelName() + " " + entity.getModelNumber());
1392
			}
1393
		}
1394
 
1395
		*/
1396
 
1397
		Map<Long, List<Entity>> catEntities = new TreeMap<Long, List<Entity>>();
1398
		Map<Long, Entity> entities = new TreeMap<Long, Entity>();
1399
 
1400
	    FileInputStream fstream = new FileInputStream("/home/rajveer/Desktop/1");
1401
	    DataInputStream in = new DataInputStream(fstream);
1402
	    BufferedReader br = new BufferedReader(new InputStreamReader(in));
1403
	    String strLine;
2720 mandeep.dh 1404
 
791 rajveer 1405
	    while ((strLine = br.readLine()) != null)   {
1406
	    	long entityID = Long.parseLong(strLine);
1407
	    	String entityDBFile = sourceDbPath + "entities" + File.separator + entityID +"/entity.ser";
1408
	    	System.out.println (entityDBFile);
1409
	    	Entity entity =  (Entity)DBUtils.read(entityDBFile);
1410
	    	entities.put(entityID, entity);
1411
 
1412
	    	List<Entity> catent = catEntities.get(entity.getCategoryID());
1413
	    	if(catent == null){
1414
	    		catent = new ArrayList<Entity>();
1415
	    	}
1416
	    	catent.add(entity);
1417
	    	catEntities.put(entity.getCategoryID(), catent);
1418
	    }
1419
	    in.close();
2720 mandeep.dh 1420
 
791 rajveer 1421
		String entitiesDBFile = sourceDbPath + "entities" + File.separator + "entities.ser";
1422
		String entitiesbycategoryDBFile = sourceDbPath + "entities" + File.separator + "entitiesbycategory.ser";
2720 mandeep.dh 1423
 
791 rajveer 1424
		DBUtils.delete(entitiesDBFile);
1425
		DBUtils.store(entities, entitiesDBFile);
2720 mandeep.dh 1426
 
1427
	    // Remove existing
791 rajveer 1428
		DBUtils.delete(entitiesbycategoryDBFile);
1429
		DBUtils.store(catEntities, entitiesbycategoryDBFile);
2720 mandeep.dh 1430
 
1431
        return false;
791 rajveer 1432
	}
2720 mandeep.dh 1433
 
580 rajveer 1434
	private boolean printDataModel() throws Exception{
1435
		DefinitionsContainer dfc = Catalog.getInstance().getDefinitionsContainer();
1226 rajveer 1436
		StringBuilder sb = new StringBuilder();
2720 mandeep.dh 1437
 
1226 rajveer 1438
		Map<Long, SlideDefinition> allSlideDefs = dfc.getSlideDefinitions();
1439
		for(Long slideDefId: allSlideDefs.keySet()){
1440
			SlideDefinition slideDef = allSlideDefs.get(slideDefId);
1441
			sb.append(slideDefId + " - " + slideDef.getLabel() + "\n");
1442
			if(!slideDef.getChildrenSlideDefinitionIDs().isEmpty()){
1443
				sb.append("Child Slides are: \t" + slideDef.getChildrenSlideDefinitionIDs()+"\n");
1444
			}
1445
			List<SlideFeatureDefinition> featureDefs = slideDef.getSlideFeatureDefinitions();
1446
			for(SlideFeatureDefinition featureDef: featureDefs){
1447
				sb.append("\t" + featureDef.getFeatureDefintionID() + "\t" + dfc.getFeatureDefinition(featureDef.getFeatureDefintionID()).getLabel() + "\t" + featureDef.getEditorialImportance() + "\n");
1448
			}
1449
		}
1450
		System.out.println(sb.toString());
580 rajveer 1451
		Map<Long, Category> categories = dfc.getCategories();
1226 rajveer 1452
		if(categories !=null){
1453
			return true;
1454
		}
580 rajveer 1455
		for(Category category: categories.values()){
1456
			if(category.getChildrenCategory() != null){
1457
				continue;
1458
			}
1226 rajveer 1459
			sb.append(category.getLabel() + "\n");
580 rajveer 1460
			List<CategorySlideDefinition> slideDefs =  dfc.getCategorySlideDefinitions(category.getID());
1226 rajveer 1461
			List<Long> slideSequence = dfc.getCategorySlideSequence(category.getID());
580 rajveer 1462
			for(CategorySlideDefinition slideDef: slideDefs){
1226 rajveer 1463
				sb.append("\t"+ dfc.getSlideDefinition(slideDef.getSlideDefintionID()).getLabel() +  "\t" + slideDef.getEditorialImportance() + "\n");
580 rajveer 1464
				//List<FeatureDefinition> featureDefs = dfc.getFeatureDefinitions(slideDef.getSlideDefintionID());
1465
 
1466
				List<SlideFeatureDefinition> slideFeatureDefs = dfc.getSlideDefinition(slideDef.getSlideDefintionID()).getSlideFeatureDefinitions();
1467
 
1468
				for(SlideFeatureDefinition slideFeatureDef: slideFeatureDefs){
1469
					FeatureDefinition featureDef = dfc.getFeatureDefinition(slideFeatureDef.getFeatureDefintionID());
1470
					BulletDefinition bulletDef = featureDef.getBulletDefinition();
1226 rajveer 1471
					sb.append("\t\t\t"  + featureDef.getLabel() + "\t" + slideFeatureDef.getEditorialImportance() + "\t" +  featureDef.allowsBlank() + "\t" + bulletDef.isLearned() + "\t" + bulletDef.isMultivalue() );
580 rajveer 1472
					List<Long> units = bulletDef.getUnitIDs();
1226 rajveer 1473
					if(bulletDef.getDatatypeDefinitionID()!=null){
1474
						sb.append( "\t" + dfc.getDatatypeDefinition(bulletDef.getDatatypeDefinitionID()).getName());
1475
 
1476
					}
580 rajveer 1477
					if(units!=null){
1478
						for(Long unit: units){
1226 rajveer 1479
							sb.append( "\t" + dfc.getUnit(unit).getFullForm() + "\t" + dfc.getUnit(unit).getShortForm());
580 rajveer 1480
						}
1481
					}
1226 rajveer 1482
					sb.append("\n");
580 rajveer 1483
				}
1484
 
1485
				/*
1486
				for(FeatureDefinition featureDef: featureDefs){
1487
					BulletDefinition bulletDef = featureDef.getBulletDefinition();
1488
					System.out.println("			" + featureDef.getLabel() + " 	" +  featureDef.allowsBlank() + "	" + bulletDef.isLearned() + "	" + bulletDef.isMultivalue());
1489
					List<Long> units = bulletDef.getUnitIDs();
1490
					if(units!=null){
1491
						for(Long unit: units){
1492
							System.out.println("								"+ dfc.getUnit(unit).getFullForm() + "	"+ dfc.getUnit(unit).getShortForm());
1493
						}
1494
					}
1495
					if(bulletDef.getDatatypeDefinitionID()!=null){
1496
						System.out.println("										"  + dfc.getDatatypeDefinition(bulletDef.getDatatypeDefinitionID()).getName());
1497
 
1498
					}
1499
				}
1500
				*/
1501
			}
1502
		}
1226 rajveer 1503
		System.out.println(sb.toString());
580 rajveer 1504
		return true;
1505
	}
4706 amit.gupta 1506
 
1507
	public boolean migrateOS() throws Exception{
1508
		Map<Long, Entity> map = CreationUtils.getEntities();
1509
	    for (Long entityId : map.keySet()) {
1510
            Entity entity = map.get(entityId);
1511
            if (entity == null || entity.getSlides() == null) {
1512
                continue;
1513
            }
1514
 
1515
            for (Slide slide : entity.getSlides()) {
1516
                if (slide.getSlideDefinitionID() == 130020) {
1517
                	List<Feature> features = slide.getFeatures();
1518
                	for(Feature f: features){
1519
                		if(f.getFeatureDefinitionID()==120043){
1520
                			Bullet b = f.getBullets().get(0);
1521
                			String value = ((PrimitiveDataObject)b.getDataObject()).getValue();
1522
                			long enumValueID= getEnumValueForOS(value);
1523
                			if(enumValueID == 110371L){
1524
                				Logger.log("Set entity:" + entityId + " as proprietary software", entity);
1525
                			}
1526
							b.setDataObject(new EnumDataObject(enumValueID));
1527
                		}
1528
                	}
1529
                }
1530
 
1531
            }
1532
 
1533
            CreationUtils.updateEntity(entity);
1534
	    }
1535
	    return true;
1536
	}
1537
 
1538
 
1539
	private long getEnumValueForOS(String value) {
1540
		value = value.toLowerCase();
1541
		Map<String, Long> map = getOSEnumMap();
1542
		String os="Proprietary software";
1543
		if(value.contains("android")){
1544
            if (value.contains("1.5")){
1545
            	os = "Android v1.5 (Cupcake)";
1546
            }
1547
            if (value.contains("1.6")){
1548
            	os = "Android v1.6 (Donut)";
1549
            }
1550
            if (value.contains("2.1")){
1551
            	os = "Android v2.1 (Eclair)";
1552
            }
1553
            if (value.contains("2.2")){
1554
            	os = "Android v2.2 (Froyo)";
1555
            }
1556
            if (value.contains("2.3")){
1557
            	os = "Android v2.3 (Gingerbread)";
1558
            }
1559
            if (value.contains("3.0")){
1560
            	os = "Android v3.0 (Honeycomb)";
1561
            }
1562
            if (value.contains("3.1")){
1563
            	os = "Android v3.1 (Honeycomb)";
1564
            }
1565
            if (value.contains("3.2")){
1566
            	os = "Android v3.2 (Honeycomb)";
1567
            }
1568
		}
1569
		if(value.contains("blackberry")){
1570
			if (value.contains("os")){
1571
				os = "BlackBerry OS";
1572
			}
1573
			if (value.contains("5.0")){
1574
				os = "BlackBerry OS 5.0";
1575
			}
1576
			if (value.contains("6.0")){
1577
				os = "BlackBerry OS 6.0";
1578
			}
1579
			if (value.contains("7.0")){
1580
				os = "BlackBerry OS 7.0";
1581
			}
1582
			if (value.contains("tablet os")){
1583
				os = "BlackBerry Tablet OS";
1584
			}
1585
		}
1586
		if(value.contains("brew mobile platform")){
1587
			os = "Brew Mobile Platform";
1588
		}
1589
		if(value.contains("maemo 5")){
1590
			os = "Maemo 5";
1591
		}
1592
		if(value.contains("windows phone 7")){
1593
			os = "Windows Phone 7";
1594
		}
1595
		if(value.contains("windows phone 7.5 mango")){
1596
			os = "Windows Phone 7.5 Mango";
1597
		}
1598
		if(value.contains("proprietary")){
1599
			if(value.contains("lg"))
1600
				os = "Proprietary LG software";
1601
			else if(value.contains("micromax")){
1602
				os = "Proprietary Micromax software";
1603
			}
1604
			else if(value.contains("samsung")){
1605
				os = "Proprietary Samsung software";
1606
			}
1607
			else if(value.contains("sony ericsson")){
1608
				os = "Proprietary Sony Ericsson software";
1609
			}
1610
			else if(value.contains("spice")){
1611
				os = "Proprietary Spice software";
1612
			}
1613
			else if(value.contains("lava")){
1614
				os = "Proprietary Lava software";
1615
			}
1616
			else if(value.contains("alcatel")){
1617
				os = "Proprietary Alcatel software";
1618
			}
1619
			else if(value.contains("motorola")){
1620
				os = "Proprietary Motorola software";
1621
			}
1622
			else if(value.contains("karbonn")){
1623
				os = "Proprietary Karbonn software";
1624
			}else {
1625
				os = "Proprietary software";
1626
			}
1627
		}
1628
		if(value.contains("mmp")){
1629
			os = "Proprietary Samsung software";
1630
		}
1631
		if(value.contains("samsung")){
1632
				if(value.contains("bada")){
1633
					os = "Samsung bada";
1634
				}
1635
				if(value.contains("bada 1.2")){
1636
					os = "Samsung bada 1.2";
1637
				}
1638
		}
1639
		if(value.contains("sony ericsson java platform 8")){
1640
			os = "Proprietary Sony Ericsson software";
1641
		}
1642
		if(value.contains("s60")){
1643
			os = "Symbian 60";
1644
		}
1645
		if(value.contains("symbian")){
1646
			if(value.contains("40")){
1647
				os = "Symbian 40";
1648
			}
1649
			if(value.contains("60")){
1650
				os = "Symbian 60";
1651
			}
1652
			if(value.contains("^3")){
1653
				os = "Symbian^3";
1654
			}
1655
			if(value.contains("anna")){
1656
				os = "Symbian Anna";
1657
			}
1658
			if(value.contains("belle")){
1659
				os = "Symbian Belle";
1660
			}
1661
		}
1662
		if(value.contains("ios 4")){
1663
			os = "iOS 4";
1664
		}
1665
		if(value.contains("ios 5")){
1666
			os = "iOS 5";
1667
		}
1668
		return map.get(os);
1669
	}
1670
 
1671
	private Map<String, Long> getOSEnumMap(){
1672
		Map<String, Long> map = new HashMap<String, Long>();
1673
		map.put("Android v1.5 (Cupcake)", 110335L);
1674
		map.put("Android v1.6 (Donut)", 110336L);
1675
		map.put("Android v2.1 (Eclair)", 110337L);
1676
		map.put("Android v2.2 (Froyo)", 110338L);
1677
		map.put("Android v2.3 (Gingerbread)", 110339L);
1678
		map.put("Android v3.0 (Honeycomb)", 110340L);
1679
		map.put("Android v3.1 (Honeycomb)", 110341L);
1680
		map.put("Android v3.2 (Honeycomb)", 110342L);	
1681
		map.put("BlackBerry OS", 110343L);
1682
		map.put("BlackBerry OS 5.0", 110344L);
1683
		map.put("BlackBerry OS 6.0", 110345L);
1684
		map.put("BlackBerry OS 7.0", 110346L);
1685
		map.put("BlackBerry Tablet OS", 110347L);
1686
		map.put("Brew Mobile Platform", 110348L);
1687
		map.put("Maemo 5", 110349L);
1688
		map.put("Windows Phone 7", 110350L);
1689
		map.put("Windows Phone 7.5 Mango", 110351L);
1690
		map.put("Proprietary LG software", 110352L);
1691
		map.put("Proprietary Micromax software", 110353L);
1692
		map.put("Proprietary Samsung software", 110354L);
1693
		map.put("Proprietary Sony Ericsson software", 110355L);
1694
		map.put("Proprietary Spice software", 110356L);
1695
		map.put("Proprietary Lava software", 110367L);
1696
		map.put("Proprietary Karbonn software", 110368L);
1697
		map.put("Proprietary Motorola software", 110369L);
1698
		map.put("Proprietary Alcatel software", 110370L);
1699
		map.put("Proprietary software", 110371L);	
1700
		map.put("Samsung bada", 110357L);
1701
		map.put("Samsung bada 1.2", 110358L);
1702
		map.put("Symbian 40", 110360L);
1703
		map.put("Symbian 60", 110361L);
1704
		map.put("Symbian^3", 110362L);
1705
		map.put("Symbian Anna", 110363L);
1706
		map.put("Symbian Belle", 110364L);
1707
		map.put("iOS 4", 110365L);
1708
		map.put("iOS 5", 110366L);
1709
 
1710
		return map;
1711
 
1712
	}
1713
 
1714
 
457 rajveer 1715
}