Rev 1226 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.util;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import in.shop2020.metamodel.core.Entity;import in.shop2020.metamodel.core.EntityState;import in.shop2020.metamodel.core.FreeformContent;import in.shop2020.metamodel.core.Media;import in.shop2020.metamodel.core.Slide;import in.shop2020.metamodel.definitions.Catalog;import in.shop2020.metamodel.definitions.DefinitionsContainer;//import in.shop2020.metamodel.definitions.OldEntityContainer;import in.shop2020.metamodel.util.CreationUtils;import in.shop2020.metamodel.util.ExpandedBullet;//import in.shop2020.metamodel.util.OldCreationUtils;import in.shop2020.storage.bdb.StorageManager;/** @author rajveer***/public class ContentMigratorToBDB {private String sourceDbPath;private String destinationDbPath;public static void main(String[] args) throws Exception {String usage = "Usage: ContentMigrator {source db path}{destination db path}";String sourceDbPath = null, destinationDbPath = null;if(args.length < 2) {System.out.println(usage);System.exit(-1);}else{sourceDbPath = args[0];destinationDbPath = args[1];}//StorageManager.getStorageManager().close();ContentMigratorToBDB contentmigrator = new ContentMigratorToBDB(sourceDbPath, destinationDbPath);contentmigrator.migrateEntityState();//boolean result = contentmigrator.addMedia();//boolean result = contentmigrator.addLearnedFields();//boolean result = contentmigrator.migrate();//System.out.println("Content migration status: "+ result);//boolean result = contentmigrator.migrateEntityState();//boolean result = contentmigrator.migrateRemoveBorrowedCategoryIdFromSlide();//System.out.println(CreationUtils.getEntity(1000471).getSlide(130011));//System.out.println(CreationUtils.getFacetValues());}public ContentMigratorToBDB(String sourceDbPath, String destinationDbPath) {this.sourceDbPath = sourceDbPath;this.destinationDbPath = destinationDbPath;}public boolean migrateEntityState() throws Exception{Map<Long, Entity> entities = CreationUtils.getEntities();for(Long entityId: entities.keySet()){Entity entity = entities.get(entityId);EntityState oldState = CreationUtils.getEntityState(entityId);EntityState newState = new EntityState(oldState.getID(), entity.getCategoryID(), oldState.getCreatedBy());newState.setBrand(entity.getBrand());newState.setModelName(entity.getModelName());newState.setModelNumber(entity.getModelNumber());newState.setStatus(oldState.getStatus());newState.setAssignedBy(oldState.getAssignedBy());newState.setAssignedTo(oldState.getAssignedTo());newState.setAssignedOn(oldState.getAssignedOn());newState.setCreatedBy(oldState.getCreatedBy());newState.setCreatedOn(oldState.getCreatedOn());newState.setCompletedOn(oldState.getCompletedOn());newState.setCompletedBy(oldState.getCompletedBy());newState.setMerkedReadyBy(oldState.getMerkedReadyBy());newState.setMerkedReadyOn(oldState.getMerkedReadyOn());CreationUtils.updateEntityState(newState);}return true;}// public boolean addLearnedFields() throws Exception{// OldEntityContainer oldEnts = new OldEntityContainer(sourceDbPath);// Map<Long, List<ExpandedBullet>> learnedBullets = oldEnts.getLearnedBullets();// CreationUtils.storeLearnedBullets(learnedBullets);// return true;//// }//// public boolean addMedia() throws NumberFormatException, IOException, Exception{// FileInputStream fstream = new FileInputStream("/home/rajveer/Desktop/test1");// DataInputStream in = new DataInputStream(fstream);// BufferedReader br = new BufferedReader(new InputStreamReader(in));// String strLine;//// while ((strLine = br.readLine()) != null) {// String[] parts = strLine.split(":");// long entityID = Long.parseLong(parts[0]);// long slideID = Long.parseLong(parts[1]);// Entity entity = StorageManager.getStorageManager().getEntity(entityID);// Map<String, Media> medias = OldCreationUtils.getRawMedia(entityID);// String imageLabels = parts[2];// String videoLabels = parts[3];// if(!imageLabels.equalsIgnoreCase("null")){// String[] labels = imageLabels.split(",");// for(int i = 0; i < labels.length; i++){// if(medias.containsKey(labels[i])){// Media media = medias.get(labels[i]);// entity.getSlide(slideID).getFreeformContent().addMedia(media);// }// }// }// if(!videoLabels.equalsIgnoreCase("null")){// String[] labels = videoLabels.split(",");// for(int i = 0; i < labels.length; i++){// if(medias.containsKey(labels[i])){// Media media = medias.get(labels[i]);// entity.getSlide(slideID).getFreeformContent().addMedia(media);// }// }// }// StorageManager.getStorageManager().updateEntity(entity);// }// in.close();// return true;//}/*** this function will read source definition and source entities, and will convert* source entities to destination entities according to destination definitions.** @return boolean* @throws Exception*/// public boolean migrate() throws Exception{// OldEntityContainer sourceEnts = new OldEntityContainer(sourceDbPath);//// StringBuilder sb = new StringBuilder();// Map<Long, Entity> entities = sourceEnts.getEntities();// for(Long entityId: entities.keySet()){// Entity entity = OldCreationUtils.getEntity(entityId);// if(entity.getID() == 0){// continue;// }// Entity newEntity = new Entity(entity.getID(), entity.getCategoryID());// newEntity.setBrand(entity.getBrand());// newEntity.setModelName(entity.getModelName());// newEntity.setModelNumber(entity.getModelNumber());//// newEntity.setSlideSequence(OldCreationUtils.getSlideSequence(entity.getID()));//// List<Slide> slides = entity.getSlides();// if(slides!=null){// for(Slide slide: slides){// FreeformContent ffc = slide.getFreeformContent();// //sb.append(entityId+ ":" + slide.getSlideDefinitionID() + ":"+ ffc.getFreeformTexts()+"\n");// FreeformContent newFfc = new FreeformContent();// newFfc.setFreeformTexts(ffc.getFreeformTexts());// slide.setFreeformContent(newFfc);// //if(ffc.getAllLabels()!=null && !ffc.getAllLabels().isEmpty()){// //sb.append(entity.getID() + ":" + slide.getSlideDefinitionID() + ":" + ffc.getAllLabels() + "\n");// //sb.append(entity.getID() + ":" + slide.getSlideDefinitionID() + ":" + ffc.getImageLabels() + ":" + ffc.getYoutubeLabels() + "\n");// //System.out.println(entity.getID() + ":" + slide.getSlideDefinitionID() + ":" + ffc.getImageLabels() + ":" + ffc.getYoutubeLabels());//// System.out.println("some image found");//// System.out.println(ffc.getImageLabels());//// System.out.println(ffc.getYoutubeLabels());// //}// //System.out.println(ffc.getImageLabels());// //System.out.println(ffc.getYoutubeLabels());// //FreeformContent newFfc = new FreeformContent();// //newFfc.setFreeformTexts(ffc.getFreeformTexts());// }// }// newEntity.setSlides(slides);// EntityState entityMetadata = new EntityState(entityId, "admin");// StorageManager.getStorageManager().createEntity(newEntity, entityMetadata);//// //System.out.println(StorageManager.getStorageManager().getStorageManager().getEntity(entityId).getSlide(130033).getFreeformContent().getFreeformTexts());//// //StorageManager.getStorageManager().close();// //System.out.println("Entity id is" + entity.getID());// }//// StorageManager.getStorageManager().close();// //System.out.println(sb.toString());// return true;// }}