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());
299 naveen 57
		super.setBorrowedCategoryID(slide.getBorrowedCategoryID());
24 naveen 58
 
59
		// Expand slide definition id
60
		DefinitionsContainer defs = 
61
			Catalog.getInstance().getDefinitionsContainer();
62
 
63
		this.slideDefinition = 
64
			defs.getSlideDefinition(slide.getSlideDefinitionID());
65
 
66
		// Expand children slides
67
		List<Slide> childrenSlides = slide.getChildrenSlides();
68
		if(childrenSlides != null) {
69
			this.expandedChildrenSlides = new ArrayList<ExpandedSlide>();
70
 
71
			for(Slide childSlide : childrenSlides) {
72
				ExpandedSlide expChildSlide = new ExpandedSlide(childSlide);
73
 
74
				this.expandedChildrenSlides.add(expChildSlide);
75
			}
76
		}
77
 
78
		// Expand features
79
		List<Feature> features = slide.getFeatures();
80
		if(features != null) {
81
			this.expandedFeatures = new ArrayList<ExpandedFeature>();
82
 
83
			for(Feature feature : features) {
84
				ExpandedFeature expFeature = new ExpandedFeature(feature);
85
 
86
				this.expandedFeatures.add(expFeature);
87
			}
88
		}
89
	}
90
 
91
	/**
51 naveen 92
	 * @return the slideDefinition Slide Definition object
24 naveen 93
	 */
94
	public SlideDefinition getSlideDefinition() {
95
		return slideDefinition;
96
	}
97
 
98
	/**
51 naveen 99
	 * @return the expandedChildrenSlides List of children ExpandedSlide objects
24 naveen 100
	 */
101
	public List<ExpandedSlide> getExpandedChildrenSlides() {
102
		return expandedChildrenSlides;
103
	}
104
 
105
	/**
106
	 * @return the expandedFeatures
107
	 */
108
	public List<ExpandedFeature> getExpandedFeatures() {
109
		return expandedFeatures;
110
	}
111
 
33 naveen 112
	/* (non-Javadoc)
113
	 * @see java.lang.Object#toString()
114
	 */
115
	@Override
116
	public String toString() {
117
		return "ExpandedSlide [expandedChildrenSlides="
118
				+ expandedChildrenSlides + ", expandedFeatures="
119
				+ expandedFeatures + ", slideDefinition=" + slideDefinition
120
				+ ", toString()=" + super.toString() + "]";
121
	}
122
 
24 naveen 123
}