View Javadoc
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  }