Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
24 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.core.Feature;
10
import in.shop2020.metamodel.core.Slide;
11
import in.shop2020.metamodel.definitions.Catalog;
12
import in.shop2020.metamodel.definitions.DefinitionsContainer;
13
import in.shop2020.metamodel.definitions.SlideDefinition;
14
 
15
/**
51 naveen 16
 * Utility class that supports core Slide class. All related 
17
 * objects are fetched from database and aggregated here.
18
 * 
24 naveen 19
 * @author naveen
20
 *
21
 */
22
public class ExpandedSlide extends Slide {
49 naveen 23
	/**
51 naveen 24
	 * Expanded from SlideDefinition ID
49 naveen 25
	 */
24 naveen 26
	private SlideDefinition slideDefinition;
49 naveen 27
 
28
	/**
51 naveen 29
	 * Expanded from list of children Slide IDs
49 naveen 30
	 */
24 naveen 31
	private List<ExpandedSlide> expandedChildrenSlides;
49 naveen 32
 
33
	/**
51 naveen 34
	 * Expanded from Feature objects
49 naveen 35
	 */
24 naveen 36
	private List<ExpandedFeature> expandedFeatures;
37
 
38
	/**
39
	 * 
40
	 */
41
	private static final long serialVersionUID = 1L;
49 naveen 42
 
24 naveen 43
	/**
51 naveen 44
	 * Takes Slide object as input and converts all references 
45
	 * into corresponding detail objects
49 naveen 46
	 * 
47
	 * @param slide
48
	 * @throws Exception
24 naveen 49
	 */
50
	public ExpandedSlide(Slide slide) throws Exception {
51
		super(slide.getSlideDefinitionID());
52
 
53
		// Copy rest of the properties
54
		super.setChildrenSlides(slide.getChildrenSlides());
55
		super.setFeatures(slide.getFeatures());
56
		super.setFreeformContent(slide.getFreeformContent());
57
 
58
		// Expand slide definition id
59
		DefinitionsContainer defs = 
60
			Catalog.getInstance().getDefinitionsContainer();
61
 
62
		this.slideDefinition = 
63
			defs.getSlideDefinition(slide.getSlideDefinitionID());
64
 
65
		// Expand children slides
66
		List<Slide> childrenSlides = slide.getChildrenSlides();
67
		if(childrenSlides != null) {
68
			this.expandedChildrenSlides = new ArrayList<ExpandedSlide>();
69
 
70
			for(Slide childSlide : childrenSlides) {
71
				ExpandedSlide expChildSlide = new ExpandedSlide(childSlide);
72
 
73
				this.expandedChildrenSlides.add(expChildSlide);
74
			}
75
		}
76
 
77
		// Expand features
78
		List<Feature> features = slide.getFeatures();
79
		if(features != null) {
80
			this.expandedFeatures = new ArrayList<ExpandedFeature>();
81
 
82
			for(Feature feature : features) {
83
				ExpandedFeature expFeature = new ExpandedFeature(feature);
84
 
85
				this.expandedFeatures.add(expFeature);
86
			}
87
		}
88
	}
89
 
90
	/**
51 naveen 91
	 * @return the slideDefinition Slide Definition object
24 naveen 92
	 */
93
	public SlideDefinition getSlideDefinition() {
94
		return slideDefinition;
95
	}
96
 
97
	/**
51 naveen 98
	 * @return the expandedChildrenSlides List of children ExpandedSlide objects
24 naveen 99
	 */
100
	public List<ExpandedSlide> getExpandedChildrenSlides() {
101
		return expandedChildrenSlides;
102
	}
103
 
104
	/**
105
	 * @return the expandedFeatures
106
	 */
107
	public List<ExpandedFeature> getExpandedFeatures() {
108
		return expandedFeatures;
109
	}
110
 
33 naveen 111
	/* (non-Javadoc)
112
	 * @see java.lang.Object#toString()
113
	 */
114
	@Override
115
	public String toString() {
116
		return "ExpandedSlide [expandedChildrenSlides="
117
				+ expandedChildrenSlides + ", expandedFeatures="
118
				+ expandedFeatures + ", slideDefinition=" + slideDefinition
119
				+ ", toString()=" + super.toString() + "]";
120
	}
121
 
24 naveen 122
}