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;
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
 
81 naveen 68
		Utils.info("facetRuleDefinitions=" + facetRuleDefinitions);
69
 
70
		for(FacetRuleDefinition facetRuleDef : facetRuleDefinitions) {
71
			Utils.info("facetRuleDef=" + facetRuleDef);
63 naveen 72
 
81 naveen 73
			ExpandedFacetRuleDefinition expandedFacetRuleDefinition = 
74
				new ExpandedFacetRuleDefinition(facetRuleDef);
62 naveen 75
 
81 naveen 76
			Utils.info("expandedFacetRuleDefinition=" + 
77
					expandedFacetRuleDefinition);
78
 
79
			this.appendExpandedFacetRuleDefinition(expandedFacetRuleDefinition);
62 naveen 80
		}
81 naveen 81
 
82
		Utils.info("expandedFacetRuleDefinitions=" + 
83
				this.expandedFacetRuleDefinitions);
62 naveen 84
	}
85
 
86
	/**
87
	 * @param category the category to set
88
	 */
89
	public void setCategory(Category category) {
90
		this.category = category;
91
	}
92
 
93
	/**
94
	 * @return the category
95
	 */
96
	public Category getCategory() {
97
		return category;
98
	}
99
 
100
	/**
101
	 * Utility method to add new elements
102
	 * 
81 naveen 103
	 * @param expandedFacetRuleDefinition
62 naveen 104
	 */
81 naveen 105
	public void appendExpandedFacetRuleDefinition(
106
			ExpandedFacetRuleDefinition expandedFacetRuleDefinition) {
107
		if(this.expandedFacetRuleDefinitions == null) {
108
			this.expandedFacetRuleDefinitions = 
109
				new ArrayList<ExpandedFacetRuleDefinition>();
62 naveen 110
		}
111
 
81 naveen 112
		this.expandedFacetRuleDefinitions.add(expandedFacetRuleDefinition);
62 naveen 113
	}
114
 
115
	/**
81 naveen 116
	 * @param expandedFacetRuleDefinitions the expandedFacetRuleDefinitions 
117
	 * to set
62 naveen 118
	 */
81 naveen 119
	public void setExpandedFacetRuleDefinitions(
120
			List<ExpandedFacetRuleDefinition> expandedFacetRuleDefinitions) {
121
		this.expandedFacetRuleDefinitions = expandedFacetRuleDefinitions;
62 naveen 122
	}
123
 
124
	/**
81 naveen 125
	 * @return the expandedFacetRuleDefinitions
62 naveen 126
	 */
81 naveen 127
	public List<ExpandedFacetRuleDefinition> getExpandedFacetRuleDefinitions() {
128
		return expandedFacetRuleDefinitions;
62 naveen 129
	}
130
 
81 naveen 131
	/* (non-Javadoc)
132
	 * @see java.lang.Object#toString()
133
	 */
134
	@Override
135
	public String toString() {
136
		return "ExpandedCategoryFacetDefinition [category=" + category
137
				+ ", expandedFacetRuleDefinitions="
138
				+ expandedFacetRuleDefinitions + ", getCategoryID()="
139
				+ getCategoryID() + ", getFacetRuleDefinitions()="
140
				+ getFacetRuleDefinitions() + "]";
141
	}
142
 
62 naveen 143
}