Subversion Repositories SmartDukaan

Rev

Rev 5155 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5155 Rev 5404
Line 5... Line 5...
5
import in.shop2020.metamodel.core.Feature;
5
import in.shop2020.metamodel.core.Feature;
6
import in.shop2020.metamodel.core.PrimitiveDataObject;
6
import in.shop2020.metamodel.core.PrimitiveDataObject;
7
import in.shop2020.metamodel.core.Slide;
7
import in.shop2020.metamodel.core.Slide;
8
import in.shop2020.metamodel.definitions.Catalog;
8
import in.shop2020.metamodel.definitions.Catalog;
9
import in.shop2020.metamodel.definitions.DefinitionsContainer;
9
import in.shop2020.metamodel.definitions.DefinitionsContainer;
-
 
10
import in.shop2020.metamodel.util.CreationUtils;
10
 
11
 
-
 
12
import java.util.ArrayList;
-
 
13
import java.util.Arrays;
-
 
14
import java.util.HashMap;
11
import java.util.List;
15
import java.util.List;
-
 
16
import java.util.Map;
-
 
17
 
-
 
18
import org.apache.commons.lang.StringUtils;
12
 
19
 
13
public class ProductIndexGenerator {
20
public class ProductIndexGenerator {
14
	private String[] indentation = {"", "    ", "        ", "            ","                "};
21
	private String[] indentation = {"", "    ", "        ", "            ","                "};
15
	private List<Entity> entities;
22
	private List<Entity> entities;
16
	private DefinitionsContainer defContainer = Catalog.getInstance().getDefinitionsContainer();
23
	private DefinitionsContainer defContainer = Catalog.getInstance().getDefinitionsContainer();
-
 
24
	private Map<String, List<String>> brandSynonyms = new HashMap<String, List<String>>();
-
 
25
	
17
 
26
	
18
	public ProductIndexGenerator(List<Entity> entities)	{
27
	public ProductIndexGenerator(List<Entity> entities)	{
-
 
28
		Map<String, String> brSynonyms = new HashMap<String, String>(); 
-
 
29
		try {
-
 
30
			brSynonyms =  CreationUtils.getSynonyms().get("brand");
-
 
31
			for(String brand : brSynonyms.keySet()){
-
 
32
				List<String> brandSyns = Arrays.asList((brand + "," + StringUtils.defaultString(brSynonyms.get(brand))).split(","));
-
 
33
				brandSynonyms.put(brand, brandSyns);
-
 
34
			}
-
 
35
		} catch (Exception e) {
-
 
36
			// TODO: handle exception
-
 
37
		}
19
		this.entities = entities;
38
		this.entities = entities;
20
	}
39
	}
21
	
40
	
22
	private String getProductURL(Entity entity){
41
	private String getProductURL(Entity entity){
23
		in.shop2020.metamodel.definitions.Category parentCategory = defContainer.getCategory(entity.getCategoryID()).getParentCategory();
42
		in.shop2020.metamodel.definitions.Category parentCategory = defContainer.getCategory(entity.getCategoryID()).getParentCategory();
Line 36... Line 55...
36
	public void generate()	{
55
	public void generate()	{
37
		StringBuilder sb = new StringBuilder();
56
		StringBuilder sb = new StringBuilder();
38
		
57
		
39
		for (Entity entity: entities)	{
58
		for (Entity entity: entities)	{
40
			String brand = entity.getBrand();
59
			String brand = entity.getBrand();
41
			String modelName = entity.getModelName();
60
			try{
42
			String modelNumber = entity.getModelNumber();
-
 
43
			String url = getProductURL(entity);
61
			String url = getProductURL(entity);
44
 
62
 
45
			sb.append("<div>\n");
-
 
46
			sb.append(indentation[1] + "<a href='" + url + "'>");
-
 
47
			sb.append(brand + " " + modelName + " " + modelNumber);
-
 
48
			sb.append("</a>\n");
-
 
49
			sb.append("</div>\n");
-
 
50
			
63
			
51
			Slide slide = entity.getSlide(Utils.SUMMARY_SLIDE_DEFINITION_ID);
64
			Slide slide = entity.getSlide(Utils.SUMMARY_SLIDE_DEFINITION_ID);
-
 
65
			List<String> modelNameSyn = new ArrayList<String>();
-
 
66
			modelNameSyn.add(entity.getModelName());
-
 
67
			List<String> modelNumberSyn = new ArrayList<String>();
-
 
68
			modelNumberSyn.add(entity.getModelNumber());
52
			
69
			
53
			for(Feature feature: slide.getFeatures())	{
70
			for(Feature feature: slide.getFeatures())	{
54
				
71
				
55
				if(feature.getFeatureDefinitionID() == 120156)	{
72
				if(feature.getFeatureDefinitionID() == 120156)	{
56
					List<Bullet> bullets =  feature.getBullets();
73
					List<Bullet> bullets =  feature.getBullets();
57
					
74
					
58
					if(bullets != null)	{
75
					if(bullets != null)	{
59
						for(Bullet bullet: bullets){
76
						for(Bullet bullet: bullets){
60
							PrimitiveDataObject pdo = (PrimitiveDataObject) bullet.getDataObject();
77
							PrimitiveDataObject pdo = (PrimitiveDataObject) bullet.getDataObject();
61
 
-
 
62
							sb.append("<div>\n");
-
 
63
							sb.append(indentation[1] + "<a href='" + url + "'>");
-
 
64
							sb.append(brand + " " + pdo.getValue() + " " + modelNumber);
-
 
65
							sb.append("</a>\n");
78
							modelNameSyn.add(pdo.getValue());
66
							sb.append("</div>\n");
-
 
67
						}
79
						}
68
					}
80
					}
69
				} else if(feature.getFeatureDefinitionID() == 120157)	{
81
				} else if(feature.getFeatureDefinitionID() == 120157)	{
70
					List<Bullet> bullets =  feature.getBullets();
82
					List<Bullet> bullets =  feature.getBullets();
71
					
83
					
72
					if(bullets != null)	{
84
					if(bullets != null)	{
73
						for(Bullet bullet: bullets)	{
85
						for(Bullet bullet: bullets)	{
74
							PrimitiveDataObject pdo = (PrimitiveDataObject)bullet.getDataObject();
86
							PrimitiveDataObject pdo = (PrimitiveDataObject)bullet.getDataObject();
75
 
-
 
76
							sb.append("<div>\n");
-
 
77
							sb.append(indentation[1] + "<a href='" + url + "'>");
-
 
78
							sb.append(brand + " " + modelName + " " + pdo.getValue());
87
							modelNumberSyn.add(pdo.getValue());
79
							sb.append("</a>\n");
-
 
80
							sb.append("</div>\n");
-
 
81
						}
88
						}
82
					}
89
					}
83
				}
90
				}
84
			}
91
			}
-
 
92
			for(String br : getBrandSynonyms(brand)) {
-
 
93
				for (String mName : modelNameSyn){
-
 
94
					for (String mNumber : modelNumberSyn){
-
 
95
						sb.append("<div>\n");
-
 
96
						sb.append(indentation[1] + "<a href='" + url + "'>");
-
 
97
						sb.append(br + " " + mName + " " + mNumber);
-
 
98
						sb.append("</div>\n");
-
 
99
						sb.append("</a>\n");
-
 
100
					}
-
 
101
				}
-
 
102
			}
-
 
103
			}catch(Exception e){
-
 
104
				e.printStackTrace();
-
 
105
			}
85
		}
106
		}
86
		String indexFilename = Utils.EXPORT_PARTNERS_CONTENT_PATH + "productindex.html";
107
		String indexFilename = Utils.EXPORT_PARTNERS_CONTENT_PATH + "productindex.html";
87
		
108
		
88
		try	{
109
		try	{
89
			DBUtils.store(sb.toString(), indexFilename);
110
			DBUtils.store(sb.toString(), indexFilename);
90
			
111
			
91
		} catch (Exception e) {
112
		} catch (Exception e) {
92
			e.printStackTrace();
113
			e.printStackTrace();
93
		}
114
		}
94
	}
115
	}
-
 
116
	
-
 
117
	private List<String> getBrandSynonyms(String brand) {
-
 
118
		if(!brandSynonyms.containsKey(brand)){
-
 
119
			List<String> list = new ArrayList<String>();
-
 
120
			list.add(brand);
-
 
121
			brandSynonyms.put(brand, list);
-
 
122
		}
-
 
123
		return brandSynonyms.get(brand);
-
 
124
	}
-
 
125
	
-
 
126
	public static void main(String[] args) {
-
 
127
		try {
-
 
128
			List<Entity> entities = new ArrayList<Entity>(CreationUtils.getEntities().values());
-
 
129
			ProductIndexGenerator generator = new ProductIndexGenerator(entities);
-
 
130
			generator.generate();
-
 
131
		} catch (Exception e) {
-
 
132
			e.printStackTrace();
-
 
133
		}
-
 
134
	}
95
}
135
}
96
136