package com.raizlabs.android.dbflow.sql.language;
import android.support.annotation.NonNull;
import com.raizlabs.android.dbflow.StringUtils;
import com.raizlabs.android.dbflow.sql.Query;
import com.raizlabs.android.dbflow.sql.QueryBuilder;
/**
* Description: This class will use a String to describe its condition.
* Not recommended for normal queries, but can be used as a fall-back.
*/
public class UnSafeStringOperator implements SQLOperator, Query {
private final String conditionString;
private String separator = "";
public UnSafeStringOperator(String selection, String[] selectionArgs) {
String newSelection = selection;
// replace question marks in order
if (newSelection != null) {
for (String selectionArg : selectionArgs) {
newSelection = newSelection.replaceFirst("\\?", selectionArg);
}
}
this.conditionString = newSelection;
}
@Override
public void appendConditionToQuery(QueryBuilder queryBuilder) {
queryBuilder.append(conditionString);
}
@Override
public String columnName() {
return "";
}
@Override
public String separator() {
return separator;
}
@NonNull
@Override
public SQLOperator separator(String separator) {
this.separator = separator;
return this;
}
@Override
public boolean hasSeparator() {
return StringUtils.isNotNullOrEmpty(separator);
}
@Override
public String operation() {
return "";
}
@Override
public Object value() {
return "";
}
@Override
public String getQuery() {
QueryBuilder queryBuilder = new QueryBuilder();
appendConditionToQuery(queryBuilder);
return queryBuilder.getQuery();
}
}