001    /*
002     * Copyright 2009 The Kuali Foundation Licensed under the Educational Community
003     * License, Version 1.0 (the "License"); you may not use this file except in
004     * compliance with the License. You may obtain a copy of the License at
005     * http://www.opensource.org/licenses/ecl1.php Unless required by applicable law
006     * or agreed to in writing, software distributed under the License is
007     * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
008     * KIND, either express or implied. See the License for the specific language
009     * governing permissions and limitations under the License.
010     */
011    package org.kuali.student.r2.lum.course.dto;
012    
013    import java.io.Serializable;
014    import java.util.ArrayList;
015    import java.util.List;
016    
017    import javax.xml.bind.annotation.XmlAccessType;
018    import javax.xml.bind.annotation.XmlAccessorType;
019    import javax.xml.bind.annotation.XmlElement;
020    import javax.xml.bind.annotation.XmlType;
021    
022    import org.kuali.student.r2.common.dto.IdNamelessEntityInfo;
023    import org.kuali.student.r2.common.dto.TimeAmountInfo;
024    import org.kuali.student.r2.lum.course.infc.Activity;
025    import org.kuali.student.r2.lum.course.infc.Format;
026    
027    @XmlType(name = "FormatInfo", propOrder = {"id", "typeKey", "stateKey", "activities", "termsOffered", "duration", "meta", "attributes" , "_futureElements" }) 
028    @XmlAccessorType(XmlAccessType.FIELD)
029    public class FormatInfo extends IdNamelessEntityInfo implements Format, Serializable {
030    
031        private static final long serialVersionUID = 1L;
032    
033        @XmlElement
034        private List<ActivityInfo> activities;
035    
036        @XmlElement
037        private List<String> termsOffered;
038    
039        @XmlElement
040        private TimeAmountInfo duration;
041    
042        @XmlElement
043        private List<Object>_futureElements;
044        
045        public FormatInfo() {
046    
047        }
048    
049        public FormatInfo(Format format) {
050            super(format);
051            if (format != null) {
052                List<ActivityInfo> activities = new ArrayList<ActivityInfo>();
053                for (Activity activity : format.getActivities()) {
054                    activities.add(new ActivityInfo(activity));
055                }
056    
057                this.activities = activities;
058    
059                this.termsOffered = new ArrayList<String>(format.getTermsOffered());
060    
061                this.duration = new TimeAmountInfo(format.getDuration());
062            }
063        }
064    
065        @Override
066        public List<ActivityInfo> getActivities() {
067            if (activities == null) {
068                activities = new ArrayList<ActivityInfo>(0);
069            }
070            return activities;
071        }
072    
073        public void setActivities(List<ActivityInfo> activities) {
074            this.activities = activities;
075        }
076    
077        @Override
078        public List<String> getTermsOffered() {
079            return termsOffered;
080        }
081    
082        public void setTermsOffered(List<String> termsOffered) {
083            this.termsOffered = termsOffered;
084        }
085    
086        @Override
087        public TimeAmountInfo getDuration() {
088            return duration;
089        }
090    
091        public void setDuration(TimeAmountInfo duration) {
092            this.duration = duration;
093        }
094    
095    }