Subversion Repositories SmartDukaan

Rev

Rev 1050 | 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 java.util.ArrayList;
7
import java.util.List;
8
 
9
import in.shop2020.metamodel.core.Entity;
10
import in.shop2020.metamodel.core.Slide;
11
import in.shop2020.metamodel.definitions.Catalog;
12
import in.shop2020.metamodel.definitions.Category;
13
import in.shop2020.metamodel.definitions.DefinitionsContainer;
14
 
15
/**
51 naveen 16
 * Utility class that supports core Entity class. All related 
17
 * objects are fetched from database and aggregated here.
18
 *
24 naveen 19
 * @author naveen
20
 *
21
 */
22
public class ExpandedEntity extends Entity {
199 naveen 23
	/**
24
	 * Reference to original entity
25
	 */
26
	private Entity entity;
51 naveen 27
 
49 naveen 28
	/**
51 naveen 29
	 * Expanded from category ID
49 naveen 30
	 */
24 naveen 31
	private Category category;
49 naveen 32
 
33
	/**
51 naveen 34
	 * Expanded from list of slide IDs
49 naveen 35
	 */
24 naveen 36
	private List<ExpandedSlide> expandedSlides;
37
 
38
	/**
39
	 * 
40
	 */
41
	private static final long serialVersionUID = 1L;
42
 
43
	/**
51 naveen 44
	 * Takes Entity object as input and converts all references 
45
	 * into corresponding detail objects
24 naveen 46
	 * 
51 naveen 47
	 * @param entity Entity object
24 naveen 48
	 * @throws Exception 
49
	 */
50
	public ExpandedEntity(Entity entity) throws Exception {
51
		super(entity.getID(), entity.getCategoryID());
52
 
199 naveen 53
		// Original entity
54
		this.setEntity(entity);
55
 
24 naveen 56
		// Copy rest of the properties from entity
57
		super.setBrand(entity.getBrand());
58
		super.setModelName(entity.getModelName());
59
		super.setModelNumber(entity.getModelNumber());
60
		super.setSlides(entity.getSlides());
1050 rajveer 61
		super.setSlideSequence(entity.getSlideSequence());
24 naveen 62
		// Expand category id
63
		DefinitionsContainer defs = 
64
			Catalog.getInstance().getDefinitionsContainer();
65
 
66
		this.category = defs.getCategory(entity.getCategoryID());
67
 
68
		// Expand slides
69
		this.expandedSlides = new ArrayList<ExpandedSlide>();
40 naveen 70
		List<Slide> slides = entity.getSlides();
71
		if(slides != null) {
72
			for(Slide slide : slides) {
73
				ExpandedSlide expSlide = new ExpandedSlide(slide);
74
 
75
				this.expandedSlides.add(expSlide);
76
			}
24 naveen 77
		}
78
	}
79
 
80
	/**
81
	 * @return the category
82
	 */
83
	public Category getCategory() {
84
		return category;
85
	}
86
 
87
	/**
88
	 * @return the expandedSlides
89
	 */
90
	public List<ExpandedSlide> getExpandedSlides() {
91
		return expandedSlides;
92
	}
33 naveen 93
 
199 naveen 94
	/**
95
	 * @param entity the entity to set
96
	 */
97
	public void setEntity(Entity entity) {
98
		this.entity = entity;
99
	}
100
 
101
	/**
102
	 * @return the entity
103
	 */
104
	public Entity getEntity() {
105
		return entity;
106
	}
107
 
108
	/**
109
	 * Returns ExpandedSlide instance given slide definition ID
110
	 * @param slideDefinitionID
111
	 * @return ExpandedSlide 
112
	 */
113
	public ExpandedSlide getExpandedSlide(long slideDefinitionID) {
114
		for(ExpandedSlide expSlide : this.expandedSlides) {
115
			if(expSlide.getSlideDefinitionID() == slideDefinitionID) {
116
				return expSlide;
117
			}
118
		}
119
 
120
		return null;
121
	}
122
 
123
 
33 naveen 124
	/* (non-Javadoc)
125
	 * @see java.lang.Object#toString()
126
	 */
127
	@Override
128
	public String toString() {
129
		return "ExpandedEntity [category=" + category + ", expandedSlides="
130
				+ expandedSlides + ", toString()=" + super.toString() + "]";
131
	}
24 naveen 132
}