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 }