Apps-- added onos.app.title property to applications.
Change-Id: Id845390ee0bee5b871c0ce9f47b2ce98fbcf26b9
diff --git a/core/api/src/main/java/org/onosproject/core/DefaultApplication.java b/core/api/src/main/java/org/onosproject/core/DefaultApplication.java
index 7737ef8..487e709 100644
--- a/core/api/src/main/java/org/onosproject/core/DefaultApplication.java
+++ b/core/api/src/main/java/org/onosproject/core/DefaultApplication.java
@@ -36,6 +36,7 @@
private final ApplicationId appId;
private final Version version;
+ private final String title;
private final String description;
private final String category;
private final String url;
@@ -53,6 +54,7 @@
*
* @param appId application identifier
* @param version application version
+ * @param title application title
* @param description application description
* @param origin origin company
* @param category application category
@@ -65,7 +67,7 @@
* @param features application features
* @param requiredApps list of required application names
*/
- public DefaultApplication(ApplicationId appId, Version version,
+ public DefaultApplication(ApplicationId appId, Version version, String title,
String description, String origin, String category,
String url, String readme, byte[] icon,
ApplicationRole role, Set<Permission> permissions,
@@ -73,6 +75,7 @@
List<String> requiredApps) {
this.appId = checkNotNull(appId, "ID cannot be null");
this.version = checkNotNull(version, "Version cannot be null");
+ this.title = checkNotNull(title, "Title cannot be null");
this.description = checkNotNull(description, "Description cannot be null");
this.origin = checkNotNull(origin, "Origin cannot be null");
this.category = checkNotNull(category, "Category cannot be null");
@@ -104,6 +107,11 @@
}
@Override
+ public String title() {
+ return title;
+ }
+
+ @Override
public String description() {
return description;
}
@@ -160,7 +168,7 @@
@Override
public int hashCode() {
- return Objects.hash(appId, version, description, origin, category, url,
+ return Objects.hash(appId, version, title, description, origin, category, url,
readme, role, permissions, featuresRepo, features, requiredApps);
}
@@ -173,8 +181,12 @@
return false;
}
final DefaultApplication other = (DefaultApplication) obj;
+ // TODO: review -- do ALL the fields need to be included?
+ // It is debatable whether fields like description, url, and readme,
+ // need to be included in the notion of equivalence.
return Objects.equals(this.appId, other.appId) &&
Objects.equals(this.version, other.version) &&
+ Objects.equals(this.title, other.title) &&
Objects.equals(this.description, other.description) &&
Objects.equals(this.origin, other.origin) &&
Objects.equals(this.category, other.category) &&
@@ -192,6 +204,7 @@
return toStringHelper(this)
.add("appId", appId)
.add("version", version)
+ .add("title", title)
.add("description", description)
.add("origin", origin)
.add("category", category)