/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.security.rbac.MethodStereotype
 *  com.l7tech.gateway.common.security.rbac.Secured
 *  com.l7tech.objectmodel.DeleteException
 *  com.l7tech.objectmodel.Entity
 *  com.l7tech.objectmodel.EntityHeader
 *  com.l7tech.objectmodel.EntityHeaderSet
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.objectmodel.ReadOnlyEntityManager
 *  com.l7tech.objectmodel.SaveException
 *  com.l7tech.objectmodel.SecurityZoneEntityManager
 *  com.l7tech.objectmodel.UpdateException
 *  org.jetbrains.annotations.NotNull
 */
package com.l7tech.server;

import com.l7tech.gateway.common.security.rbac.MethodStereotype;
import com.l7tech.gateway.common.security.rbac.Secured;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityHeaderSet;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.ReadOnlyEntityManager;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.SecurityZoneEntityManager;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.server.EntityFinder;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.jetbrains.annotations.NotNull;

public interface EntityCrud
extends EntityFinder,
SecurityZoneEntityManager {
    public static final String f;

    @Secured(stereotype=MethodStereotype.SAVE)
    public Serializable save(Entity var1) throws SaveException;

    @Secured(stereotype=MethodStereotype.SAVE)
    public void save(Goid var1, Entity var2) throws SaveException;

    @Secured(stereotype=MethodStereotype.UPDATE)
    public void update(Entity var1) throws UpdateException;

    @Secured(stereotype=MethodStereotype.DELETE_ENTITY)
    public void delete(Entity var1) throws DeleteException;

    @Secured(stereotype=MethodStereotype.NONE)
    default public void addEntityManagers(List<ReadOnlyEntityManager<? extends Entity, ? extends EntityHeader>> list) {
        throw new RuntimeException(f);
    }

    @Override
    @Secured(stereotype=MethodStereotype.FIND_HEADERS)
    public EntityHeaderSet<EntityHeader> findAll(Class<? extends Entity> var1) throws FindException;

    @Secured(stereotype=MethodStereotype.FIND_HEADERS)
    public EntityHeaderSet<EntityHeader> findAll(Class<? extends Entity> var1, Map<String, String> var2, int var3, int var4) throws FindException;

    @Secured(stereotype=MethodStereotype.FIND_ENTITIES)
    public <ET extends Entity> List<ET> findAll(Class<ET> var1, Map<String, List<Object>> var2, int var3, int var4, Boolean var5, String var6) throws FindException;

    @Secured(stereotype=MethodStereotype.FIND_HEADERS)
    public EntityHeaderSet<EntityHeader> findAllInScope(Class<? extends Entity> var1, EntityHeader var2, Map<String, String> var3, int var4, int var5) throws FindException;

    @Override
    @Secured(stereotype=MethodStereotype.FIND_ENTITIES)
    public Entity find(@NotNull EntityHeader var1) throws FindException;

    @Override
    @Secured(stereotype=MethodStereotype.FIND_ENTITIES)
    public <ET extends Entity> ET find(Class<ET> var1, Serializable var2) throws FindException;

    @Override
    @Secured(stereotype=MethodStereotype.FIND_HEADERS)
    public EntityHeader findHeader(EntityType var1, Serializable var2) throws FindException;

    public void evict(Entity var1);

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    static {
        char[] cArray;
        block11: {
            int n2;
            int n3;
            int n4;
            block10: {
                char[] cArray2 = "x)[\u000b\u0016?nY\"ZS\u0005;aAgJ\u001cF;iI\u0002P\u0007\u000f.t`&P\u0012\u0001?\u007f^gQ\u001dF\u001fcY.J\n%(xIgJ\u001b\u0007.-I([\u0000F4bYg[\u000b\u0012?cIgX\u0001\t7-h)J\u001a\u0012#N_2Z:\u000b*a".toCharArray();
                n4 = 6;
                cArray = cArray2;
                n3 = cArray2.length;
                n2 = 0;
                if (!true) break block10;
                n3 = n3;
                if (n3 <= n2) break block11;
            }
            do {
                n4 = n4;
                cArray = cArray;
                int n5 = n2;
                cArray[n5] = (char)(cArray[n5] ^ (n4 ^ (switch (n2 % 7) {
                    case 0 -> 43;
                    case 1 -> 65;
                    case 2 -> 56;
                    case 3 -> 117;
                    case 4 -> 96;
                    case 5 -> 92;
                    default -> 11;
                })));
                ++n2;
                n3 = n3;
            } while (n3 > n2);
        }
        f = new String(cArray).intern();
    }
}

