1 /*
2 * dpkg - Debian Package library and the Debian Package Maven plugin
3 * (c) Copyright 2016 Gerrit Hohl
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 */
19 package net.sourceforge.javadpkg;
20
21 import java.util.List;
22 import java.util.Map;
23
24 /**
25 * <p>
26 * The copyright of a Debian package.
27 * </p>
28 *
29 * @author Gerrit Hohl (gerrit-hohl@users.sourceforge.net)
30 * @version <b>1.0</b>, 04.05.2016 by Gerrit Hohl
31 */
32 public interface Copyright {
33
34
35 /**
36 * <p>
37 * Returns the format of the copyright.
38 * </p>
39 * <p>
40 * A format is specified by an URI of the format specification.
41 * </p>
42 * <p>
43 * Example: <blockquote>
44 * <code>http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/</code>
45 * </blockquote>
46 * </p>
47 *
48 * @return The format.
49 */
50 String getFormat();
51
52
53 /**
54 * <p>
55 * Returns the name upstream uses for the software.
56 * </p>
57 * <p>
58 * Example: <blockquote><code>SOFTware</code></blockquote>
59 * </p>
60 *
61 * @return The name or <code>null</code>, if no name is set.
62 */
63 String getUpstreamName();
64
65
66 /**
67 * <p>
68 * Returns the upstream contact.
69 * </p>
70 * <p>
71 * The preferred address(es) to reach the upstream project. May be free-form
72 * text, but by convention will usually be written as a list of RFC5322
73 * addresses or URIs.
74 * </p>
75 * <p>
76 * Example: <blockquote>
77 * <code>John Doe <john.doe@example.com></code></blockquote>
78 * </p>
79 *
80 * @return The contact or <code>null</code>, if no contact is set.
81 */
82 String getUpstreamContact();
83
84
85 /**
86 * <p>
87 * Returns the source.
88 * </p>
89 * <p>
90 * Formatted text, no synopsis: an explanation of where the upstream source
91 * came from. Typically this would be a URL, but it might be a free-form
92 * explanation.
93 * </p>
94 * <p>
95 * Example: <blockquote>
96 * <code>http://www.example.com/software/project</code></blockquote>
97 * </p>
98 *
99 * @return The source or <code>null</code>, if no source is set.
100 */
101 String getSource();
102
103
104 /**
105 * <p>
106 * Returns the disclaimer.
107 * </p>
108 * <p>
109 * Formatted text, no synopsis: this field is used for non-free or contrib
110 * packages to state that they are not part of Debian and to explain why.
111 * </p>
112 *
113 * @return The disclaimer or <code>null</code>, if no disclaimer is set.
114 */
115 String getDisclaimer();
116
117
118 /**
119 * <p>
120 * Returns the comment.
121 * </p>
122 * <p>
123 * Formatted text, no synopsis: this field can provide additional
124 * information. For example, it might quote an e-mail from upstream
125 * justifying why the license is acceptable to the main archive, or an
126 * explanation of how this version of the package has been forked from a
127 * version known to be DFSG-free, even though the current upstream version
128 * is not.
129 * </p>
130 *
131 * @return The comment or <code>null</code>, if no comment is set.
132 */
133 String getComment();
134
135
136 /**
137 * <p>
138 * Returns the license.
139 * </p>
140 * <p>
141 * The returned license can be reference to one of the licenses returned by
142 * the {@link #getLicenses()} method.
143 * </p>
144 *
145 * @return The license or <code>null</code>, if no license is set.
146 */
147 CopyrightLicense getLicense();
148
149
150 /**
151 * <p>
152 * Returns the copyright.
153 * </p>
154 * <p>
155 * Example: <blockquote><code>Copyright 2008 John Smith<br>
156 * Copyright 2009 Angela Watts</code></blockquote>
157 * </p>
158 *
159 * @return The copyright or <code>null</code>, if no copyright is set.
160 */
161 String getCopyright();
162
163
164 /**
165 * <p>
166 * Returns the copyrights for certain files of a Debian package.
167 * </p>
168 *
169 * @return The copyrights.
170 */
171 List<FilesCopyright> getFilesCopyrights();
172
173
174 /**
175 * <p>
176 * Returns the licenses referred by this copyright or one of copyrights for
177 * certain files.
178 * </p>
179 *
180 * @return The licenses.
181 * @see #getLicense()
182 * @see #getFilesCopyrights()
183 * @see FilesCopyright#getLicense()
184 */
185 Map<String, CopyrightLicense> getLicenses();
186
187
188 }