/** * Create a preference domain builder with a specified minimum and maximum. * @param min The minimum preference. * @param max The maximum preference. */ public PreferenceDomainBuilder(double min, double max) { setMinimum(min); setMaximum(max); }
@Nullable public PreferenceDomain getPreferenceDomain() { PreferenceDomain domain = null; for (EntitySource src: getSourcesForType(CommonTypes.RATING)) { Map<String,Object> meta = src.getMetadata(); if (meta.containsKey("domain")) { if (domain != null) { logger.warn("multiple rating sources have domains"); } Map<String,Object> dom = (Map<String, Object>) meta.get("domain"); PreferenceDomainBuilder pdb = new PreferenceDomainBuilder(); pdb.setMinimum(((Number) dom.get("minimum")).doubleValue()) .setMaximum(((Number) dom.get("maximum")).doubleValue()); Number prec = (Number) dom.get("precision"); if (prec != null) { pdb.setPrecision(prec.doubleValue()); } domain = pdb.build(); } } return domain; }
@Test public void testSetMinMax() { PreferenceDomainBuilder bld = new PreferenceDomainBuilder(); bld.setMinimum(-1) .setMaximum(1); PreferenceDomain dom = bld.build(); assertThat(dom.getMinimum(), equalTo(-1.0)); assertThat(dom.getMaximum(), equalTo(1.0)); assertThat(dom.getPrecision(), equalTo(0.0)); }
@Test public void testSetAll() { PreferenceDomainBuilder bld = new PreferenceDomainBuilder(); bld.setMinimum(1.0) .setMaximum(5) .setPrecision(0.5); PreferenceDomain dom = bld.build(); assertThat(dom.getMinimum(), equalTo(1.0)); assertThat(dom.getMaximum(), equalTo(5.0)); assertThat(dom.getPrecision(), equalTo(0.5)); }
/** * Create a preference domain builder with a specified minimum and maximum. * @param min The minimum preference. * @param max The maximum preference. */ public PreferenceDomainBuilder(double min, double max) { setMinimum(min); setMaximum(max); }
@Nullable public PreferenceDomain getPreferenceDomain() { PreferenceDomain domain = null; for (EntitySource src: getSourcesForType(CommonTypes.RATING)) { Map<String,Object> meta = src.getMetadata(); if (meta.containsKey("domain")) { if (domain != null) { logger.warn("multiple rating sources have domains"); } Map<String,Object> dom = (Map<String, Object>) meta.get("domain"); PreferenceDomainBuilder pdb = new PreferenceDomainBuilder(); pdb.setMinimum(((Number) dom.get("minimum")).doubleValue()) .setMaximum(((Number) dom.get("maximum")).doubleValue()); Number prec = (Number) dom.get("precision"); if (prec != null) { pdb.setPrecision(prec.doubleValue()); } domain = pdb.build(); } } return domain; }