package com.hp.autonomy.frontend.find.idol.search;
import com.hp.autonomy.searchcomponents.idol.search.IdolQueryRestrictions;
import com.hp.autonomy.searchcomponents.idol.search.IdolQueryRestrictionsBuilder;
import org.joda.time.DateTime;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import java.util.Collection;
@Component
@Primary
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
class FindIdolQueryRestrictionsBuilder implements IdolQueryRestrictionsBuilder {
private final IdolQueryRestrictionsBuilder defaultBuilder;
@Autowired
public FindIdolQueryRestrictionsBuilder(final ObjectFactory<IdolQueryRestrictionsBuilder> defaultBuilderFactory) {
defaultBuilder = defaultBuilderFactory.getObject()
.anyLanguage(true);
}
@Override
public FindIdolQueryRestrictionsBuilder queryText(final String queryText) {
defaultBuilder.queryText(queryText);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder fieldText(final String fieldText) {
defaultBuilder.fieldText(fieldText);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder databases(final Collection<? extends String> databases) {
defaultBuilder.databases(databases);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder database(final String database) {
defaultBuilder.queryText(database);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder clearDatabases() {
defaultBuilder.clearDatabases();
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder minDate(final DateTime minDate) {
defaultBuilder.minDate(minDate);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder maxDate(final DateTime maxDate) {
defaultBuilder.maxDate(maxDate);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder minScore(final Integer minScore) {
defaultBuilder.minScore(minScore);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder languageType(final String languageType) {
defaultBuilder.queryText(languageType);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder anyLanguage(final boolean anyLanguage) {
defaultBuilder.anyLanguage(anyLanguage);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder stateMatchId(final String stateMatchId) {
defaultBuilder.stateMatchId(stateMatchId);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder stateMatchIds(final Collection<? extends String> stateMatchIds) {
defaultBuilder.stateMatchIds(stateMatchIds);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder clearStateMatchIds() {
defaultBuilder.clearStateMatchIds();
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder stateDontMatchId(final String stateDontMatchId) {
defaultBuilder.stateDontMatchId(stateDontMatchId);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder stateDontMatchIds(final Collection<? extends String> stateDontMatchIds) {
defaultBuilder.stateDontMatchIds(stateDontMatchIds);
return this;
}
@Override
public FindIdolQueryRestrictionsBuilder clearStateDontMatchIds() {
defaultBuilder.clearStateDontMatchIds();
return this;
}
@Override
public IdolQueryRestrictions build() {
return defaultBuilder
.build();
}
}