All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.grosner.processor.model.builder.MockConditionQueryBuilder Maven / Gradle / Ivy

The newest version!
package com.grosner.processor.model.builder;

import com.grosner.dbflow.annotation.ForeignKeyReference;
import com.grosner.dbflow.sql.QueryBuilder;
import com.grosner.processor.utils.ModelUtils;

/**
 * Author: andrewgrosner
 * Contributors: { }
 * Description:
 */
public class MockConditionQueryBuilder extends QueryBuilder {

    public MockConditionQueryBuilder() {
    }

    public MockConditionQueryBuilder(String string) {
        super(string);
    }

    public MockConditionQueryBuilder appendForeignKeyReferences(String foreignColumnTableClass, String columnName,
                                                                 ForeignKeyReference[] foreignKeyReferences) {
        for(int i = 0; i < foreignKeyReferences.length; i++) {
            ForeignKeyReference foreignKeyReference = foreignKeyReferences[i];
            append("and(").appendMockCursorCondition(ModelUtils.getStaticMember(foreignColumnTableClass, foreignKeyReference.foreignColumnName()),
                    ModelUtils.getClassFromAnnotation(foreignKeyReference),
                    foreignKeyReference.columnName()).append(")");

            if(i < foreignKeyReferences.length - 1) {
                append(".");
            }
        }

        return this;
    }

    public MockConditionQueryBuilder appendMockCursorCondition(String foreignColumnModelField, String fieldType, String localColumn) {
        return appendMockCondition(foreignColumnModelField, ModelUtils.getCursorStatement(fieldType, localColumn));
    }

    public MockConditionQueryBuilder appendMockCondition(String foreignColumnModelField, String modelStatement) {
        append("Condition.column").appendParenthesisEnclosed(foreignColumnModelField).append(".is")
                .appendParenthesisEnclosed(modelStatement);
        return this;
    }

    public MockConditionQueryBuilder appendCreation(String modelClassName) {
        return append("new").appendSpace().append("ConditionQueryBuilder<").append(modelClassName)
                .append(">(").append(ModelUtils.getFieldClass(modelClassName)).append(", ");
    }

    public MockConditionQueryBuilder appendEndCreation() {
        return append(")");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy