package dr.evomodel.speciation.ModelAveragingResearch;
import dr.inference.model.Parameter;
import dr.inference.model.Variable;
import dr.xml.*;
/**
* @author Alexei Drummond
* @author Walter Xie
*/
public class ModelAveragingIndexSpeciationLikelihoodParser extends AbstractXMLObjectParser {
public static final String MODEL_AVE_Index_SPECIATION_LIKELIHOOD = "modelAveragingIndexSpeciationLikelihood";
public static final String INDEX = "modelIndex";
public static final String MAX_INDEX = "maxIndex";
public String getParserName() {
return MODEL_AVE_Index_SPECIATION_LIKELIHOOD;
}
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
Variable<Integer> index;
// cxo = xo.getChild(INDEX);
index = (Variable<Integer>) xo.getElementFirstChild(INDEX); // integer index parameter size = real size - 1
Parameter maxIndex = (Parameter) xo.getElementFirstChild(MAX_INDEX);
return new ModelAveragingIndexSpeciationLikelihood(xo.getId(), index, maxIndex);
}
//************************************************************************
// AbstractXMLObjectParser implementation
//************************************************************************
public String getParserDescription() {
return "Model Averaging Speciation Likelihood.";
}
public Class getReturnType() {
return ModelAveragingIndexSpeciationLikelihood.class;
}
public XMLSyntaxRule[] getSyntaxRules() {
return rules;
}
private final XMLSyntaxRule[] rules = {
new ElementRule(INDEX, new XMLSyntaxRule[]{
new ElementRule(Variable.class)
}),
new ElementRule(MAX_INDEX, new XMLSyntaxRule[]{
new ElementRule(Parameter.class)
}, true),
};
}