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

com.samskivert.depot.clause.FromOverride Maven / Gradle / Ivy

//
// Depot library - a Java relational persistence library
// https://github.com/threerings/depot/blob/master/LICENSE

package com.samskivert.depot.clause;

import java.util.Collection;
import java.util.List;

import com.google.common.collect.Lists;

import com.samskivert.depot.PersistentRecord;
import com.samskivert.depot.impl.DepotUtil;
import com.samskivert.depot.impl.FragmentVisitor;

/**
 *  Completely overrides the FROM clause, if it exists.
 */
public class FromOverride implements QueryClause
{
    public FromOverride (Class fromClass)
    {
        _fromClasses.add(fromClass);
    }

    public FromOverride (Class fromClass1,
                         Class fromClass2)
    {
        _fromClasses.add(fromClass1);
        _fromClasses.add(fromClass2);
    }

    public FromOverride (Collection> fromClasses)
    {
        _fromClasses.addAll(fromClasses);
    }

    public List> getFromClasses ()
    {
        return _fromClasses;
    }

    // from SQLExpression
    public void addClasses (Collection> classSet)
    {
        classSet.addAll(getFromClasses());
    }

    // from SQLExpression
    public Object accept (FragmentVisitor builder)
    {
        return builder.visit(this);
    }

    @Override // from Object
    public String toString ()
    {
        StringBuilder builder = new StringBuilder();
        for (Class clazz : _fromClasses) {
            if (builder.length() > 0) {
                builder.append(", ");
            }
            builder.append(DepotUtil.justClassName(clazz));
        }
        return builder.toString();
    }

    /** The classes of the tables we're selecting from. */
    protected List> _fromClasses = Lists.newArrayList();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy