package com.capgemini.reports.teamcenter.queries.saved;

import com.capgemini.framework.teamcenter.authent.TcSession;
import com.capgemini.framework.teamcenter.queries.saved.AbstractReplicatedQuery;
import com.teamcenter.soa.client.model.ModelObject;
import com.teamcenter.soa.client.model.strong.Item;
import com.teamcenter.soa.client.model.strong.ItemRevision;

/**
 * This class is able to look for GenericAssemb objects in Teamcenter.
 *
 * @param <T> the expected type of the Object: either {@link Item} or {@link ItemRevision}
 */
public class GenericAssembQuery<T extends ModelObject> extends AbstractReplicatedQuery<T, GenericAssembQuery<T>> {

    /**
     * Query name of Teamcenter for requesting a GenericAssemb.
     */
    protected static final String QUERY_SUFFIX_GENERIC_ASSEMB = "Generic Assemb";


    /**
     * Constructor to build a Query for GenericAssemb objects.
     *
     * @param session the session for the connection
     */
    public GenericAssembQuery(final TcSession session) {
        super(session, QUERY_SUFFIX_GENERIC_ASSEMB);
    }


    @Override
    protected GenericAssembQuery<T> selfCast() {
        return this;
    }

}
