Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
45 naveen 1
/**
2
 * 
3
 */
4
package in.shop2020.metamodel.util;
5
 
6
import java.util.ArrayList;
7
import java.util.List;
8
 
46 naveen 9
import in.shop2020.metamodel.definitions.Catalog;
10
import in.shop2020.metamodel.definitions.DefinitionsContainer;
45 naveen 11
import in.shop2020.metamodel.definitions.SlideDefinition;
12
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;
13
 
14
/**
51 naveen 15
 * Utility class that supports SlideDefinition class. All related 
16
 * objects are fetched from database and aggregated here.
17
 * 
45 naveen 18
 * @author naveen
19
 *
20
 */
21
public class ExpandedSlideDefinition extends SlideDefinition {
22
 
23
	/**
24
	 * 
25
	 */
26
	private static final long serialVersionUID = 1L;
27
 
28
	/**
51 naveen 29
	 * Expanded from list of SlideFeatureDefinition IDs
45 naveen 30
	 */
31
	private List<ExpandedSlideFeatureDefinition> 
32
		expandedSlideFeatureDefinitions;
33
 
34
	/**
51 naveen 35
	 * Expanded from list of children SlideDefinition objects
46 naveen 36
	 */
37
	private List<ExpandedSlideDefinition> expandedChildrentSlideDefinitions;
51 naveen 38
 
46 naveen 39
	/**
51 naveen 40
	 * Takes SlideDefinition object as input and converts all references 
41
	 * into corresponding detail objects
42
	 * 
43
	 * @param slideDefinition SlideDefinition object
44
	 * @throws Exception
45 naveen 45
	 */
46
	public ExpandedSlideDefinition(SlideDefinition slideDefinition) 
47
		throws Exception {
48
		super(slideDefinition.getID(), slideDefinition.getLabel());
49
 
50
		// Copy rest of the properties
51
		this.setChildrenSlideDefinitionIDs(
52
				slideDefinition.getChildrenSlideDefinitionIDs());
53
 
54
		this.setDescription(slideDefinition.getDescription());
55
		this.setLabel(slideDefinition.getLabel());
56
 
57
		this.setSlideFeatureDefinitions(
58
				slideDefinition.getSlideFeatureDefinitions());
59
 
60
		// Expand SlideFeatureDefinition
61
		List<SlideFeatureDefinition> slideFeatureDefs = 
62
			slideDefinition.getSlideFeatureDefinitions();
63
 
64
		if(slideFeatureDefs != null) {
65
			this.expandedSlideFeatureDefinitions = 
66
				new ArrayList<ExpandedSlideFeatureDefinition>();
67
 
68
			for(SlideFeatureDefinition slideFeatureDef : slideFeatureDefs) {
69
				this.expandedSlideFeatureDefinitions.add(
70
						new ExpandedSlideFeatureDefinition(slideFeatureDef));
71
			}
72
		}
46 naveen 73
 
74
		// Expand children slides
75
		DefinitionsContainer defs = 
76
			Catalog.getInstance().getDefinitionsContainer();
77
 
78
		List<Long> childrenSlideIDs = this.getChildrenSlideDefinitionIDs();
79
		if(childrenSlideIDs != null) {
80
			this.expandedChildrentSlideDefinitions = 
81
				new ArrayList<ExpandedSlideDefinition>();
82
 
83
			for(Long childSlideID : childrenSlideIDs) {
84
				SlideDefinition childSlideDef = 
85
					defs.getSlideDefinition(childSlideID.longValue());
86
 
87
				this.expandedChildrentSlideDefinitions.add(
88
						new ExpandedSlideDefinition(childSlideDef));
89
			}
90
		}
45 naveen 91
	}
92
 
93
	/**
51 naveen 94
	 * @return the expandedSlideFeatureDefinitions List of 
95
	 * ExpandedSlideFeatureDefinition objects
45 naveen 96
	 */
97
	public List<ExpandedSlideFeatureDefinition> 
98
		getExpandedSlideFeatureDefinitions() {
99
		return expandedSlideFeatureDefinitions;
100
	}
101
 
46 naveen 102
	/**
51 naveen 103
	 * @return the expandedChildrentSlideDefinitions List of children 
104
	 * ExpandedSlideDefinition objects
46 naveen 105
	 */
106
	public List<ExpandedSlideDefinition> getExpandedChildrentSlideDefinitions(){
107
		return expandedChildrentSlideDefinitions;
108
	}
109
 
45 naveen 110
	/* (non-Javadoc)
111
	 * @see java.lang.Object#toString()
112
	 */
113
	@Override
114
	public String toString() {
115
		return "ExpandedSlideDefinition [expandedSlideFeatureDefinitions="
116
				+ expandedSlideFeatureDefinitions
117
				+ ", getChildrenSlideDefinitionIDs()="
118
				+ getChildrenSlideDefinitionIDs() + ", getDescription()="
119
				+ getDescription() + ", getLabel()=" + getLabel()
120
				+ ", getSlideFeatureDefinitions()="
46 naveen 121
				+ getSlideFeatureDefinitions()
122
				+ ", getExpandedChildrentSlideDefinitions()="
123
				+ getExpandedChildrentSlideDefinitions() + 
124
				", getID()=" + getID() + "]";
45 naveen 125
	}
126
 
127
}