1 /* 2 * dpkg - Debian Package library and the Debian Package Maven plugin 3 * (c) Copyright 2015 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.control; 20 21 import java.util.List; 22 23 /** 24 * <p> 25 * The control of a binary package. 26 * </p> 27 * 28 * @author Gerrit Hohl (gerrit-hohl@users.sourceforge.net) 29 * @version <b>1.0</b>, 31.12.2015 by Gerrit Hohl 30 */ 31 public interface BinaryControl extends Control { 32 33 34 /** 35 * <p> 36 * Returns the name of the binary package. 37 * </p> 38 * 39 * @return The name. 40 */ 41 PackageName getPackage(); 42 43 44 /** 45 * <p> 46 * Returns the section. 47 * </p> 48 * <p> 49 * See <a href= 50 * "https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Section"> 51 * 5.6.5 Section</a> for further information. 52 * </p> 53 * 54 * @return The section. 55 */ 56 Section getSection(); 57 58 59 /** 60 * <p> 61 * Returns the priority. 62 * </p> 63 * 64 * @return The priority. 65 */ 66 PackagePriority getPriority(); 67 68 69 /** 70 * <p> 71 * The flag if the package is essential for the system and can't be removed. 72 * </p> 73 * <p> 74 * See <a href= 75 * "https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Essential"> 76 * 5.6.9 Essential</a> for further information. 77 * </p> 78 * 79 * @return The flag. 80 */ 81 Boolean getEssential(); 82 83 84 /** 85 * <p> 86 * Returns the packages on which this package depends on. 87 * </p> 88 * <p> 89 * See <a href= 90 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps"> 91 * 7.2 Binary Dependencies - Depends, Recommends, Suggests, Enhances, 92 * Pre-Depends</a> for further information. 93 * </p> 94 * 95 * @return The dependencies or an empty list, if the package doesn't have 96 * any dependencies. 97 */ 98 List<PackageDependency> getDepends(); 99 100 101 /** 102 * <p> 103 * Returns the packages which this package has a strong, but not absolute, 104 * dependency. 105 * </p> 106 * <p> 107 * See <a href= 108 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps"> 109 * 7.2 Binary Dependencies - Depends, Recommends, Suggests, Enhances, 110 * Pre-Depends</a> for further information. 111 * </p> 112 * 113 * @return The dependencies or an empty list, if the package doesn't have 114 * any dependencies. 115 */ 116 List<PackageDependency> getRecommends(); 117 118 119 /** 120 * <p> 121 * Returns the packages which this package suggests to install for enhancing 122 * its functionality. 123 * </p> 124 * <p> 125 * The opposite of the list returned by the {@link #getEnhances()} method. 126 * </p> 127 * <p> 128 * See <a href= 129 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps"> 130 * 7.2 Binary Dependencies - Depends, Recommends, Suggests, Enhances, 131 * Pre-Depends</a> for further information. 132 * </p> 133 * 134 * @return The dependencies or an empty list, if the package doesn't have 135 * any dependencies. 136 */ 137 List<PackageDependency> getSuggests(); 138 139 140 /** 141 * <p> 142 * Returns the packages which are enhanced in their functionality by this 143 * package. 144 * </p> 145 * <p> 146 * The opposite of the list returned by the {@link #getSuggests()} method. 147 * </p> 148 * <p> 149 * See <a href= 150 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps"> 151 * 7.2 Binary Dependencies - Depends, Recommends, Suggests, Enhances, 152 * Pre-Depends</a> for further information. 153 * </p> 154 * 155 * @return The dependencies or an empty list, if the package doesn't have 156 * any dependencies. 157 */ 158 List<PackageDependency> getEnhances(); 159 160 161 /** 162 * <p> 163 * Returns the packages which must be installed before this package is 164 * installed. 165 * </p> 166 * <p> 167 * In comparison to the list returned by the {@link #getDepends()} method 168 * this packages must be completely installed by the time this package is 169 * installed and not allowed to be installed in the same process. 170 * </p> 171 * <p> 172 * See <a href= 173 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps"> 174 * 7.2 Binary Dependencies - Depends, Recommends, Suggests, Enhances, 175 * Pre-Depends</a> for further information. 176 * </p> 177 * 178 * @return The dependencies or an empty list, if the package doesn't have 179 * any dependencies. 180 */ 181 List<PackageDependency> getPreDepends(); 182 183 184 /** 185 * <p> 186 * Returns the packages which will "broken" by this package. 187 * </p> 188 * <p> 189 * This package can't be installed until the other packages are 190 * deconfigured. The broken packages can't be reconfigured afterwards. 191 * <p> 192 * See <a href= 193 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-breaks"> 194 * 7.3 Packages which break other packages - Breaks</a> for further 195 * information. 196 * </p> 197 * 198 * @return The dependencies or an empty list, if the package doesn't have 199 * any dependencies. 200 */ 201 List<PackageDependency> getBreaks(); 202 203 204 /** 205 * <p> 206 * Returns the packages which will be in conflict with this package. 207 * </p> 208 * <p> 209 * The conflict packages and this package can't be installed on the same 210 * system at the same time. 211 * </p> 212 * <p> 213 * See <a href= 214 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts"> 215 * 7.4 Conflicting binary packages - Conflicts</a> for further information. 216 * </p> 217 * 218 * @return The dependencies or an empty list, if the package doesn't have 219 * any dependencies. 220 */ 221 List<PackageDependency> getConflicts(); 222 223 224 /** 225 * <p> 226 * Returns the virtual packages which are provided by this package. 227 * </p> 228 * <p> 229 * See <a href= 230 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual"> 231 * 7.5 Virtual packages - Provides</a> for further information. 232 * </p> 233 * 234 * @return The dependencies or an empty list, if the package doesn't have 235 * any dependencies. 236 */ 237 List<PackageDependency> getProvides(); 238 239 240 /** 241 * <p> 242 * Returns the packages which are replaced by this package. 243 * </p> 244 * <p> 245 * See <a href= 246 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces"> 247 * 7.6 Overwriting files and replacing packages - Replaces</a> for further 248 * information. 249 * </p> 250 * 251 * @return The dependencies or an empty list, if the package doesn't have 252 * any dependencies. 253 */ 254 List<PackageDependency> getReplaces(); 255 256 257 /** 258 * <p> 259 * Returns the packages which were used to built this package. 260 * </p> 261 * <p> 262 * See <a href= 263 * "https://www.debian.org/doc/debian-policy/ch-relationships.html#s-built-using"> 264 * 7.8 Additional source packages used to build the binary - Built-Using 265 * </p> 266 * 267 * @return The dependencies or an empty list, if the package doesn't have 268 * any dependencies. 269 */ 270 List<PackageDependency> getBuiltUsing(); 271 272 273 /** 274 * <p> 275 * Returns an estimate of the total amount of disk space required to install 276 * this package. 277 * </p> 278 * <p> 279 * See <a href= 280 * "https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Installed-Size"> 281 * </a> for further information. 282 * </p> 283 * 284 * @return The installed size. 285 */ 286 Size getInstalledSize(); 287 288 289 /** 290 * <p> 291 * Returns the description. 292 * </p> 293 * 294 * @return The description. 295 */ 296 Description getDescription(); 297 298 299 /** 300 * <p> 301 * Returns the module aliases. 302 * </p> 303 * 304 * @return The module aliases. 305 */ 306 String getModuleAliases(); 307 // TODO Create an own class / interface for the module alias. 308 309 310 }