Search in sources :

Example 26 with Triple

use of org.apache.commons.lang3.tuple.Triple in project ImmersiveEngineering by BluSunrize.

the class ItemRevolver method onItemRightClick.

@Override
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, @Nonnull EnumHand hand) {
    ItemStack revolver = player.getHeldItem(hand);
    if (!world.isRemote) {
        if (player.isSneaking()) {
            CommonProxy.openGuiForItem(player, hand == EnumHand.MAIN_HAND ? EntityEquipmentSlot.MAINHAND : EntityEquipmentSlot.OFFHAND);
            return new ActionResult(EnumActionResult.SUCCESS, revolver);
        } else if (player.getCooledAttackStrength(1) >= 1) {
            if (this.getUpgrades(revolver).getBoolean("nerf"))
                world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 1f, 0.6f);
            else {
                if (getShootCooldown(revolver) > 0 || ItemNBTHelper.hasKey(revolver, "reload"))
                    return new ActionResult(EnumActionResult.PASS, revolver);
                NonNullList<ItemStack> bullets = getBullets(revolver);
                if (isEmpty(revolver, false))
                    for (int i = 0; i < player.inventory.getSizeInventory(); i++) {
                        ItemStack stack = player.inventory.getStackInSlot(i);
                        if (stack.getItem() instanceof ItemSpeedloader && !((ItemSpeedloader) stack.getItem()).isEmpty(stack)) {
                            for (ItemStack b : bullets) if (!b.isEmpty())
                                world.spawnEntity(new EntityItem(world, player.posX, player.posY, player.posZ, b));
                            setBullets(revolver, ((ItemSpeedloader) stack.getItem()).getContainedItems(stack), true);
                            ((ItemSpeedloader) stack.getItem()).setContainedItems(stack, NonNullList.withSize(8, ItemStack.EMPTY));
                            player.inventory.markDirty();
                            if (player instanceof EntityPlayerMP)
                                ImmersiveEngineering.packetHandler.sendTo(new MessageSpeedloaderSync(i, hand), (EntityPlayerMP) player);
                            ItemNBTHelper.setInt(revolver, "reload", 60);
                            return new ActionResult(EnumActionResult.SUCCESS, revolver);
                        }
                    }
                if (!ItemNBTHelper.hasKey(revolver, "reload")) {
                    if (!bullets.get(0).isEmpty() && bullets.get(0).getItem() instanceof ItemBullet && ItemNBTHelper.hasKey(bullets.get(0), "bullet")) {
                        String key = ItemNBTHelper.getString(bullets.get(0), "bullet");
                        IBullet bullet = BulletHandler.getBullet(key);
                        if (bullet != null) {
                            Vec3d vec = player.getLookVec();
                            boolean electro = getUpgrades(revolver).getBoolean("electro");
                            int count = bullet.getProjectileCount(player);
                            if (count == 1) {
                                Entity entBullet = getBullet(player, vec, vec, key, bullets.get(0), electro);
                                player.world.spawnEntity(bullet.getProjectile(player, bullets.get(0), entBullet, electro));
                            } else
                                for (int i = 0; i < count; i++) {
                                    Vec3d vecDir = vec.add(player.getRNG().nextGaussian() * .1, player.getRNG().nextGaussian() * .1, player.getRNG().nextGaussian() * .1);
                                    Entity entBullet = getBullet(player, vec, vecDir, key, bullets.get(0), electro);
                                    player.world.spawnEntity(bullet.getProjectile(player, bullets.get(0), entBullet, electro));
                                }
                            bullets.set(0, bullet.getCasing(bullets.get(0)).copy());
                            float noise = 0.5f;
                            if (hasUpgradeValue(revolver, RevolverPerk.NOISE.getNBTKey()))
                                noise *= (float) getUpgradeValue_d(revolver, RevolverPerk.NOISE.getNBTKey());
                            Utils.attractEnemies(player, 64 * noise);
                            SoundEvent sound = bullet.getSound();
                            if (sound == null)
                                sound = IESounds.revolverFire;
                            world.playSound(null, player.posX, player.posY, player.posZ, sound, SoundCategory.PLAYERS, noise, 1f);
                        } else
                            world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.BLOCK_NOTE_HAT, SoundCategory.PLAYERS, 1f, 1f);
                    } else
                        world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.BLOCK_NOTE_HAT, SoundCategory.PLAYERS, 1f, 1f);
                    rotateCylinder(revolver, player, true, bullets);
                    ItemNBTHelper.setInt(revolver, "cooldown", getMaxShootCooldown(revolver));
                    return new ActionResult(EnumActionResult.SUCCESS, revolver);
                }
            }
        }
    } else if (!player.isSneaking() && revolver.getItemDamage() == 0) {
        if (getShootCooldown(revolver) > 0 || ItemNBTHelper.hasKey(revolver, "reload"))
            return new ActionResult(EnumActionResult.PASS, revolver);
        NonNullList<ItemStack> bullets = getBullets(revolver);
        if (!bullets.get(0).isEmpty() && bullets.get(0).getItem() instanceof ItemBullet && ItemNBTHelper.hasKey(bullets.get(0), "bullet")) {
            Triple<ItemStack, ShaderRegistryEntry, ShaderCase> shader = ShaderRegistry.getStoredShaderAndCase(revolver);
            if (shader != null) {
                Vec3d pos = Utils.getLivingFrontPos(player, .75, player.height * .75, hand == EnumHand.MAIN_HAND ? player.getPrimaryHand() : player.getPrimaryHand().opposite(), false, 1);
                shader.getMiddle().getEffectFunction().execute(world, shader.getLeft(), revolver, shader.getRight().getShaderType(), pos, player.getForward(), .125f);
            }
        }
        return new ActionResult(EnumActionResult.SUCCESS, revolver);
    }
    return new ActionResult(EnumActionResult.SUCCESS, revolver);
}
Also used : IBullet(blusunrize.immersiveengineering.api.tool.BulletHandler.IBullet) Entity(net.minecraft.entity.Entity) Vec3d(net.minecraft.util.math.Vec3d) Triple(org.apache.commons.lang3.tuple.Triple) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) MessageSpeedloaderSync(blusunrize.immersiveengineering.common.util.network.MessageSpeedloaderSync) ItemStack(net.minecraft.item.ItemStack) EntityItem(net.minecraft.entity.item.EntityItem)

Example 27 with Triple

use of org.apache.commons.lang3.tuple.Triple in project alluxio by Alluxio.

the class AlluxioWorkerRestServiceHandler method getWebUIConfiguration.

/**
 * Gets Web UI ServerConfiguration page data.
 *
 * @return the response object
 */
@GET
@Path(WEBUI_CONFIG)
public Response getWebUIConfiguration() {
    return RestUtils.call(() -> {
        WorkerWebUIConfiguration response = new WorkerWebUIConfiguration();
        response.setWhitelist(mBlockWorker.getWhiteList());
        TreeSet<Triple<String, String, String>> sortedProperties = new TreeSet<>();
        Set<String> alluxioConfExcludes = Sets.newHashSet(PropertyKey.WORKER_WHITELIST.toString());
        for (ConfigProperty configProperty : mBlockWorker.getConfiguration(GetConfigurationPOptions.newBuilder().setRawValue(true).build()).toProto().getClusterConfigsList()) {
            String confName = configProperty.getName();
            if (!alluxioConfExcludes.contains(confName)) {
                sortedProperties.add(new ImmutableTriple<>(confName, ConfigurationUtils.valueAsString(configProperty.getValue()), configProperty.getSource()));
            }
        }
        response.setConfiguration(sortedProperties);
        return response;
    }, ServerConfiguration.global());
}
Also used : Triple(org.apache.commons.lang3.tuple.Triple) ImmutableTriple(org.apache.commons.lang3.tuple.ImmutableTriple) WorkerWebUIConfiguration(alluxio.wire.WorkerWebUIConfiguration) TreeSet(java.util.TreeSet) ConfigProperty(alluxio.grpc.ConfigProperty) Path(javax.ws.rs.Path) GET(javax.ws.rs.GET)

Example 28 with Triple

use of org.apache.commons.lang3.tuple.Triple in project midpoint by Evolveum.

the class TestAssignmentProcessor2 method test020AssignMR1ToR1.

@Test(enabled = FIRST_PART)
public void test020AssignMR1ToR1() throws Exception {
    // GIVEN
    Task task = getTestTask();
    OperationResult result = getTestOperationResult();
    LensContext<RoleType> context = createContextForAssignment(RoleType.class, ROLE_R1_OID, RoleType.class, ROLE_MR1_OID, null, null, result);
    // WHEN
    when();
    assignmentProcessor.processAssignments(context, clock.currentTimeXMLGregorianCalendar(), task, result);
    // THEN
    then();
    displayDumpable("Output context", context);
    displayDumpable("Evaluated assignment triple", context.getEvaluatedAssignmentTriple());
    assertSuccess(result);
    // assignment of construction R1-0
    // assignment of focus mappings R1-0
    // assignment of focus policy rules R1-0
    // assignment of metarole MR1 (this will be checked)
    Collection<EvaluatedAssignmentImpl<RoleType>> evaluatedAssignments = assertAssignmentTripleSetSize(context, 4, 0, 0);
    List<EvaluatedAssignmentImpl<RoleType>> targetedAssignments = evaluatedAssignments.stream().filter(ea -> ea.getTarget() != null).collect(Collectors.toList());
    assertEquals("Wrong # of targeted assignments", 1, targetedAssignments.size());
    EvaluatedAssignmentImpl<RoleType> evaluatedAssignment = targetedAssignments.get(0);
    assertEquals("Wrong evaluatedAssignment.isValid", true, evaluatedAssignment.isValid());
    // R4, R5, R6 could be optimized out
    assertTargets(evaluatedAssignment, true, "MR1 MR3 MR4", null, null, null, null, null);
    assertTargets(evaluatedAssignment, false, "MMR1 R5 R4 R6", null, null, null, null, null);
    assertMembershipRef(evaluatedAssignment, "MR1 MR3 MR4");
    assertOrgRef(evaluatedAssignment, "");
    assertDelegation(evaluatedAssignment, null);
    assertConstructions(evaluatedAssignment, "MR1-1 MR3-1 MMR1-2 MR4-1", null, null, null, null, null);
    assertFocusMappings(evaluatedAssignment, "MR1-1 MR3-1 MMR1-2 MR4-1");
    assertFocusPolicyRules(evaluatedAssignment, "MR1-1 MR3-1 MMR1-2 MR4-1");
    assertTargetPolicyRules(evaluatedAssignment, "MR1-0 MMR1-1", "MR3-0 MR4-0");
    assertAuthorizations(evaluatedAssignment, "MR1 MR3 MR4");
    assertGuiConfig(evaluatedAssignment, "MR1 MR3 MR4");
    assertSerializable(context);
}
Also used : AssignmentOrigin(com.evolveum.midpoint.model.impl.lens.projector.AssignmentOrigin) ActivationUtil(com.evolveum.midpoint.schema.util.ActivationUtil) Autowired(org.springframework.beans.factory.annotation.Autowired) Test(org.testng.annotations.Test) com.evolveum.midpoint.util.exception(com.evolveum.midpoint.util.exception) StringUtils(org.apache.commons.lang3.StringUtils) ExpressionConstants(com.evolveum.midpoint.schema.constants.ExpressionConstants) MappingFactory(com.evolveum.midpoint.model.common.mapping.MappingFactory) AssertJUnit.assertNull(org.testng.AssertJUnit.assertNull) EvaluatedPolicyRule(com.evolveum.midpoint.model.api.context.EvaluatedPolicyRule) ResourceObjectConstruction(com.evolveum.midpoint.model.impl.lens.construction.ResourceObjectConstruction) MidPointAsserts.assertSerializable(com.evolveum.midpoint.test.util.MidPointAsserts.assertSerializable) ObjectDelta(com.evolveum.midpoint.prism.delta.ObjectDelta) ScriptExpressionEvaluationContext(com.evolveum.midpoint.model.common.expression.script.ScriptExpressionEvaluationContext) MultiValuedMap(org.apache.commons.collections4.MultiValuedMap) ItemDeltaItem(com.evolveum.midpoint.prism.util.ItemDeltaItem) ActivationComputer(com.evolveum.midpoint.common.ActivationComputer) MiscUtil(com.evolveum.midpoint.util.MiscUtil) Task(com.evolveum.midpoint.task.api.Task) Collectors(java.util.stream.Collectors) StandardCharsets(java.nio.charset.StandardCharsets) PlusMinusZero(com.evolveum.midpoint.prism.delta.PlusMinusZero) Stream(java.util.stream.Stream) TreeBag(org.apache.commons.collections4.bag.TreeBag) PolyStringType(com.evolveum.prism.xml.ns._public.types_3.PolyStringType) QName(javax.xml.namespace.QName) NotNull(org.jetbrains.annotations.NotNull) Clock(com.evolveum.midpoint.common.Clock) ContextLoader(com.evolveum.midpoint.model.impl.lens.projector.ContextLoader) PrismReferenceValue(com.evolveum.midpoint.prism.PrismReferenceValue) java.util(java.util) AssertJUnit(org.testng.AssertJUnit) com.evolveum.midpoint.xml.ns._public.common.common_3(com.evolveum.midpoint.xml.ns._public.common.common_3) ModelBeans(com.evolveum.midpoint.model.impl.ModelBeans) ObjectDeltaObject(com.evolveum.midpoint.prism.util.ObjectDeltaObject) SchemaConstants(com.evolveum.midpoint.schema.constants.SchemaConstants) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Function(java.util.function.Function) MappingEvaluator(com.evolveum.midpoint.model.impl.lens.projector.mappings.MappingEvaluator) CollectionUtils(org.apache.commons.collections4.CollectionUtils) com.evolveum.midpoint.model.impl.lens.assignments(com.evolveum.midpoint.model.impl.lens.assignments) ItemDelta(com.evolveum.midpoint.prism.delta.ItemDelta) EvaluationOrder(com.evolveum.midpoint.model.api.context.EvaluationOrder) ArrayListValuedHashMap(org.apache.commons.collections4.multimap.ArrayListValuedHashMap) AssignmentProcessor(com.evolveum.midpoint.model.impl.lens.projector.focus.AssignmentProcessor) AbstractConstruction(com.evolveum.midpoint.model.impl.lens.construction.AbstractConstruction) ObjectTypeUtil(com.evolveum.midpoint.schema.util.ObjectTypeUtil) Qualifier(org.springframework.beans.factory.annotation.Qualifier) PrismContainerDefinition(com.evolveum.midpoint.prism.PrismContainerDefinition) EvaluatedAssignedResourceObjectConstructionImpl(com.evolveum.midpoint.model.impl.lens.construction.EvaluatedAssignedResourceObjectConstructionImpl) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) PrismObject(com.evolveum.midpoint.prism.PrismObject) ObjectResolver(com.evolveum.midpoint.repo.common.ObjectResolver) File(java.io.File) ItemPath(com.evolveum.midpoint.prism.path.ItemPath) PrismContainerValue(com.evolveum.midpoint.prism.PrismContainerValue) ObjectTypes(com.evolveum.midpoint.schema.constants.ObjectTypes) Bag(org.apache.commons.collections4.Bag) AssertJUnit.assertEquals(org.testng.AssertJUnit.assertEquals) ItemPathType(com.evolveum.prism.xml.ns._public.types_3.ItemPathType) Task(com.evolveum.midpoint.task.api.Task) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) Test(org.testng.annotations.Test)

Example 29 with Triple

use of org.apache.commons.lang3.tuple.Triple in project robovm by robovm.

the class TrampolineCompiler method compile.

public void compile(ModuleBuilder mb, Clazz currentClass, Trampoline t, Set<String> dependencies, Set<Triple<String, String, String>> methodDependencies) {
    this.mb = mb;
    addDependencyIfNeeded(dependencies, currentClass, t);
    /*
         * Check if the target class exists and is accessible. Also check that
         * field accesses and method calls are compatible with the target 
         * field/method and that the field/method is accessible to the caller.
         * If any of the tests fail the weak trampoline function created by the
         * ClassCompiler will be overridden with a function which throws an
         * appropriate exception.
         */
    Function errorFn = new FunctionBuilder(t).linkage(external).build();
    if (!checkClassExists(errorFn, t) || !checkClassAccessible(errorFn, t)) {
        mb.addFunction(errorFn);
        return;
    }
    if (t instanceof New) {
        SootClass target = config.getClazzes().load(t.getTarget()).getSootClass();
        if (target.isAbstract() || target.isInterface()) {
            call(errorFn, BC_THROW_INSTANTIATION_ERROR, errorFn.getParameterRef(0), mb.getString(t.getTarget().replace('/', '.')));
            errorFn.add(new Unreachable());
            mb.addFunction(errorFn);
            return;
        }
        String fnName = Symbols.clinitWrapperSymbol(Symbols.allocatorSymbol(t.getTarget()));
        alias(t, fnName);
    } else if (t instanceof Instanceof) {
        if (isArray(t.getTarget())) {
            FunctionRef fnRef = createInstanceofArray((Instanceof) t);
            alias(t, fnRef.getName());
        } else {
            String fnName = Symbols.instanceofSymbol(t.getTarget());
            alias(t, fnName);
        }
    } else if (t instanceof Checkcast) {
        if (isArray(t.getTarget())) {
            FunctionRef fnRef = createCheckcastArray((Checkcast) t);
            alias(t, fnRef.getName());
        } else {
            String fnName = Symbols.checkcastSymbol(t.getTarget());
            alias(t, fnName);
        }
    } else if (t instanceof LdcClass) {
        if (isArray(t.getTarget())) {
            FunctionRef fnRef = createLdcArray((LdcClass) t);
            alias(t, fnRef.getName());
        } else {
            String fnName = Symbols.ldcExternalSymbol(t.getTarget());
            alias(t, fnName);
        }
    } else if (t instanceof Anewarray) {
        FunctionRef fnRef = createAnewarray((Anewarray) t);
        alias(t, fnRef.getName());
    } else if (t instanceof Multianewarray) {
        FunctionRef fnRef = createMultianewarray((Multianewarray) t);
        alias(t, fnRef.getName());
    } else if (t instanceof FieldAccessor) {
        SootField field = resolveField(errorFn, (FieldAccessor) t);
        if (field != null) {
            dependencies.add(getInternalName(field.getDeclaringClass()));
        }
        if (field == null || !checkMemberAccessible(errorFn, t, field)) {
            mb.addFunction(errorFn);
            return;
        }
        Clazz caller = config.getClazzes().load(t.getCallingClass());
        Clazz target = config.getClazzes().load(t.getTarget());
        if (!((FieldAccessor) t).isGetter() && field.isFinal() && caller != target) {
            // Only the class declaring a final field may write to it.
            // (Actually only <init>/<clinit> methods may write to it but we 
            // don't know which method is accessing the field at this point)
            throwIllegalAccessError(errorFn, ATTEMPT_TO_WRITE_TO_FINAL_FIELD, target, field.getName(), caller);
            mb.addFunction(errorFn);
            return;
        }
        if (!field.isStatic()) {
            createInlinedAccessorForInstanceField((FieldAccessor) t, field);
        } else {
            createTrampolineAliasForField((FieldAccessor) t, field);
        }
    } else if (t instanceof Invokeinterface) {
        SootMethod rm = resolveInterfaceMethod(errorFn, (Invokeinterface) t);
        if (rm != null) {
            methodDependencies.add(new ImmutableTriple<String, String, String>(getInternalName(rm.getDeclaringClass()), rm.getName(), getDescriptor(rm)));
        }
        if (rm == null || !checkMemberAccessible(errorFn, t, rm)) {
            mb.addFunction(errorFn);
            return;
        }
        createTrampolineAliasForMethod((Invoke) t, rm);
    } else if (t instanceof Invoke) {
        SootMethod method = resolveMethod(errorFn, (Invoke) t);
        if (method != null) {
            methodDependencies.add(new ImmutableTriple<String, String, String>(getInternalName(method.getDeclaringClass()), method.getName(), getDescriptor(method)));
        }
        if (method == null || !checkMemberAccessible(errorFn, t, method)) {
            mb.addFunction(errorFn);
            return;
        }
        if (t instanceof Invokespecial && method.isAbstract()) {
            call(errorFn, BC_THROW_ABSTRACT_METHOD_ERROR, errorFn.getParameterRef(0), mb.getString(String.format(NO_SUCH_METHOD_ERROR, method.getDeclaringClass(), method.getName(), getDescriptor(method))));
            errorFn.add(new Unreachable());
            mb.addFunction(errorFn);
            return;
        }
        createTrampolineAliasForMethod((Invoke) t, method);
    }
}
Also used : New(org.robovm.compiler.trampoline.New) ImmutableTriple(org.apache.commons.lang3.tuple.ImmutableTriple) Anewarray(org.robovm.compiler.trampoline.Anewarray) Multianewarray(org.robovm.compiler.trampoline.Multianewarray) SootClass(soot.SootClass) FieldAccessor(org.robovm.compiler.trampoline.FieldAccessor) Invokeinterface(org.robovm.compiler.trampoline.Invokeinterface) Invoke(org.robovm.compiler.trampoline.Invoke) Invokespecial(org.robovm.compiler.trampoline.Invokespecial) Function(org.robovm.compiler.llvm.Function) Unreachable(org.robovm.compiler.llvm.Unreachable) LdcClass(org.robovm.compiler.trampoline.LdcClass) Instanceof(org.robovm.compiler.trampoline.Instanceof) SootMethod(soot.SootMethod) SootField(soot.SootField) Clazz(org.robovm.compiler.clazz.Clazz) Checkcast(org.robovm.compiler.trampoline.Checkcast) FunctionRef(org.robovm.compiler.llvm.FunctionRef)

Example 30 with Triple

use of org.apache.commons.lang3.tuple.Triple in project alluxio by Alluxio.

the class PermissionCheckTest method getPermissionOther.

@Test
public void getPermissionOther() throws Exception {
    ArrayList<Triple<String, String, Mode>> permissions = new ArrayList<>();
    permissions.add(new ImmutableTriple<>(TEST_USER_1.getUser(), TEST_USER_1.getGroup(), new Mode((short) 0754)));
    LockedInodePath lockedInodePath = getLockedInodePath(permissions);
    try (SetAndRestoreAuthenticatedUser u = new SetAndRestoreAuthenticatedUser(TEST_USER_2.getUser())) {
        PermissionChecker checker = new PermissionChecker(mInodeTree);
        Mode.Bits actual = checker.getPermission(lockedInodePath);
        Assert.assertEquals(Mode.Bits.READ, actual);
    }
}
Also used : Triple(org.apache.commons.lang3.tuple.Triple) ImmutableTriple(org.apache.commons.lang3.tuple.ImmutableTriple) MutableLockedInodePath(alluxio.master.file.meta.MutableLockedInodePath) LockedInodePath(alluxio.master.file.meta.LockedInodePath) SetAndRestoreAuthenticatedUser(alluxio.SetAndRestoreAuthenticatedUser) Mode(alluxio.security.authorization.Mode) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Aggregations

Triple (org.apache.commons.lang3.tuple.Triple)51 ArrayList (java.util.ArrayList)20 ImmutableTriple (org.apache.commons.lang3.tuple.ImmutableTriple)18 List (java.util.List)13 Pair (org.apache.commons.lang3.tuple.Pair)10 Test (org.junit.Test)8 Collectors (java.util.stream.Collectors)7 java.util (java.util)6 Organization (alfio.model.user.Organization)5 Event (alfio.model.Event)4 Ticket (alfio.model.Ticket)4 TicketReservation (alfio.model.TicketReservation)4 IOException (java.io.IOException)4 BlockPos (net.minecraft.util.math.BlockPos)4 Mutable (org.apache.commons.lang3.mutable.Mutable)4 Triple (org.apache.hyracks.algebricks.common.utils.Triple)4 alfio.model (alfio.model)3 TicketCategory (alfio.model.TicketCategory)3 TemplateManager (alfio.util.TemplateManager)3 LockedInodePath (alluxio.master.file.meta.LockedInodePath)3