Subversion Repositories SmartDukaan

Rev

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