1 /*
2 * Licensed to The Apereo Foundation under one or more contributor license
3 * agreements. See the NOTICE file distributed with this work for additional
4 * information regarding copyright ownership.
5 *
6 *
7 * The Apereo Foundation licenses this file to you under the Educational
8 * Community License, Version 2.0 (the "License"); you may not use this file
9 * except in compliance with the License. You may obtain a copy of the License
10 * at:
11 *
12 * http://opensource.org/licenses/ecl2.txt
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17 * License for the specific language governing permissions and limitations under
18 * the License.
19 *
20 */
21
22 package org.opencastproject.mediapackage;
23
24 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
25
26 /**
27 * The presentation element describes where a media package can be consumed.
28 * An entry of this type id the result of a distribution to a distribution channel.
29 */
30 @XmlJavaTypeAdapter(PublicationImpl.Adapter.class)
31 public interface Publication extends MediaPackageElement {
32
33 /** Returns the channel id. */
34 String getChannel();
35
36 /**
37 * Returns the tracks that are part of this publication.
38 *
39 * @return the tracks
40 */
41 Track[] getTracks();
42
43 /**
44 * Adds a track to this publication.
45 *
46 * @param track
47 * the track to add
48 */
49 void addTrack(Track track);
50
51 /**
52 * Removes all tracks from this publication.
53 */
54 void clearTracks();
55
56 /**
57 * Returns the attachments that are part of this publication.
58 *
59 * @return the attachments
60 */
61 Attachment[] getAttachments();
62
63 /**
64 * Adds an attachment to this publication.
65 *
66 * @param attachment
67 * the attachment to add
68 */
69 void addAttachment(Attachment attachment);
70
71 void removeAttachmentById(String attachmentId);
72
73 /**
74 * Returns the catalogs associated with this publication.
75 *
76 * @return the catalogs
77 */
78 Catalog[] getCatalogs();
79
80 /**
81 * Adds a catalog to this publication.
82 *
83 * @param catalog
84 * the catalog to add
85 */
86 void addCatalog(Catalog catalog);
87
88 }