1 package net.sourceforge.argval.packageinfo; 2 3 4 import java.util.Set; 5 6 7 /** 8 * A helper class which stores once the <code>Package</code> details and contains a Set 9 * containing all the related Java language package names (the dot separated package name 10 * like <code>net.sourceforge.argval.packageinfo</code> ). 11 * 12 * @author <a href="http://sourceforge.net/users/verhagent/">T. Verhagen</a> 13 */ 14 public interface PackageInfo extends PackageInfoVisitorAcceptor { 15 /** If no specification and implementation title is known, the value {@value} is used. */ 16 String UNKNOWN_PACKAGE_TITLE = "Unknown package title"; 17 /** If no specification and implementation version is known, the value {@value} is used. */ 18 String UNKNOWN_VERSION = "Unknown"; 19 20 /** 21 * Returns the implementation title. 22 * 23 * @return The implementation title. 24 */ 25 String getImplementationTitle(); 26 27 /** 28 * Returns the implementation vendor. 29 * 30 * @return The implementation vendor. 31 */ 32 String getImplementationVendor(); 33 34 /** 35 * Returns the implementation version. 36 * 37 * @return The implementation version. 38 */ 39 String getImplementationVersion(); 40 41 42 /** 43 * Returns the specification title. 44 * 45 * @return The specification title. 46 */ 47 String getSpecificationTitle(); 48 49 /** 50 * Returns the specification vendor. 51 * 52 * @return The specification vendor. 53 */ 54 String getSpecificationVendor(); 55 56 /** 57 * Returns the specification version. 58 * 59 * @return The specification version. 60 */ 61 String getSpecificationVersion(); 62 63 64 /** 65 * Returns the specification title, when it is known. Or when not the 66 * implementation title is returned. Or when that is also not known, the 67 * value {@link #UNKNOWN_PACKAGE_TITLE} is returned. 68 * 69 * @return The title of the specification, or the implementation or just 70 * {@link #UNKNOWN_PACKAGE_TITLE}. 71 */ 72 String getTitle(); 73 74 75 /** 76 * Returns all the package names associated with this <code>Package</code>. 77 * 78 * @return The set with all package names associated with this <code>Package</code>. 79 */ 80 Set<String> getNameSet(); 81 /** 82 * Adds the name of the package from the Java language dot notation 83 * ( <code>net.sourceforge.argval.packageinfo</code> ). 84 * 85 * @param name The name of the package. 86 */ 87 void addPackageName(String name); 88 89 90 /** {@inheritDoc}. */ 91 void accept(PackageInfoVisitor visitor); 92 93 }