
hudson.search.SuggestedItem Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hudson-core Show documentation
Show all versions of hudson-core Show documentation
Contains the core Hudson code and view files to render HTML.
The newest version!
/*******************************************************************************
*
* Copyright (c) 2004-2009 Oracle Corporation.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*
* Kohsuke Kawaguchi
*
*
*******************************************************************************/
package hudson.search;
/**
* One item of a search result.
*
* @author Kohsuke Kawaguchi
*/
public class SuggestedItem {
private final SuggestedItem parent;
//TODO: review and check whether we can do it private
public final SearchItem item;
private String path;
public SuggestedItem(SearchItem top) {
this(null,top);
}
public SuggestedItem(SuggestedItem parent, SearchItem item) {
this.parent = parent;
this.item = item;
}
public SearchItem getItem() {
return item;
}
public String getPath() {
if(path!=null) return path;
if(parent==null)
return path=item.getSearchName();
else {
StringBuilder buf = new StringBuilder();
getPath(buf);
return path=buf.toString();
}
}
private void getPath(StringBuilder buf) {
if(parent==null)
buf.append(item.getSearchName());
else {
parent.getPath(buf);
buf.append(' ').append(item.getSearchName());
}
}
/**
* Gets the URL to this item.
* @return
* URL that starts with '/' but doesn't end with '/'.
* The path is the combined path from the {@link SearchIndex} where the search started
* to the final item found. Thus to convert to the actual URL, the caller would need
* to prepend the URL of the object where the search started.
*/
public String getUrl() {
StringBuilder buf = new StringBuilder();
getUrl(buf);
return buf.toString();
}
private void getUrl(StringBuilder buf) {
if(parent!=null) {
parent.getUrl(buf);
}
String f = item.getSearchUrl();
if(f.startsWith("/")) {
buf.setLength(0);
buf.append(f);
} else {
if(buf.length()==0 || buf.charAt(buf.length()-1)!='/')
buf.append('/');
buf.append(f);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy