public boolean alterBlockOfCharacters(CharacterData data, int icStart, int icEnd) { if (data == null) return false; if (data instanceof MolecularData) { MolecularData mData = (MolecularData) data; mData.reverse(icStart, icEnd, true); } else { for (int it = 0; it < data.getNumTaxa(); it++) for (int i = 0; i <= (icEnd - icStart) / 2 && icStart + i < icEnd - i; i++) { data.tradeStatesBetweenCharacters(icStart + i, icEnd - i, it, true); } } return true; }
public Associable getTaxaInfo(CharacterData data, boolean makeIfNotPresent) { if (makeIfNotPresent && taxaInfo == null) { taxaInfo = new TaxaInfo(data.getNumTaxa(), data); } return taxaInfo; }