public static void main(String[] args) { List<ProductItem> items = Arrays.asList( new ProductItem("id1", "商品1", new BigDecimal("1000"), 1), new ProductItem("id2", "商品2", new BigDecimal("3000"), 2), new ProductItem("id3", "商品3", new BigDecimal("1500"), 3)); Collection names = collect(items, invokerTransformer("getName")); forAllDo( names, new Closure() { public void execute(Object n) { System.out.println(n); } }); System.out.println("-----"); Collection highItems = select( items, new Predicate() { public boolean evaluate(Object obj) { ProductItem it = (ProductItem) obj; return it.getPrice().compareTo(new BigDecimal("1500")) >= 0; } }); forAllDo( highItems, new Closure() { public void execute(Object obj) { ProductItem it = (ProductItem) obj; System.out.println(it.getName()); } }); System.out.println("-----"); // 合計金額算出 BigDecimal total = foldLeft( items, new F2<BigDecimal, ProductItem, BigDecimal>() { public BigDecimal f(BigDecimal a, ProductItem b) { return a.add(b.getPrice().multiply(new BigDecimal(b.getQty()))); } }, BigDecimal.ZERO); System.out.println(total); }
/** * Genera un pago para el grupo de cargos indicado * * @param c * @param cargos * @return */ public PagoM crearPago(final Cliente c, final List<NotaDeCredito> cargos) { Assert.notEmpty(cargos, "La collecion de cargos debe tener elementos"); final PagoM pago = new PagoM(); pago.setCliente(c); pago.setClave(c.getClave()); pago.setTipoDeDocumento("M"); CollectionUtils.forAllDo( cargos, new Closure() { public void execute(Object input) { NotaDeCredito cargo = (NotaDeCredito) input; Pago p = new Pago(); p.setCliente(pago.getCliente()); p.setClave(pago.getClave()); p.setPagoM(pago); p.setNota(cargo); pago.getPagos().add(p); p.setOrigen(cargo.getOrigen()); p.setTipoDocto(cargo.getTipo()); p.setNumero(cargo.getNumero()); p.setSucursal(1); } }); return pago; }
public void addCenterIssues(List<BranchCashConfirmationInfoBO> centerIssues) { CollectionUtils.forAllDo( centerIssues, new Closure() { public void execute(Object input) { addCenterIssue((BranchCashConfirmationInfoBO) input); } }); }
public void saveOverriddenIsa(final Long facilityId, List<FacilityProgramProduct> products) { forAllDo( products, new Closure() { @Override public void execute(Object o) { FacilityProgramProduct product = (FacilityProgramProduct) o; product.setFacilityId(facilityId); repository.save(product); } }); }
private static List<String> loadTitles() { List<BasicDBObject> civilites = CiviliteDB.getInstance().list(); final List<String> civilitesStr = new ArrayList<String>(); CollectionUtils.forAllDo( civilites, new Closure() { @Override public void execute(Object civilite) { civilitesStr.add(((BasicDBObject) civilite).getString(Constantes.LABEL_ATTRIBUTE_NAME)); } }); return civilitesStr; }
public List<FacilityProgramProduct> getForProgramAndFacility( Long programId, final Long facilityId) { List<ProgramProduct> programProducts = programProductService.getByProgram(new Program(programId)); final List<FacilityProgramProduct> facilityProgramProducts = new ArrayList<>(); forAllDo( programProducts, new Closure() { @Override public void execute(Object o) { facilityProgramProducts.add(getAllocationProduct((ProgramProduct) o, facilityId)); } }); return facilityProgramProducts; }
private void actualizarClientesCredito(final List<Venta> ventas) { CollectionUtils.forAllDo( ventas, new Closure() { public void execute(Object input) { Venta v = (Venta) input; Cliente c = v.getCliente(); if (c != null && c.getId() == null) { // Cliente nuevo if (v.getOrigen().equals("CRE")) { c.generarCredito(); c.getCredito().copyFromCliente(); } ServiceLocator.getClienteDao().salvar(c); } } }); }
/** * Genera un {@link PagoConNota} para un grupo de cargos * * @param nota * @param ventas * @return */ public PagoConNota crearPagoDeCargoConNota( final NotaDeCredito disponible, List<NotaDeCredito> cargos) { Assert.notEmpty(cargos, "La collecion de cargos debe tener elementos"); Assert.isTrue( disponible.getSaldo() < 0, "La nota origen debe tener disponible el disponible es: " + disponible.getSaldo()); final PagoConNota pago = new PagoConNota(); pago.setNota(disponible); pago.setReferencia(disponible.getId().toString()); pago.setCliente(disponible.getCliente()); pago.setFormaDePago(FormaDePago.T); pago.setTipoDeDocumento("M"); pago.setCliente(cargos.get(0).getCliente()); CollectionUtils.forAllDo( cargos, new Closure() { public void execute(Object input) { NotaDeCredito cargo = (NotaDeCredito) input; Pago p = new Pago(); p.setCliente(pago.getCliente()); p.setClave(pago.getClave()); p.setPagoM(pago); p.setNota(cargo); p.setNotaDelPago(disponible); pago.getPagos().add(p); p.setOrigen(cargo.getOrigen()); p.setTipoDocto(cargo.getTipo()); p.setNumero(cargo.getNumero()); p.setFormaDePago2(pago.getFormaDePago()); p.setDescFormaDePago(pago.getFormaDePago().getDesc()); p.setReferencia(disponible.getTipo() + " " + disponible.getNumero()); p.setSucursal(1); } }); return pago; }
/** * Returns the maximum number of columns occupied by a given string java bean property on a * collection of objects. Adds two to length to account for the gap between columns. * * @param objects Collection of like objects. * @param propName Name of javabean property containing a string. * @return String */ protected int getMaxLength(Collection objects, String propName) { MaxStringLengthFinder finder = new MaxStringLengthFinder(propName); CollectionUtils.forAllDo(objects, finder); return finder.getMaxLength() + 2; }
static { Browsers = new HashMap(); Browsers.put("microsoft internet explorer", BROWSER_IE); Browsers.put(MSIE_ID, BROWSER_IE); Browsers.put(NETSCAPE_ID, BROWSER_NETSCAPE); Browsers.put("galeon", BROWSER_GALEON); Browsers.put("phoenix", BROWSER_PHOENIX); Browsers.put("mozilla firebird", BROWSER_FIREBIRD); Browsers.put("firebird", BROWSER_FIREBIRD); Browsers.put("firefox", BROWSER_FIREFOX); Browsers.put("chimera", BROWSER_CHIMERA); Browsers.put("camino", BROWSER_CAMINO); Browsers.put("epiphany", BROWSER_EPIPHANY); Browsers.put("safari", BROWSER_SAFARI); Browsers.put("k-meleon", BROWSER_KMELEON); Browsers.put("mozilla", BROWSER_MOZILLA); Browsers.put(OPERA_ID, BROWSER_OPERA); Browsers.put("konqueror", BROWSER_KONQUEROR); Browsers.put("icab", BROWSER_ICAB); Browsers.put("lynx", BROWSER_LYNX); Browsers.put("links", BROWSER_LINKS); Browsers.put("ncsa mosaic", BROWSER_MOSAIC); Browsers.put("amaya", BROWSER_AMAYA); Browsers.put("omniweb", BROWSER_OMNIWEB); Browsers.put("hotjava", BROWSER_HOTJAVA); Browsers.put("browsex", BROWSER_BROWSEX); Browsers.put("amigavoyager", BROWSER_AMIGAVOYAGER); Browsers.put("amiga-aweb", BROWSER_AMIGAAWEB); Browsers.put("ibrowse", BROWSER_IBROWSE); // build regex BrowserRegExBuf = new StringBuffer(); CollectionUtils.forAllDo( Browsers.keySet(), new Closure() { public void execute(Object obj) { if (BrowserRegExBuf.length() > 0) BrowserRegExBuf.append('|'); BrowserRegExBuf.append((String) obj); if (((String) obj).equals(NETSCAPE_ID)) { BrowserRegExBuf.append("[6]?"); } } }); BrowserRegExBuf.insert(0, '('); BrowserRegExBuf.append(")"); BrowserRegExBuf.append("[\\/\\sa-z\\(]*([0-9]+)([\\.0-9a-z]+)?"); // browser version string try { BrowserTypePat = Pattern.compile(BrowserRegExBuf.toString(), Pattern.CASE_INSENSITIVE); BrowserRegExBuf = null; MinorVersionPat = Pattern.compile("([.0-9]+)?([\\.a-z0-9]+)?", Pattern.CASE_INSENSITIVE); PunctuationOnlyPat = Pattern.compile("[\\p{Punct}]+"); NumberRetrievePat = Pattern.compile("\\D*(\\d+)"); NameOnlyPat = Pattern.compile("(\\D+)\\d*"); WindowsPat = Pattern.compile( "((?:dar){0}win(?:dows)*){1}+(?:(?:[\\s]+([0-9a-z]*)[\\s]*([a-z0-9.]*))|([0-9a-z]{1,3}))", Pattern.CASE_INSENSITIVE); MacPat = Pattern.compile( "(68[k0]{1,3})|(ppc mac os x)|(intel mac os x)|([p\\S]{1,5}pc)|(darwin)", Pattern.CASE_INSENSITIVE); Os2Pat = Pattern.compile("os\\/2|ibm-webexplorer", Pattern.CASE_INSENSITIVE); SunosPat = Pattern.compile("(sun|i86)[os\\s]*([0-9]*)", Pattern.CASE_INSENSITIVE); IrixPat = Pattern.compile("(irix)[\\s]*([0-9]*)", Pattern.CASE_INSENSITIVE); HpuxPat = Pattern.compile("(hp-ux)[\\s]*([0-9]*)", Pattern.CASE_INSENSITIVE); AixPat = Pattern.compile("aix([0-9]*)", Pattern.CASE_INSENSITIVE); DecPat = Pattern.compile("dec|osfl|alphaserver|ultrix|alphastation", Pattern.CASE_INSENSITIVE); VmsPat = Pattern.compile("vax|openvms", Pattern.CASE_INSENSITIVE); ScoPat = Pattern.compile("sco|unix_sv", Pattern.CASE_INSENSITIVE); LinuxPat = Pattern.compile("x11|inux", Pattern.CASE_INSENSITIVE); BsdPat = Pattern.compile("(free)?(bsd)", Pattern.CASE_INSENSITIVE); AmigaPat = Pattern.compile("amiga[os]?", Pattern.CASE_INSENSITIVE); AmigaVerPat = Pattern.compile("(AmigaOS [\\.1-9]?)", Pattern.CASE_INSENSITIVE); } catch (Exception e) { log.error(e); } }
private final void forAllDo(final Cl c) { CollectionUtils.forAllDo(this.items, c); }