public IAgreementMeasure make(ICodingAnnotationStudy aStudy) { switch (this) { case COHEN_KAPPA_AGREEMENT: return new CohenKappaAgreement(aStudy); case FLEISS_KAPPA_AGREEMENT: return new FleissKappaAgreement(aStudy); case KRIPPENDORFF_ALPHA_NOMINAL_AGREEMENT: return new KrippendorffAlphaAgreement(aStudy, new NominalDistanceFunction()); default: throw new IllegalArgumentException(); } }