Subversion Repositories SmartDukaan

Rev

Rev 1061 | Go to most recent revision | Details | Compare with Previous | 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;
81 naveen 13
import in.shop2020.metamodel.definitions.FacetRuleDefinition;
63 naveen 14
import in.shop2020.util.Utils;
62 naveen 15
 
16
/**
17
 * Utility class to support CategoryFacetDefintion class. Expands all 
18
 * references into respect detail objects
19
 * 
20
 * @author naveen
21
 *
22
 */
23
public class ExpandedCategoryFacetDefinition extends CategoryFacetDefinition {
24
 
25
	/**
26
	 * 
27
	 */
28
	private static final long serialVersionUID = 1L;
29
 
30
	/**
31
	 * Expanded Category ID
32
	 */
33
	private Category category;
34
 
35
	/**
81 naveen 36
	 * List of expanded facet rule definitions
62 naveen 37
	 */
81 naveen 38
	private List<ExpandedFacetRuleDefinition> expandedFacetRuleDefinitions;
62 naveen 39
 
40
	/**
41
	 * Constructs Expanded version from CategoryFacetDefinition instance
42
	 * 
43
	 * @param categoryFacetDefinition
44
	 * @throws Exception 
45
	 */
46
	public ExpandedCategoryFacetDefinition(
47
			CategoryFacetDefinition categoryFacetDefinition) throws Exception {
48
		super(categoryFacetDefinition.getCategoryID());
49
 
50
		// Copy other properties
81 naveen 51
		this.setFacetRuleDefinitions(
52
				categoryFacetDefinition.getFacetRuleDefinitions());
62 naveen 53
 
54
		// Add expanded objects
55
		DefinitionsContainer defs = 
56
			Catalog.getInstance().getDefinitionsContainer();
57
 
58
		// Category
59
		Category category = 
60
			defs.getCategory(categoryFacetDefinition.getCategoryID());
61
 
62
		this.setCategory(category);
63
 
81 naveen 64
		// List of ExpandedFacetRuleDefinition objects
65
		List<FacetRuleDefinition> facetRuleDefinitions = 
66
			categoryFacetDefinition.getFacetRuleDefinitions();
62 naveen 67
 
1229 rajveer 68
		//Utils.info("facetRuleDefinitions=" + facetRuleDefinitions);
81 naveen 69
 
70
		for(FacetRuleDefinition facetRuleDef : facetRuleDefinitions) {
1229 rajveer 71
			//Utils.info("facetRuleDef=" + facetRuleDef);
63 naveen 72
 
81 naveen 73
			ExpandedFacetRuleDefinition expandedFacetRuleDefinition = 
74
				new ExpandedFacetRuleDefinition(facetRuleDef);
62 naveen 75
 
1229 rajveer 76
			//Utils.info("expandedFacetRuleDefinition=" + expandedFacetRuleDefinition);
81 naveen 77
 
78
			this.appendExpandedFacetRuleDefinition(expandedFacetRuleDefinition);
62 naveen 79
		}
81 naveen 80
 
1229 rajveer 81
		//Utils.info("expandedFacetRuleDefinitions=" + this.expandedFacetRuleDefinitions);
62 naveen 82
	}
83
 
84
	/**
85
	 * @param category the category to set
86
	 */
87
	public void setCategory(Category category) {
88
		this.category = category;
89
	}
90
 
91
	/**
92
	 * @return the category
93
	 */
94
	public Category getCategory() {
95
		return category;
96
	}
97
 
98
	/**
99
	 * Utility method to add new elements
100
	 * 
81 naveen 101
	 * @param expandedFacetRuleDefinition
62 naveen 102
	 */
81 naveen 103
	public void appendExpandedFacetRuleDefinition(
104
			ExpandedFacetRuleDefinition expandedFacetRuleDefinition) {
105
		if(this.expandedFacetRuleDefinitions == null) {
106
			this.expandedFacetRuleDefinitions = 
107
				new ArrayList<ExpandedFacetRuleDefinition>();
62 naveen 108
		}
109
 
81 naveen 110
		this.expandedFacetRuleDefinitions.add(expandedFacetRuleDefinition);
62 naveen 111
	}
112
 
113
	/**
81 naveen 114
	 * @param expandedFacetRuleDefinitions the expandedFacetRuleDefinitions 
115
	 * to set
62 naveen 116
	 */
81 naveen 117
	public void setExpandedFacetRuleDefinitions(
118
			List<ExpandedFacetRuleDefinition> expandedFacetRuleDefinitions) {
119
		this.expandedFacetRuleDefinitions = expandedFacetRuleDefinitions;
62 naveen 120
	}
121
 
122
	/**
81 naveen 123
	 * @return the expandedFacetRuleDefinitions
62 naveen 124
	 */
81 naveen 125
	public List<ExpandedFacetRuleDefinition> getExpandedFacetRuleDefinitions() {
126
		return expandedFacetRuleDefinitions;
62 naveen 127
	}
128
 
81 naveen 129
	/* (non-Javadoc)
130
	 * @see java.lang.Object#toString()
131
	 */
132
	@Override
133
	public String toString() {
134
		return "ExpandedCategoryFacetDefinition [category=" + category
135
				+ ", expandedFacetRuleDefinitions="
136
				+ expandedFacetRuleDefinitions + ", getCategoryID()="
137
				+ getCategoryID() + ", getFacetRuleDefinitions()="
138
				+ getFacetRuleDefinitions() + "]";
139
	}
140
 
62 naveen 141
}