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  
23  package org.opencastproject.mediapackage.elementbuilder;
24  
25  import org.opencastproject.util.MimeType;
26  
27  import java.util.List;
28  
29  import javax.xml.xpath.XPath;
30  import javax.xml.xpath.XPathFactory;
31  
32  /**
33   * This general implementation of a media package element builder supports specialized implementations by providing
34   * tests on the filename an mime type of the file in question.
35   */
36  public abstract class AbstractElementBuilderPlugin implements MediaPackageElementBuilderPlugin {
37  
38    /** The registered mime types */
39    protected List<MimeType> mimeTypes = null;
40  
41    /** The xpath facility */
42    protected XPath xpath = XPathFactory.newInstance().newXPath();
43  
44    /** The builder's priority */
45    protected int priority = -1;
46  
47    /**
48     * Creates a new abstract element builder plugin.
49     */
50    public AbstractElementBuilderPlugin() {
51    }
52  
53    /**
54     * This is a convenience implementation for subclasses doing nothing.
55     *
56     * @see org.opencastproject.mediapackage.elementbuilder.MediaPackageElementBuilderPlugin#init()
57     */
58    public void init() {
59    }
60  
61    /**
62     * This is a convenience implementation for subclasses doing nothing.
63     *
64     * @see org.opencastproject.mediapackage.elementbuilder.MediaPackageElementBuilderPlugin#destroy()
65     */
66    public void destroy() {
67    }
68  
69    /**
70     * Returns -1 by default.
71     */
72    public int getPriority() {
73      return priority;
74    }
75  
76    public void setPriority(int priority) {
77      this.priority = priority;
78    }
79  
80  }