remove SuppressWarnings annotations

master
melvin 2012-10-14 18:32:34 +08:00
parent a8d394b535
commit 1b26eb7eff
9 changed files with 65 additions and 50 deletions

View File

@ -15,6 +15,12 @@ import magic.model.event.MagicTiming;
import magic.model.mstatic.MagicCDA;
import magic.model.mstatic.MagicStatic;
import magic.model.trigger.MagicTrigger;
import magic.model.trigger.MagicWhenSpellIsCastTrigger;
import magic.model.trigger.MagicWhenComesIntoPlayTrigger;
import magic.model.trigger.MagicWhenPutIntoGraveyardTrigger;
import magic.model.trigger.MagicWhenDrawnTrigger;
import magic.model.trigger.MagicGraveyardTriggerData ;
import magic.model.stack.MagicItemOnStack;
import magic.ui.theme.Theme;
import magic.ui.theme.ThemeFactory;
@ -87,10 +93,10 @@ public class MagicCardDefinition {
private final Collection<MagicCDA> CDAs = new ArrayList<MagicCDA>();
private final Collection<MagicTrigger<?>> triggers = new ArrayList<MagicTrigger<?>>();
private final Collection<MagicStatic> statics=new ArrayList<MagicStatic>();
private final Collection<MagicTrigger<?>> comeIntoPlayTriggers = new ArrayList<MagicTrigger<?>>();
private final Collection<MagicTrigger<?>> spellIsCastTriggers = new ArrayList<MagicTrigger<?>>();
private final Collection<MagicTrigger<?>> drawnTriggers = new ArrayList<MagicTrigger<?>>();
private final Collection<MagicTrigger<?>> putIntoGraveyardTriggers = new ArrayList<MagicTrigger<?>>();
private final Collection<MagicWhenComesIntoPlayTrigger> comeIntoPlayTriggers = new ArrayList<MagicWhenComesIntoPlayTrigger>();
private final Collection<MagicWhenSpellIsCastTrigger> spellIsCastTriggers = new ArrayList<MagicWhenSpellIsCastTrigger>();
private final Collection<MagicWhenDrawnTrigger> drawnTriggers = new ArrayList<MagicWhenDrawnTrigger>();
private final Collection<MagicWhenPutIntoGraveyardTrigger> putIntoGraveyardTriggers = new ArrayList<MagicWhenPutIntoGraveyardTrigger>();
private final Collection<MagicActivation> activations=new ArrayList<MagicActivation>();
private final Collection<MagicManaActivation> manaActivations=new ArrayList<MagicManaActivation>();
private boolean excludeManaOrCombat;
@ -621,25 +627,25 @@ public class MagicCardDefinition {
CDAs.add(cda);
numCDAs++;
}
public void addTrigger(final MagicWhenSpellIsCastTrigger trigger) {
spellIsCastTriggers.add(trigger);
}
public void addTrigger(final MagicWhenComesIntoPlayTrigger trigger) {
comeIntoPlayTriggers.add(trigger);
}
public void addTrigger(final MagicWhenPutIntoGraveyardTrigger trigger) {
putIntoGraveyardTriggers.add(trigger);
}
public void addTrigger(final MagicWhenDrawnTrigger trigger) {
drawnTriggers.add(trigger);
}
public void addTrigger(final MagicTrigger<?> trigger) {
switch (trigger.getType()) {
case WhenSpellIsCast:
spellIsCastTriggers.add(trigger);
break;
case WhenComesIntoPlay:
comeIntoPlayTriggers.add(trigger);
break;
case WhenPutIntoGraveyard:
putIntoGraveyardTriggers.add(trigger);
break;
case WhenDrawn:
drawnTriggers.add(trigger);
break;
default:
triggers.add(trigger);
break;
}
triggers.add(trigger);
numTriggers++;
}
@ -656,19 +662,19 @@ public class MagicCardDefinition {
return statics;
}
public Collection<MagicTrigger<?>> getSpellIsCastTriggers() {
public Collection<MagicWhenSpellIsCastTrigger> getSpellIsCastTriggers() {
return spellIsCastTriggers;
}
public Collection<MagicTrigger<?>> getComeIntoPlayTriggers() {
public Collection<MagicWhenComesIntoPlayTrigger> getComeIntoPlayTriggers() {
return comeIntoPlayTriggers;
}
public Collection<MagicTrigger<?>> getPutIntoGraveyardTriggers() {
public Collection<MagicWhenPutIntoGraveyardTrigger> getPutIntoGraveyardTriggers() {
return putIntoGraveyardTriggers;
}
public Collection<MagicTrigger<?>> getDrawnTriggers() {
public Collection<MagicWhenDrawnTrigger> getDrawnTriggers() {
return drawnTriggers;
}

View File

@ -878,10 +878,9 @@ public class MagicGame {
return mappedData;
}
@SuppressWarnings("unchecked")
private List<MagicTarget> filterTargets(
final MagicPlayer player,
final MagicTargetFilter targetFilter,
final MagicTargetFilter<MagicTarget> targetFilter,
final MagicTargetHint targetHint) {
final List<MagicTarget> targets=new ArrayList<MagicTarget>();
@ -1062,7 +1061,7 @@ public class MagicGame {
return options;
}
private boolean filterTarget(final MagicPlayer player,final MagicTargetFilter targetFilter,final MagicTarget target) {
private boolean filterTarget(final MagicPlayer player,final MagicTargetFilter<MagicTarget> targetFilter,final MagicTarget target) {
if (target==null ||
target==MagicTargetNone.getInstance() ||
!targetFilter.accept(this,player,target)) {
@ -1225,20 +1224,18 @@ public class MagicGame {
return triggers.remove(permanent);
}
public void executeTrigger(
final MagicTrigger trigger,
public <T> void executeTrigger(
final MagicTrigger<T> trigger,
final MagicPermanent permanent,
final MagicSource source,
final Object data) {
final T data) {
@SuppressWarnings("unchecked")
final boolean accept = trigger.accept(permanent, data);
if (!accept) {
if (!trigger.accept(permanent, data)) {
return;
}
@SuppressWarnings("unchecked")
final MagicEvent event=trigger.executeTrigger(this,permanent,data);
if (!event.isValid()) {
return;
}
@ -1254,7 +1251,7 @@ public class MagicGame {
}
}
public void executeTrigger(final MagicTriggerType type,final Object data) {
public <T> void executeTrigger(final MagicTriggerType type,final T data) {
final SortedSet<MagicPermanentTrigger> typeTriggers=triggers.get(type);
if (typeTriggers.isEmpty()) {
return;
@ -1262,8 +1259,9 @@ public class MagicGame {
final Collection<MagicPermanentTrigger> copiedTriggers=new ArrayList<MagicPermanentTrigger>(typeTriggers);
for (final MagicPermanentTrigger permanentTrigger : copiedTriggers) {
final MagicPermanent permanent=permanentTrigger.getPermanent();
executeTrigger(permanentTrigger.getTrigger(),permanent,permanent,data);
final MagicPermanent permanent = permanentTrigger.getPermanent();
final MagicTrigger<T> trigger = (MagicTrigger<T>)permanentTrigger.getTrigger();
executeTrigger(trigger,permanent,permanent,data);
}
}
}

View File

@ -40,7 +40,7 @@ public class MagicDrawAction extends MagicAction {
player.incDrawnCards();
drawnCards.add(card);
score+=ArtificialScoringSystem.getCardScore(card);
for (final MagicTrigger<?> trigger : card.getCardDefinition().getDrawnTriggers()) {
for (final MagicTrigger<MagicCard> trigger : card.getCardDefinition().getDrawnTriggers()) {
game.executeTrigger(trigger,MagicPermanent.NONE,card,card);
}
game.executeTrigger(MagicTriggerType.WhenOtherDrawn,card);

View File

@ -77,7 +77,7 @@ public class MagicMoveCardAction extends MagicAction {
// Execute triggers.
if (toLocation==MagicLocationType.Graveyard) {
final MagicSource triggerSource=permanent.isValid()?permanent:card;
for (final MagicTrigger<?> trigger : card.getCardDefinition().getPutIntoGraveyardTriggers()) {
for (final MagicTrigger<MagicGraveyardTriggerData> trigger : card.getCardDefinition().getPutIntoGraveyardTriggers()) {
game.executeTrigger(trigger,permanent,triggerSource,new MagicGraveyardTriggerData(card,fromLocation));
}

View File

@ -32,7 +32,7 @@ public abstract class MagicPutIntoPlayAction extends MagicAction {
final MagicPlayer controller = permanent.getController();
//execute come into play triggers
for (final MagicTrigger<?> trigger : permanent.getCardDefinition().getComeIntoPlayTriggers()) {
for (final MagicTrigger<MagicPlayer> trigger : permanent.getCardDefinition().getComeIntoPlayTriggers()) {
game.executeTrigger(trigger,permanent,permanent,controller);
}

View File

@ -8,6 +8,7 @@ import magic.model.stack.MagicCardOnStack;
import magic.model.stack.MagicItemOnStack;
import magic.model.trigger.MagicTrigger;
import magic.model.trigger.MagicTriggerType;
import magic.model.trigger.MagicWhenSpellIsCastTrigger;
public class MagicPutItemOnStackAction extends MagicAction {
@ -27,8 +28,13 @@ public class MagicPutItemOnStackAction extends MagicAction {
if (itemOnStack.isSpell()) {
if (!itemOnStack.hasChoices()) {
// execute spell is cast triggers
for (final MagicTrigger<?> trigger : itemOnStack.getSource().getCardDefinition().getSpellIsCastTriggers()) {
game.executeTrigger(trigger,MagicPermanent.NONE,itemOnStack.getSource(), itemOnStack);
for (final MagicWhenSpellIsCastTrigger trigger : itemOnStack.getSource().getCardDefinition().getSpellIsCastTriggers()) {
game.executeTrigger(
trigger,
MagicPermanent.NONE,
itemOnStack.getSource(),
(MagicCardOnStack)itemOnStack
);
}
// execute other spell is cast triggers

View File

@ -9,6 +9,7 @@ import magic.model.target.MagicTargetFilter;
import magic.model.target.MagicTargetHint;
import magic.model.target.MagicTargetNone;
import magic.model.target.MagicTargetType;
import magic.model.target.MagicTarget;
import magic.ui.GameController;
import java.util.Collection;
@ -369,7 +370,7 @@ public class MagicTargetChoice extends MagicChoice {
"an unpaired Soulbond creature");
private final String targetDescription;
private final MagicTargetFilter targetFilter;
private final MagicTargetFilter<MagicTarget> targetFilter;
private final boolean targeted;
private final MagicTargetHint targetHint;
@ -399,7 +400,7 @@ public class MagicTargetChoice extends MagicChoice {
return targetDescription;
}
public final MagicTargetFilter getTargetFilter() {
public final MagicTargetFilter<MagicTarget> getTargetFilter() {
return targetFilter;
}

View File

@ -56,9 +56,7 @@ public class MagicPriorityEvent extends MagicEvent {
// reset activation/priority of opponent
player.getOpponent().getActivationPriority().clear();
@SuppressWarnings("unchecked")
final MagicEvent[] events = activation.getCostEvent(source);
for (final MagicEvent costEvent : events) {
for (final MagicEvent costEvent : activation.getCostEvent(source)) {
game.addEvent(costEvent);
}

View File

@ -6,6 +6,7 @@ import magic.model.choice.MagicTargetChoice;
import magic.model.stack.MagicCardOnStack;
import magic.model.stack.MagicItemOnStack;
import magic.model.trigger.MagicTrigger;
import magic.model.trigger.MagicWhenSpellIsCastTrigger;
import magic.model.trigger.MagicTriggerType;
public class MagicStackGetChoicesEvent extends MagicEvent {
@ -41,8 +42,13 @@ public class MagicStackGetChoicesEvent extends MagicEvent {
if (itemOnStack.isSpell()) {
// execute spell is cast triggers
for (final MagicTrigger<?> trigger : itemOnStack.getSource().getCardDefinition().getSpellIsCastTriggers()) {
game.executeTrigger(trigger,MagicPermanent.NONE,itemOnStack.getSource(), itemOnStack);
for (final MagicWhenSpellIsCastTrigger trigger : itemOnStack.getSource().getCardDefinition().getSpellIsCastTriggers()) {
game.executeTrigger(
trigger,
MagicPermanent.NONE,
itemOnStack.getSource(),
(MagicCardOnStack)itemOnStack
);
}
// execute other spell is cast triggers