package plugin.lsttokens.eqslot; import java.util.StringTokenizer; import pcgen.cdom.base.Constants; import pcgen.core.character.EquipSlot; import pcgen.persistence.lst.EquipSlotLstToken; import pcgen.util.Logging; /** * Class deals with CONTAINS Token */ public class ContainsToken implements EquipSlotLstToken { @Override public String getTokenName() { return "CONTAINS"; } @Override public boolean parse(EquipSlot eqSlot, String value, String gameMode) { if (value == null || value.isEmpty()) { Logging.log(Logging.LST_ERROR, "Invalid empty " + getTokenName() + " value."); return false; } final StringTokenizer token = new StringTokenizer(value, Constants.EQUALS); if (token.countTokens() < 2) { Logging.log(Logging.LST_ERROR, "Missing = in value '" + value + "' of " + getTokenName() + Constants.COLON + value); return false; } else if (token.countTokens() > 2) { Logging.log(Logging.LST_ERROR, "Too many = in value '" + value + "' of " + getTokenName() + Constants.COLON + value); return false; } final String type = token.nextToken(); final String numString = token.nextToken(); final int num; if (numString.equals("*")) { num = 9999; } else { num = Integer.parseInt(numString); } final String[] types = type.split(","); for (String pair : types) { eqSlot.addContainedType(pair.intern()); } eqSlot.setContainNum(num); return true; } }