/* * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc., and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * 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 org.jboss.cdi.tck.tests.implementation.disposal.method.definition; import javax.enterprise.context.RequestScoped; import javax.enterprise.inject.Any; import javax.enterprise.inject.Disposes; import javax.enterprise.inject.Produces; public class SpiderProducer { private static boolean tameSpiderDestroyed = false; private static boolean deadliestTarantulaDestroyed = false; private static boolean deadliestSandSpiderDestroyed = false; private static int widowsDestroyed = 0; private static boolean scaryBlackWidowDestroyed = false; private static boolean tameBlackWidowDestroyed = false; @Produces @Scary @SuppressWarnings("unused") private final Calisoga scaryCalisoga = new Calisoga("scary"); @Produces @Tame @SuppressWarnings("unused") @RequestScoped private final Calisoga tameCalisoga = new Calisoga("tame"); @Produces @Tame public Tarantula produceTameTarantula() { return new DefangedTarantula(0); } @Produces @Deadliest public SandSpider produceDeadliestSandSpider() { return new SandSpider(); } @Produces @Deadliest public WebSpider produceDeadliestWebSpider() { return new WebSpider(); } @Produces @Deadliest public Tarantula producesDeadliestTarantula(@Tame Tarantula tameTarantula, Tarantula tarantula) { return tameTarantula.getDeathsCaused() >= tarantula.getDeathsCaused() ? tameTarantula : tarantula; } @Produces @Tame public Widow produceTameWidow() { return new Widow("steatoda"); } @Produces @Deadliest public Widow produceDeadliestWidow() { return new Widow("black"); } public void destroyTameTarantula(@Disposes @Tame Tarantula spider) { SpiderProducer.tameSpiderDestroyed = true; } public void destroyTameSandSpider(@Disposes @Deadliest SandSpider spider) { SpiderProducer.deadliestSandSpiderDestroyed = true; } public static void destroyDeadliestSpider(@Disposes @Deadliest Tarantula spider, Tarantula anotherSpider) { assert spider != anotherSpider; SpiderProducer.deadliestTarantulaDestroyed = true; } public void destroyScaryCalisoga(@Disposes @Scary Calisoga calisoga) { assert calisoga != null; assert "scary".equals(calisoga.getName()); scaryBlackWidowDestroyed = true; } public void destroyTameCalisoga(@Disposes @Tame Calisoga calisoga) { assert calisoga != null; assert "tame".equals(calisoga.getName()); tameBlackWidowDestroyed = true; } public void destroyWidow(@Disposes @Any Widow widow) { widowsDestroyed++; } public static boolean isTameSpiderDestroyed() { return tameSpiderDestroyed; } public static boolean isDeadliestTarantulaDestroyed() { return deadliestTarantulaDestroyed; } public static int getWidowsDestroyed() { return widowsDestroyed; } public static boolean isScaryBlackWidowDestroyed() { return scaryBlackWidowDestroyed; } public static boolean isTameBlackWidowDestroyed() { return tameBlackWidowDestroyed; } public static boolean isDeadliestSandSpiderDestroyed() { return deadliestSandSpiderDestroyed; } public static void reset() { tameSpiderDestroyed = false; deadliestTarantulaDestroyed = false; widowsDestroyed = 0; scaryBlackWidowDestroyed = false; tameBlackWidowDestroyed = false; } }