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

com.blazebit.persistence.impl.ReturningModificationCriteraBuilderFactoryImpl Maven / Gradle / Ivy

/*
 * Copyright 2014 - 2020 Blazebit.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.blazebit.persistence.impl;

import com.blazebit.persistence.ReturningDeleteCriteriaBuilder;
import com.blazebit.persistence.ReturningInsertCriteriaBuilder;
import com.blazebit.persistence.ReturningModificationCriteriaBuilderFactory;
import com.blazebit.persistence.ReturningUpdateCriteriaBuilder;

/**
 *
 * @author Christian Beikov
 * @author Moritz Becker
 * @since 1.1.0
 */
public class ReturningModificationCriteraBuilderFactoryImpl implements ReturningModificationCriteriaBuilderFactory {

    private final MainQuery mainQuery;
    private final CTEManager.CTEKey cteKey;
    private final Class cteClass;
    private final X result;
    private final CTEBuilderListener listener;

    ReturningModificationCriteraBuilderFactoryImpl(MainQuery mainQuery, CTEManager.CTEKey cteKey, Class cteClass, X result, final CTEBuilderListener listener) {
        this.mainQuery = mainQuery;
        this.cteKey = cteKey;
        this.cteClass = cteClass;
        this.result = result;
        this.listener = listener;
    }

    @Override
    public  ReturningDeleteCriteriaBuilder delete(Class deleteClass) {
        return delete(deleteClass, null);
    }

    @Override
    public  ReturningDeleteCriteriaBuilder delete(Class deleteClass, String alias) {
        ReturningDeleteCriteriaBuilderImpl cb = new ReturningDeleteCriteriaBuilderImpl(mainQuery, mainQuery.cteManager.getQueryContext(), deleteClass, alias, cteKey, cteClass, result, listener);
        listener.onBuilderStarted(cb);
        return cb;
    }

    @Override
    public  ReturningDeleteCriteriaBuilder deleteCollection(Class deleteOwnerClass, String collectionName) {
        return deleteCollection(deleteOwnerClass, null, collectionName);
    }

    @Override
    public  ReturningDeleteCriteriaBuilder deleteCollection(Class deleteOwnerClass, String alias, String collectionName) {
        ReturningDeleteCollectionCriteriaBuilderImpl cb = new ReturningDeleteCollectionCriteriaBuilderImpl(mainQuery, mainQuery.cteManager.getQueryContext(), deleteOwnerClass, alias, cteKey, cteClass, result, listener, collectionName);
        listener.onBuilderStarted(cb);
        return cb;
    }

    @Override
    public  ReturningUpdateCriteriaBuilder update(Class updateClass) {
        return update(updateClass, null);
    }

    @Override
    public  ReturningUpdateCriteriaBuilder update(Class updateClass, String alias) {
        ReturningUpdateCriteriaBuilderImpl cb = new ReturningUpdateCriteriaBuilderImpl(mainQuery, mainQuery.cteManager.getQueryContext(), updateClass, alias, cteKey, cteClass, result, listener);
        listener.onBuilderStarted(cb);
        return cb;
    }

    @Override
    public  ReturningUpdateCriteriaBuilder updateCollection(Class updateOwnerClass, String collectionName) {
        return updateCollection(updateOwnerClass, null, collectionName);
    }

    @Override
    public  ReturningUpdateCriteriaBuilder updateCollection(Class updateOwnerClass, String alias, String collectionName) {
        ReturningUpdateCollectionCriteriaBuilderImpl cb = new ReturningUpdateCollectionCriteriaBuilderImpl(mainQuery, mainQuery.cteManager.getQueryContext(), updateOwnerClass, alias, cteKey, cteClass, result, listener, collectionName);
        listener.onBuilderStarted(cb);
        return cb;
    }

    @Override
    public  ReturningInsertCriteriaBuilder insert(Class insertClass) {
        ReturningInsertCriteriaBuilderImpl cb = new ReturningInsertCriteriaBuilderImpl(mainQuery, mainQuery.cteManager.getQueryContext(), insertClass, cteKey, cteClass, result, listener);
        listener.onBuilderStarted(cb);
        return cb;
    }

    @Override
    public  ReturningInsertCriteriaBuilder insertCollection(Class insertOwnerClass, String collectionName) {
        ReturningInsertCollectionCriteriaBuilderImpl cb = new ReturningInsertCollectionCriteriaBuilderImpl(mainQuery, mainQuery.cteManager.getQueryContext(), insertOwnerClass, cteKey, cteClass, result, listener, collectionName);
        listener.onBuilderStarted(cb);
        return cb;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy