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

com.impetus.kundera.persistence.EntityReader Maven / Gradle / Ivy

There is a newer version: 2.9
Show newest version
/*******************************************************************************
 * * Copyright 2012 Impetus Infotech.
 *  *
 *  * 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.impetus.kundera.persistence;

import java.util.List;
import java.util.Map;

import com.impetus.kundera.client.Client;
import com.impetus.kundera.client.EnhanceEntity;
import com.impetus.kundera.metadata.model.EntityMetadata;

/**
 * The Interface EntityReader.
 * 
 * @author vivek.mishra
 * 
 *         Interface to provide declarations for methods responsible for entity
 *         read operations.(Except queries).
 */
public interface EntityReader
{

    /**
     * Method responsible for reading back entity and relations using secondary
     * indexes(if it holds any relation), else retrieve row keys using lucene.
     * 
     * @param m
     *            entity meta data
     * @param relationNames
     *            relation names
     * @param isParent
     *            if entity is not holding any relation.
     * @param client
     *            client instance
     * @return list of wrapped enhance entities.
     */
    List populateRelation(EntityMetadata m, Client client, int maxResults);

    /**
     * Returns populated entity along with all relational value.
     * 
     * @param e
     *            enhance entity
     * @param graphs
     *            entity graph
     * @param collectionHolder
     *            collection holder.
     * @param client
     *            client
     * @param m
     *            entity meta data
     * @param persistenceDelegeator
     *            persistence delegator.
     * @param lazily loaded. true if invoked over lazily fetched object.           
     * @return populate entity.
     * @throws Exception
     *             the exception
     */

    Object recursivelyFindEntities(Object entity, Map relationsMap, EntityMetadata m,
            PersistenceDelegator pd, boolean lazilyLoaded);

    /**
     * Find by id.
     * 
     * @param primaryKey
     *            the primary key
     * @param m
     *            the m
     * @param relationNames
     *            the relation names
     * @param client
     *            the client
     * @return the enhance entity
     */
    EnhanceEntity findById(Object primaryKey, EntityMetadata m, Client client);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy