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.oaipmh.server;
24  
25  import org.w3c.dom.Element;
26  import org.w3c.dom.Node;
27  
28  import java.util.List;
29  
30  /**
31   * XML generator for a regular (non-error) OAI response.
32   */
33  public abstract class OaiVerbXmlGen extends OaiXmlGen {
34    protected final Params p;
35  
36    public OaiVerbXmlGen(OaiPmhRepository repository, Params p) {
37      super(repository);
38      this.p = p;
39    }
40  
41    /**
42     * Create the request tag with verb attribute and base URL set.
43  
44     * @param attrs
45     *        further attributes
46     */
47    Element request(Node... attrs) {
48      return $e("request", merge(attrs, $aSome("verb", p.getVerb()), $txt(p.getRepositoryUrl())));
49    }
50  
51    /**
52     * Create the verb tag.
53     */
54    Element verb(Node... nodes) {
55      return $e(p.getVerb().orElse("NOVERB"), nodes);
56    }
57  
58    /**
59     * Create the verb tag.
60     */
61    Element verb(List<Node> nodes) {
62      return $e(p.getVerb().orElse("NOVERB"), nodes);
63    }
64  
65  }