/**
*
*/
package ecologylab.bigsemantics.metametadata;
import ecologylab.generic.StringTools;
import ecologylab.net.ParsedURL;
import ecologylab.serialization.ElementState;
import ecologylab.serialization.annotations.simpl_scalar;
import ecologylab.serialization.types.element.IMappable;
/**
* @author amathur
*
*/
public class SearchEngine extends ElementState implements IMappable<String>
{
@simpl_scalar private String name;
@simpl_scalar private String urlPrefix;
@simpl_scalar private String urlSuffix;
@simpl_scalar private String numResultString;
@simpl_scalar private String startString;
@simpl_scalar private boolean homogeneous;
//these are used in the cf web interface
@simpl_scalar private String group;
@simpl_scalar private String description;
@simpl_scalar private String favicon;
@simpl_scalar private boolean show;
public SearchEngine() {}
/**
* @return the name
*/
public final String getName()
{
return name;
}
/**
* @param name the name to set
*/
public final void setName(String name)
{
this.name = name;
}
/**
* @return the url
*/
public final String getUrlPrefix()
{
return urlPrefix;
}
/**
* @param url the url to set
*/
public final void setUrlPrefix(String urlPrefix)
{
this.urlPrefix = urlPrefix;
}
public String key()
{
// TODO Auto-generated method stub
return name;
}
/**
* @return the urlSuffix
*/
public final String getUrlSuffix()
{
if(urlSuffix!=null)
return urlSuffix;
else
return "";
}
/**
* @param urlSuffix the urlSuffix to set
*/
public final void setUrlSuffix(String urlSuffix)
{
this.urlSuffix = urlSuffix;
}
/**
* @return the numResultString
*/
public final String getNumResultString()
{
if(numResultString!=null)
return numResultString;
else
return "";
}
/**
* @param numResultString the numResultString to set
*/
public final void setNumResultString(String numResultString)
{
this.numResultString = numResultString;
}
/**
* @return the startString
*/
public final String getStartString()
{
if(startString!=null)
return startString;
else
return "";
}
/**
* @param startString the startString to set
*/
public final void setStartString(String startString)
{
this.startString = startString;
}
public ParsedURL formSearchUrl(String query, int numResults, int currentFirstResultIndex)
{
query = query.replace(' ', '+');
StringBuilder url = new StringBuilder(urlPrefix);
url.append(query);
if (!StringTools.isNullOrEmpty(numResultString) && numResults > 0)
url.append(numResultString).append(numResults);
if (!StringTools.isNullOrEmpty(startString) && currentFirstResultIndex > 0)
url.append(startString).append(currentFirstResultIndex);
if (!StringTools.isNullOrEmpty(urlSuffix))
url.append(urlSuffix);
return ParsedURL.getAbsolute(url.toString());
}
}