Subversion Repositories SmartDukaan

Rev

Rev 1153 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1050 rajveer 1
package in.shop2020.util;
2
 
3
 
4
import java.io.BufferedReader;
5
import java.io.DataInputStream;
6
import java.io.File;
7
import java.io.FileInputStream;
8
import java.io.FileNotFoundException;
9
import java.io.IOException;
10
import java.io.InputStreamReader;
11
import java.util.ArrayList;
12
import java.util.HashMap;
13
import java.util.List;
14
import java.util.Map;
15
 
16
import in.shop2020.metamodel.core.Entity;
17
import in.shop2020.metamodel.core.EntityState;
18
import in.shop2020.metamodel.core.FreeformContent;
19
import in.shop2020.metamodel.core.Media;
20
import in.shop2020.metamodel.core.Slide;
1226 rajveer 21
import in.shop2020.metamodel.definitions.Catalog;
22
import in.shop2020.metamodel.definitions.DefinitionsContainer;
1070 chandransh 23
//import in.shop2020.metamodel.definitions.OldEntityContainer;
1050 rajveer 24
import in.shop2020.metamodel.util.CreationUtils;
25
import in.shop2020.metamodel.util.ExpandedBullet;
1070 chandransh 26
//import in.shop2020.metamodel.util.OldCreationUtils;
1050 rajveer 27
import in.shop2020.storage.bdb.StorageManager;
28
 
29
 
30
/*
31
 * @author rajveer 
32
 * 
33
 *
34
 */
35
 
36
public class ContentMigratorToBDB {
37
	private String sourceDbPath;
38
	private String destinationDbPath;
39
 
40
	public static void main(String[] args) throws Exception {
41
		String usage = "Usage: ContentMigrator {source db path}{destination db path}";
42
 
43
		String sourceDbPath = null, destinationDbPath = null;
44
		if(args.length < 2) {
45
			System.out.println(usage);
46
			System.exit(-1);
47
		}else{
48
			sourceDbPath = args[0];
49
			destinationDbPath = args[1];
50
		}
51
 
52
 
1153 rajveer 53
		//StorageManager.getStorageManager().close();
54
 
1050 rajveer 55
		ContentMigratorToBDB contentmigrator = new ContentMigratorToBDB(sourceDbPath, destinationDbPath);
56
		//boolean result = contentmigrator.addMedia();
1069 rajveer 57
		//boolean result = contentmigrator.addLearnedFields();
1055 rajveer 58
		//boolean result = contentmigrator.migrate();
59
		//System.out.println("Content migration status:  "+ result);
1153 rajveer 60
 
1226 rajveer 61
		//boolean result = contentmigrator.migrateEntityState();
62
		boolean result = contentmigrator.migrateRemoveBorrowedCategoryIdFromSlide();
63
		//System.out.println(CreationUtils.getEntity(1000471).getSlide(130011));
64
		//System.out.println(CreationUtils.getFacetValues());
65
 
1050 rajveer 66
	}
67
 
68
	public ContentMigratorToBDB(String sourceDbPath, String destinationDbPath) {
69
		this.sourceDbPath = sourceDbPath;
70
		this.destinationDbPath = destinationDbPath;
71
	}
1069 rajveer 72
 
1226 rajveer 73
	public boolean migrateRemoveBorrowedCategoryIdFromSlide() throws Exception{
74
		DefinitionsContainer dfc = Catalog.getInstance().getDefinitionsContainer();
75
		Map<Long, Entity> entities =  CreationUtils.getEntities();
76
		for(Long entityId: entities.keySet()){
77
			Entity entity = entities.get(entityId);
78
			if(entity.getSlides()!=null){
79
				for(Slide slide:entity.getSlides()){
80
					if(CreationUtils.isBorrowedSlide(slide.getSlideDefinitionID(), entity.getCategoryID())){
81
						System.out.println(entity.getID() + "\t" + slide.getSlideDefinitionID() + "\t"+ dfc.getCategory(entity.getCategoryID()).getLabel() + "\t" + dfc.getSlideDefinition(slide.getSlideDefinitionID()).getLabel() + "\t" + dfc.getCategory(CreationUtils.getBorrowedCategoryID(slide.getSlideDefinitionID(), entity.getCategoryID())).getLabel() );
82
					}
83
				}
84
			}
85
		}
86
		return true;
87
	}
88
 
1153 rajveer 89
	public boolean migrateEntityState() throws Exception{
90
		Map<Long, Entity> entities =  CreationUtils.getEntities();
91
		for(Long entityId: entities.keySet()){
92
			Entity entity = entities.get(entityId);
93
			EntityState oldState = CreationUtils.getEntityState(entityId);
94
			EntityState newState = new EntityState(oldState.getID(), entity.getCategoryID(), oldState.getCreatedBy());
95
 
96
			newState.setBrand(entity.getBrand());
97
			newState.setModelName(entity.getModelName());
98
			newState.setModelNumber(entity.getModelNumber());
99
 
100
			newState.setStatus(oldState.getStatus());
101
			newState.setAssignedBy(oldState.getAssignedBy());
102
			newState.setAssignedTo(oldState.getAssignedTo());
103
			newState.setAssignedOn(oldState.getAssignedOn());
104
 
105
			newState.setCreatedBy(oldState.getCreatedBy());
106
			newState.setCreatedOn(oldState.getCreatedOn());
107
 
108
			newState.setCompletedOn(oldState.getCompletedOn());
109
			newState.setCompletedBy(oldState.getCompletedBy());
110
 
111
			newState.setMerkedReadyBy(oldState.getMerkedReadyBy());
112
			newState.setMerkedReadyOn(oldState.getMerkedReadyOn());
113
			CreationUtils.updateEntityState(newState);
114
		}
115
		return true;
116
	}
1070 chandransh 117
//	public boolean addLearnedFields() throws Exception{
118
//		OldEntityContainer oldEnts = new OldEntityContainer(sourceDbPath);
119
//		Map<Long, List<ExpandedBullet>> learnedBullets = oldEnts.getLearnedBullets();
120
//		CreationUtils.storeLearnedBullets(learnedBullets);
121
//		return true;
122
//		
123
//	}
124
//	
125
//	public boolean addMedia() throws NumberFormatException, IOException, Exception{
126
//	    FileInputStream fstream = new FileInputStream("/home/rajveer/Desktop/test1");
127
//	    DataInputStream in = new DataInputStream(fstream);
128
//	    BufferedReader br = new BufferedReader(new InputStreamReader(in));
129
//	    String strLine;
130
//	    
131
//	    while ((strLine = br.readLine()) != null)   {
132
//	    	String[] parts  = strLine.split(":");
133
//	    	long entityID = Long.parseLong(parts[0]);
134
//	    	long slideID = Long.parseLong(parts[1]);
135
//	    	Entity entity = StorageManager.getStorageManager().getEntity(entityID);
136
//	    	Map<String, Media> medias =  OldCreationUtils.getRawMedia(entityID);
137
//	    	String imageLabels = parts[2];
138
//	    	String videoLabels = parts[3];
139
//	    	if(!imageLabels.equalsIgnoreCase("null")){
140
//	    		String[] labels = imageLabels.split(",");
141
//	    		for(int i = 0; i < labels.length; i++){
142
//	    			if(medias.containsKey(labels[i])){
143
//	    				Media media = medias.get(labels[i]);
144
//	    				entity.getSlide(slideID).getFreeformContent().addMedia(media);
145
//	    			}
146
//	    		}
147
//	    	}
148
//	    	if(!videoLabels.equalsIgnoreCase("null")){
149
//	    		String[] labels = videoLabels.split(",");
150
//	    		for(int i = 0; i < labels.length; i++){
151
//	    			if(medias.containsKey(labels[i])){
152
//	    				Media media = medias.get(labels[i]);
153
//	    				entity.getSlide(slideID).getFreeformContent().addMedia(media);
154
//	    			}
155
//	    		}
156
//	    	}
157
//	    	StorageManager.getStorageManager().updateEntity(entity);
158
//	    }
159
//	    in.close();
160
//	    return true;
161
//}
1069 rajveer 162
 
1050 rajveer 163
	/**
164
	 * this function will read source definition and source entities, and will convert
165
	 * source entities to destination entities according to destination definitions.  
166
	 * 
167
	 * @return boolean
168
	 * @throws Exception 
169
	 */
1070 chandransh 170
//	public boolean migrate() throws Exception{
171
//		OldEntityContainer sourceEnts = new OldEntityContainer(sourceDbPath);
172
//		
173
//		StringBuilder sb = new StringBuilder();
174
//		Map<Long, Entity> entities = sourceEnts.getEntities();
175
//		for(Long entityId: entities.keySet()){
176
//			Entity entity = OldCreationUtils.getEntity(entityId);
177
//			if(entity.getID() == 0){
178
//				continue;
179
//			}
180
//			Entity newEntity = new Entity(entity.getID(), entity.getCategoryID());
181
//			newEntity.setBrand(entity.getBrand());
182
//			newEntity.setModelName(entity.getModelName());
183
//			newEntity.setModelNumber(entity.getModelNumber());
184
//			
185
//			newEntity.setSlideSequence(OldCreationUtils.getSlideSequence(entity.getID()));
186
//			
187
//			List<Slide> slides = entity.getSlides();
188
//			if(slides!=null){
189
//			for(Slide slide: slides){
190
//				FreeformContent ffc = slide.getFreeformContent();
191
//				//sb.append(entityId+ ":" + slide.getSlideDefinitionID() + ":"+ ffc.getFreeformTexts()+"\n");
192
//				FreeformContent newFfc = new FreeformContent();
193
//				newFfc.setFreeformTexts(ffc.getFreeformTexts());
194
//				slide.setFreeformContent(newFfc);
195
//				//if(ffc.getAllLabels()!=null && !ffc.getAllLabels().isEmpty()){
196
//					//sb.append(entity.getID() + ":" + slide.getSlideDefinitionID() + ":" + ffc.getAllLabels() + "\n");
197
//					//sb.append(entity.getID() + ":" + slide.getSlideDefinitionID() + ":" + ffc.getImageLabels() + ":" + ffc.getYoutubeLabels() + "\n");
198
//					//System.out.println(entity.getID() + ":" + slide.getSlideDefinitionID() + ":" + ffc.getImageLabels() + ":" + ffc.getYoutubeLabels());
199
////					System.out.println("some image found");
200
////					System.out.println(ffc.getImageLabels());
201
////					System.out.println(ffc.getYoutubeLabels());
202
//				//}
203
//				//System.out.println(ffc.getImageLabels());
204
//				//System.out.println(ffc.getYoutubeLabels());
205
//				//FreeformContent newFfc = new FreeformContent();
206
//				//newFfc.setFreeformTexts(ffc.getFreeformTexts());
207
//			}
208
//			}
209
//			newEntity.setSlides(slides);
210
//			EntityState entityMetadata = new EntityState(entityId, "admin");
211
//			StorageManager.getStorageManager().createEntity(newEntity, entityMetadata);
212
//			
213
//			//System.out.println(StorageManager.getStorageManager().getStorageManager().getEntity(entityId).getSlide(130033).getFreeformContent().getFreeformTexts());
214
//			
215
//			//StorageManager.getStorageManager().close();
216
//			//System.out.println("Entity id is" + entity.getID());
217
//		}
218
//		
219
//		StorageManager.getStorageManager().close();
220
//		//System.out.println(sb.toString());
221
//		return true;
222
//	}
1050 rajveer 223
}