Subversion Repositories SmartDukaan

Rev

Rev 1055 | Rev 1069 | Go to most recent revision | 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.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);
                //boolean result = contentmigrator.addMedia();
//              boolean result = contentmigrator.addLearnedFields();
                //boolean result = contentmigrator.migrate();
                //System.out.println("Content migration status:  "+ result);
        }

        public ContentMigratorToBDB(String sourceDbPath, String destinationDbPath) {
                this.sourceDbPath = sourceDbPath;
                this.destinationDbPath = destinationDbPath;
        }
        /*
        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()){
                        entityId = (long) 1000146;
                        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;
        }
        */
}