Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
62 naveen 1
/**
2
 * 
3
 */
4
package in.shop2020.metamodel.util;
5
 
6
import java.util.ArrayList;
7
import java.util.List;
8
 
9
import in.shop2020.metamodel.definitions.Catalog;
10
import in.shop2020.metamodel.definitions.Category;
11
import in.shop2020.metamodel.definitions.CategoryFacetDefinition;
12
import in.shop2020.metamodel.definitions.DefinitionsContainer;
13
 
14
/**
15
 * Utility class to support CategoryFacetDefintion class. Expands all 
16
 * references into respect detail objects
17
 * 
18
 * @author naveen
19
 *
20
 */
21
public class ExpandedCategoryFacetDefinition extends CategoryFacetDefinition {
22
 
23
	/**
24
	 * 
25
	 */
26
	private static final long serialVersionUID = 1L;
27
 
28
	/**
29
	 * Expanded Category ID
30
	 */
31
	private Category category;
32
 
33
	/**
34
	 * List of expanded facet definition IDs
35
	 */
36
	private List<ExpandedFacetDefinition> expandedFacetDefinitions;
37
 
38
	/**
39
	 * Constructs Expanded version from CategoryFacetDefinition instance
40
	 * 
41
	 * @param categoryFacetDefinition
42
	 * @throws Exception 
43
	 */
44
	public ExpandedCategoryFacetDefinition(
45
			CategoryFacetDefinition categoryFacetDefinition) throws Exception {
46
		super(categoryFacetDefinition.getCategoryID());
47
 
48
		// Copy other properties
49
		this.setFacetDefinitionIDs(
50
				categoryFacetDefinition.getFacetDefinitionIDs());
51
 
52
		// Add expanded objects
53
		DefinitionsContainer defs = 
54
			Catalog.getInstance().getDefinitionsContainer();
55
 
56
		// Category
57
		Category category = 
58
			defs.getCategory(categoryFacetDefinition.getCategoryID());
59
 
60
		this.setCategory(category);
61
 
62
		// List of ExpandedFacetDefinition objects
63
		List<Long> facetDefinitionIDs = 
64
			categoryFacetDefinition.getFacetDefinitionIDs();
65
 
66
		for(Long facetDefinitionID : facetDefinitionIDs) {
67
			ExpandedFacetDefinition expandedFacetDefinition = 
68
				defs.getExpandedFacetDefinition(facetDefinitionID);
69
 
70
			this.appendExpandedFacetDefinition(expandedFacetDefinition);
71
		}
72
	}
73
 
74
	/**
75
	 * @param category the category to set
76
	 */
77
	public void setCategory(Category category) {
78
		this.category = category;
79
	}
80
 
81
	/**
82
	 * @return the category
83
	 */
84
	public Category getCategory() {
85
		return category;
86
	}
87
 
88
	/**
89
	 * Utility method to add new elements
90
	 * 
91
	 * @param expandedFacetDefinition
92
	 */
93
	public void appendExpandedFacetDefinition(
94
			ExpandedFacetDefinition expandedFacetDefinition) {
95
		if(this.expandedFacetDefinitions == null) {
96
			this.expandedFacetDefinitions = 
97
				new ArrayList<ExpandedFacetDefinition>();
98
		}
99
 
100
		this.expandedFacetDefinitions.add(expandedFacetDefinition);
101
	}
102
 
103
	/**
104
	 * @param expandedFacetDefinitions the expandedFacetDefinitions to set
105
	 */
106
	public void setExpandedFacetDefinitions(
107
			List<ExpandedFacetDefinition> expandedFacetDefinitions) {
108
		this.expandedFacetDefinitions = expandedFacetDefinitions;
109
	}
110
 
111
	/**
112
	 * @return the expandedFacetDefinitions
113
	 */
114
	public List<ExpandedFacetDefinition> getExpandedFacetDefinitions() {
115
		return expandedFacetDefinitions;
116
	}
117
 
118
}