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

com.agiletec.aps.system.common.entity.IEntityManager Maven / Gradle / Ivy

Go to download

Entando Engine: an agile, modern and user-centric open source Portal platform.

There is a newer version: 6.2.27
Show newest version
/*
 * Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */
package com.agiletec.aps.system.common.entity;

import com.agiletec.aps.system.common.IManager;
import java.util.List;
import java.util.Map;

import com.agiletec.aps.system.common.entity.model.ApsEntityRecord;
import com.agiletec.aps.system.common.entity.model.EntitySearchFilter;
import com.agiletec.aps.system.common.entity.model.IApsEntity;
import com.agiletec.aps.system.common.entity.model.SmallEntityType;
import com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface;
import com.agiletec.aps.system.common.entity.model.attribute.AttributeRole;
import com.agiletec.aps.system.exception.ApsSystemException;

/**
 * Base interface for the entity managers.
 *
 * @author E.Santoboni
 */
public interface IEntityManager extends IManager {

    /**
     * Return the entity class handled by the manager.
     *
     * @return The class of the managed entity.
     */
    public Class getEntityClass();

    /**
     * Search entities.
     *
     * @param filters The filters used to find an sort the entities IDs that
     * match the given criteria.
     * @return The list of the IDs found.
     * @throws ApsSystemException In case of error.
     */
    public List searchId(EntitySearchFilter[] filters) throws ApsSystemException;

    /**
     * Search entities.
     *
     * @param typeCode The code of the Entity Types to look for.
     * @param filters The search filters to apply to find and sort the ID found.
     * @return The list of the ID found.
     * @throws ApsSystemException In case of error.
     */
    public List searchId(String typeCode, EntitySearchFilter[] filters) throws ApsSystemException;

    /**
     * Search the entity record
     *
     * @param filters The filters applied to
     * @return a list of entity records
     * @throws ApsSystemException
     */
    public List searchRecords(EntitySearchFilter[] filters) throws ApsSystemException;

    /**
     * Create an object from the prototype.
     *
     * @param typeCode The type of the prototype to return.
     * @return The object created from the prototype.
     */
    public IApsEntity getEntityPrototype(String typeCode);

    /**
     * Get the entity identified by its ID.
     *
     * @param entityId The ID of the entity.
     * @return The requested entity.
     * @throws ApsSystemException In case of error.
     */
    public IApsEntity getEntity(String entityId) throws ApsSystemException;

    /**
     * Return the map of entity prototypes.
     *
     * @return The map of entity prototypes, indexed by the Entity Type
     */
    public Map getEntityPrototypes();

    /**
     * Get the prototype of the Entity Attributes.
     *
     * @return The map of the attribute prototypes, indxed
     */
    public Map getEntityAttributePrototypes();

    public List getSmallEntityTypes();

    /**
     * Check if the service uses the search engine or not.
     *
     * @return true if the service uses the search engine, false otherwise.
     */
    public boolean isSearchEngineUser();

    public Thread reloadEntitiesReferences(String typeCode);

    public int getStatus(String typeCode);

    public int getStatus();

    public Map getAttributeDisablingCodes();

    public List getAttributeRoles();

    public AttributeRole getAttributeRole(String roleName);

    public static final String ENTITY_ID_FILTER_KEY = "entityId";

    public static final String ENTITY_TYPE_CODE_FILTER_KEY = "typeCode";

    public static final int STATUS_READY = 0;
    public static final int STATUS_RELOADING_REFERENCES_IN_PROGRESS = 1;
    public static final int STATUS_NEED_TO_RELOAD_REFERENCES = 2;

    public static final String DEFAULT_ATTRIBUTE_ROLES_FILE_NAME = "attributeRoles.xml";

    public static final String DEFAULT_ATTRIBUTE_DISABLING_CODES_FILE_NAME = "attributeDisablingCodes.xml";

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy