package org.karmaexchange.resources.msg; import static org.karmaexchange.util.OfyService.ofy; import javax.xml.bind.annotation.XmlRootElement; import lombok.AccessLevel; import lombok.Data; import lombok.Delegate; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.karmaexchange.dao.AssociatedOrganization; import org.karmaexchange.dao.BaseDao; import org.karmaexchange.dao.Event; import org.karmaexchange.dao.IdBaseDao; import org.karmaexchange.dao.KeyWrapper; import org.karmaexchange.dao.Organization; @XmlRootElement @Data @NoArgsConstructor public class EventView implements BaseDaoView<Event> { @Delegate(types={Event.class, IdBaseDao.class, BaseDao.class}) @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) private Event event = new Event(); private OrgEventSummary sponsoringOrgDetails; public EventView(Event event) { this(event, true); } public EventView(Event event, boolean initView) { this.event = event; if (initView) { AssociatedOrganization sponsoringOrgInfo = event.getSponsoringOrg(); Organization sponsoringOrg = ofy().load().key(KeyWrapper.toKey(sponsoringOrgInfo)).now(); if (sponsoringOrg != null) { sponsoringOrgDetails = new OrgEventSummary(sponsoringOrg); } } } @Override public Event getDao() { return event; } }