* the tag is a leaf tag, that is, it will not return subtags
* with {@link BasicSearchable#fillTag(SearchableTag)} but will
* return stories with
- * {@link BasicSearchable#search(SearchableTag)}
+ * {@link BasicSearchable#search(SearchableTag, int)}
*/
public SearchableTag(String id, String name, boolean leaf) {
this(id, name, leaf, true);
* the tag is a leaf tag, that is, it will not return subtags
* with {@link BasicSearchable#fillTag(SearchableTag)} but will
* return stories with
- * {@link BasicSearchable#search(SearchableTag)}
+ * {@link BasicSearchable#search(SearchableTag, int)}
* @param complete
* the tag {@link SearchableTag#isComplete()} or not
*/
public SearchableTag(String id, String name, boolean leaf, boolean complete) {
this.id = id;
this.name = name;
- this.complete = complete;
+ this.complete = leaf || complete;
setLeaf(leaf);
return name;
}
+ /**
+ * The fully qualified tag name, which can be displayed to the user.
+ * <p>
+ * It will display all the tags that lead to this one as well as this one.
+ *
+ * @return the fully qualified name
+ */
+ public String getFqName() {
+ if (parent != null) {
+ return parent.getFqName() + " / " + name;
+ }
+
+ return name;
+ }
+
/**
* Non-complete, non-leaf tags can still be completed via a
* {@link BasicSearchable#fillTag(SearchableTag)} operation from a
* {@link BasicSearchable}, in order to gain (more?) subtag children.
* <p>
- * This method does not make sense for leaf tags.
+ * Leaf tags are always considered complete.
*
* @return TRUE if it is complete
*/
* {@link BasicSearchable#fillTag(SearchableTag)} operation from a
* {@link BasicSearchable}, in order to gain (more?) subtag children.
* <p>
- * This method does not make sense for leaf tags.
+ * Leaf tags are always considered complete.
*
* @param complete
* TRUE if it is complete
*/
public void setComplete(boolean complete) {
- this.complete = complete;
+ this.complete = isLeaf() || complete;
}
/**
return count;
}
- /**
- * The number of items that can be found with this tag if it is searched,
- * displayable format.
- * <p>
- * Will report the number of subtags by default.
- *
- * @return the number of items
- */
- public String getCountDisplay() {
- long count = this.count;
- if (count <= 0) {
- count = children.size();
- }
-
- if (count > 999999) {
- return count / 1000000 + "M";
- }
-
- if (count > 2000) {
- return count / 1000 + "k";
- }
-
- return Long.toString(count);
- }
-
/**
* The number of items that can be found with this tag if it is searched.
*
/**
* This tag is a leaf tag, that is, it will not return other subtags with
* {@link BasicSearchable#fillTag(SearchableTag)} but will return stories
- * with {@link BasicSearchable#search(SearchableTag)}.
+ * with {@link BasicSearchable#search(SearchableTag, int)}.
*
* @return TRUE if it is
*/
/**
* This tag is a leaf tag, that is, it will not return other subtags with
* {@link BasicSearchable#fillTag(SearchableTag)} but will return stories
- * with {@link BasicSearchable#search(SearchableTag)}.
+ * with {@link BasicSearchable#search(SearchableTag, int)}.
* <p>
* Will reset the number of pages to -1.
*
*/
public void setLeaf(boolean leaf) {
pages = leaf ? -1 : -2;
+ if (leaf) {
+ complete = true;
+ }
}
/**
}
if (getCount() > 0) {
- rep += " (" + getCountDisplay() + ")";
+ rep += " (" + getCount() + ")";
}
if (!children.isEmpty()) {