Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package au.id.hazelwood.xmltvguidebuilder.model; import au.id.hazelwood.xmltvguidebuilder.framework.BaseObject; import org.joda.time.DateTime; import org.joda.time.Minutes; import org.springframework.util.Assert; import java.util.Collections; import java.util.List; /** * @author Ricky Hazelwood * @version 1.0 */ public class ProgrammeDetail extends BaseObject { private final DateTime startDate; private final DateTime endDate; private final Minutes duration; private final String title; private final EpisodeDetail episodeDetail; private final List<String> categories; private final String rating; public ProgrammeDetail(DateTime startDate, Minutes duration, String title, EpisodeDetail episodeDetail, List<String> categories, String rating) { Assert.notNull(startDate, "StartDate is required"); Assert.notNull(duration, "Duration is required"); this.startDate = startDate; this.duration = duration; this.endDate = startDate.plus(duration); this.title = title; this.episodeDetail = episodeDetail; this.categories = Collections.unmodifiableList(categories); this.rating = rating; } public DateTime getStartDate() { return startDate; } public DateTime getEndDate() { return endDate; } public Minutes getDuration() { return duration; } public String getTitle() { return title; } public EpisodeDetail getEpisodeDetails() { return episodeDetail; } public List<String> getCategories() { return categories; } public String getRating() { return rating; } @Override protected String[] getExcludedFields() { return new String[] { "categories", "rating" }; } }