View Javadoc
1   /*-
2    * #%L
3    * io.earcam.instrumental.module.manifest
4    * %%
5    * Copyright (C) 2018 earcam
6    * %%
7    * SPDX-License-Identifier: (BSD-3-Clause OR EPL-1.0 OR Apache-2.0 OR MIT)
8    * 
9    * You <b>must</b> choose to accept, in full - any individual or combination of 
10   * the following licenses:
11   * <ul>
12   * 	<li><a href="https://opensource.org/licenses/BSD-3-Clause">BSD-3-Clause</a></li>
13   * 	<li><a href="https://www.eclipse.org/legal/epl-v10.html">EPL-1.0</a></li>
14   * 	<li><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache-2.0</a></li>
15   * 	<li><a href="https://opensource.org/licenses/MIT">MIT</a></li>
16   * </ul>
17   * #L%
18   */
19  package io.earcam.instrumental.module.manifest;
20  
21  import java.util.Map;
22  import java.util.jar.Attributes.Name;
23  
24  /**
25   * <p>
26   * ManifestInfo interface.
27   * </p>
28   *
29   */
30  public interface ManifestInfo {
31  
32  	/**
33  	 * <p>
34  	 * mainAttributes.
35  	 * </p>
36  	 *
37  	 * @return a {@link java.util.Map} object.
38  	 */
39  	public abstract Map<Name, CharSequence> mainAttributes();
40  
41  
42  	/**
43  	 * <p>
44  	 * namedEntries.
45  	 * </p>
46  	 *
47  	 * @return a {@link java.util.Map} object.
48  	 */
49  	public abstract Map<String, Map<Name, CharSequence>> namedEntries();
50  
51  
52  	/**
53  	 * <p>
54  	 * mainAttribute.
55  	 * </p>
56  	 *
57  	 * @param name a {@link java.lang.String} object.
58  	 * @return a {@link java.lang.CharSequence} object.
59  	 */
60  	public default CharSequence mainAttribute(String name)
61  	{
62  		return mainAttribute(new Name(name));
63  	}
64  
65  
66  	/**
67  	 * <p>
68  	 * mainAttribute.
69  	 * </p>
70  	 *
71  	 * @param name a {@link java.util.jar.Attributes.Name} object.
72  	 * @return a {@link java.lang.CharSequence} object.
73  	 */
74  	public default CharSequence mainAttribute(Name name)
75  	{
76  		return mainAttributes().get(name);
77  	}
78  
79  
80  	/**
81  	 * <p>
82  	 * namedEntry.
83  	 * </p>
84  	 *
85  	 * @param name a {@link java.lang.String} object.
86  	 * @return a {@link java.util.Map} object.
87  	 */
88  	public default Map<Name, CharSequence> namedEntry(String name)
89  	{
90  		return namedEntries().get(name);
91  	}
92  
93  }