- Notifications
You must be signed in to change notification settings - Fork10
benelog/lambda-resort
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
publicclassGuest {privatefinalintgrade;privatefinalStringname;privatefinalStringcompany;...}
importjava.util.List;publicinterfaceGuestRepository {publicList<Guest>findAllGuest ();}
publicinterfaceResortService {publicList<String>findGuestNamesByCompany (Stringcompany);}
publicList<String>findGuestNamesbyCompany(Stringcompany) {List<Guest>all =repository.findAllGuest();List<Guest>filtered =filter(guests,company);sort(filtered);returnmapNames(filtered);}privateList<Guest>filter(List<Guest>guests,Stringcompany) {List<Guest>filtered =newArrayList<>();for(Guestguest :guests ) {if (company.equals(guest.getCompany())) {filtered.add(guest);}}returnfiltered;}privatevoidsort(List<Guest>guests) {Collections.sort(guests,newComparator<Guest>() {publicintcompare(Guesto1,Guesto2) {returnInteger.compare(o1.getGrade(),o2.getGrade());} });}privateList<String>mapNames(List<Guest>guests) {List<String>names =newArrayList<>();for(Guestguest :guests ) {names.add(guest.getName());}returnnames;}
publicList<String>findGuestNamesByCompany(finalStringcompany) {List<Guest>all =repository.findAll();List<Guest>sorted =FluentIterable.from(all).filter(newPredicate<Guest>() {publicbooleanapply(Guestg) {returncompany.equals(g.getCompany());}}).toSortedList(Ordering.natural().onResultOf(newFunction<Guest,Integer>() {publicIntegerapply(Guestg) {returng.getGrade();}}));returnFluentIterable.from(sorted).transform(newFunction<Guest,String>() {publicStringapply(Guestg) {returng.getName();}}).toList();}
publicList<String>findGuestNamesByCompany(finalStringcompany) {List<Guest>all =repository.findAll();returnSequences.sequence(all).filter(newPredicate<Guest>() {publicbooleanmatches(Guestg) {returncompany.equals(g.getCompany());}}).sortBy(newCallable1<Guest,Integer>(){publicIntegercall(Guestg) {returng.getGrade();}}).map(newCallable1<Guest,String>(){publicStringcall(Guestg) {returng.getName();}}).toList();}
publicList<String>findGuestNamesByCompany(finalStringcompany) {List<Guest>all =repository.findAll();returnFastList.newList(all).select(newPredicate<Guest>() {publicbooleanaccept(Guestg) {returncompany.equals(g.getCompany());}}).sortThisBy(newFunction<Guest,Integer>() {publicIntegervalueOf(Guestg) {returng.getGrade();}}).collect(newFunction<Guest,String> () {publicStringvalueOf(Guestg) {returng.getName();}});}
publicList<String>findGuestNamesByCompany(finalStringcompany) {List<Guest>all =repository.findAllGuest();returnCf.list(all).filter(newFunction1B<Guest>() {publicbooleanapply(Guestg) {returncompany.equals(g.getCompany());}}).sortBy(newFunction<Guest,Integer>() {publicIntegerapply(Guestg) {returng.getGrade();}}).map(newFunction<Guest,String>() {publicStringapply(Guestg) {returng.getName();}});}
publicList<String>findGuestNamesByCompany(finalStringcompany) {List<Guest>all =repository.findAllGuest();returnOp.on(all).removeAllFalse(newIFunction<Guest,Boolean>() {publicBooleanexecute(Guestg,ExecCtxctx)throwsException {returncompany.equals(g.getCompany());}}).sortBy(newIFunction<Guest,Integer>() {publicIntegerexecute(Guestg,ExecCtxctx)throwsException {returng.getGrade();}}).map(newIFunction<Guest,String>() {publicStringexecute(Guestg,ExecCtxctx)throwsException {returng.getName();}}).get();}
importstaticch.lambdaj.Lambda.*;importstaticorg.hamcrest.Matchers.*;...publicList<String>findGuestNamesByCompany(finalStringcompany) {List<Guest>all =repository.findAll();returnLambdaCollections.with(all).retain(having(on(Guest.class).getCompany(),equalTo(company))).sort(on(Guest.class).getGrade()).extract(on(Guest.class).getName());}
publicList<String>findGuestNamesByCompany(Stringcompany) {List<Guest>all =repository.findAll();Collection<String>mapped =Stream.iterableStream(all).filter(newF<Guest,Boolean>() {publicBooleanf(Guestg){returncompany.equals(g.getCompany());}}).sort(Ord.ord(newF<Guest,F<Guest,Ordering>>() {publicF<Guest,Ordering>f(finalGuesta1) {returnnewF<Guest,Ordering>() {publicOrderingf(finalGuesta2) {intx =Integer.compare(a1.getGrade(),a2.getGrade());returnx <0 ?Ordering.LT :x ==0 ?Ordering.EQ :Ordering.GT;}};}})).map(newF<Guest,String>() {publicStringf(Guestg) {returng.getName();}}).toCollection();returnnewArrayList<String>(mapped);}
publicList<String>findGuestNamesByCompany(finalStringcompany) {List<Guest>all =repository.findAll();List<Guest>filtered =ListUtils.select(all,newPredicate<Guest>() {publicbooleanevaluate(Guestg) {returncompany.equals(g.getCompany());}});Collections.sort(filtered,newComparator<Guest>() {publicintcompare(Guesto1,Guesto2) {returnInteger.compare(o1.getGrade(),o2.getGrade());}});Collection<String>names =CollectionUtils.collect(filtered,newTransformer<Guest,String>(){publicStringtransform(Guestg) {returng.getName();}});returnnewArrayList<>(names);}
publicList<String>findGuestNamesByCompany(finalStringcompany) {List<Guest>all =repository.findAll();List<Guest>filtered =FunctionalPrimitives.select(all,newFilter<Guest>() {publicBooleanexecute(Guestg) {returncompany.equals(g.getCompany());}});List<Guest>sorted =Comparables.sort(filtered,newFunctor<Guest,Integer>() {publicIntegerexecute(Guestg) {returng.getGrade();}});returnFunctionalPrimitives.map(sorted,newFunctor<Guest,String>() {publicStringexecute(Guestg) {returng.getName();}});}
- Groovy : 2.3.9
- Scala : 2.11.4
- Kotlin : 0.10.195
- Xtend : 2.7
- Ceylon : 1.1.0
List<String>findGuestNamesByCompany(Stringcompany) {List<Guest> all= repository.findAll()all.findAll { it.company== company }.sort { it.grade }.collect { it.name }}
importscala.collection.JavaConversions._...deffindGuestNamesByCompany(company:String): java.util.List[String]= {valall= repository.findAllall.filter ( _.getCompany== company).sortBy ( _.getGrade ).map ( _.getName )}
overridefunfindGuestNamesByCompany(company:String):List<String> {val all= repository.findAll()return all.filter { it.getCompany()== company }.sortBy { it.getGrade() }.map { it.getName() }}
override findGuestNamesByCompany(String aCompany) {val all= repository.findAll()all.filter [company== aCompany].sortBy[grade].map[name]}
importceylon.interop.java {CeylonIterable }importjava.util {JList =List,JArrayList =ArrayList }importjava.lang {JString =String}...sharedactualJList<JString>findGuestNamesByCompany(Stringcompany) {valueall =repository.findAll() ;valuenames =CeylonIterable(all).filter((Guestg) =>g.company ==company).sort(byIncreasing((Guestg) =>g.grade.intValue())).map((Guestg) =>g.name);valuejnames =JArrayList<JString>();for (nameinnames) {jnames.add(JString(name));}returnjnames;}
publicList<String>findGuestNamesByCompany(Stringcompany) {List<Guest>guests =repository.findAll();returnguests.stream().filter(g ->company.equals(g.getCompany())).sorted(Comparator.comparing(Guest::getGrade)).map(Guest::getName).collect(Collectors.toList());}
publicvoiddoGet(finalHttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException {finalAsyncContextasyncContext =request.startAsync();asyncContext.start(newRunnable() {publicvoidrun() {// long running jobasyncContext.dispatch("/status.jsp");}});}
publicvoiddoGet(finalHttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException {AsyncContextasyncContext =request.startAsync();asyncContext.start(() -> {// long running jobasyncContext.dispatch("/status.jsp");});}
publicList<Guest>findAll() {returnjdbcTemplate.query(SELECT_ALL,newRowMapper<Guest>(){publicGuestmapRow(ResultSetrs,introwNum)throwsSQLException {returnnewGuest (rs.getInt("id"),rs.getString("name"),rs.getString("company"),rs.getInt("grade"));} });}
publicList<Guest>findAll() {returnjdbcTemplate.query(SELECT_ALL,(rs,rowNum) ->newGuest (rs.getInt("id"),rs.getString("name"),rs.getString("company"),rs.getInt("grade")) );}
ButtoncalcButton = (Button)view.findViewById(R.id.calcBtn);ButtonsendButton = (Button)view.findViewById(R.id.sendBtn);calcButton.setOnClickListener(newOnClickListener() {publicvoidonClick(Viewview) {calculate();}});sendButton.setOnClickListener(newOnClickListener() {publicvoidonClick(Viewview) {send();}});
ButtoncalcButton = (Button)view.findViewById(R.id.calcBtn);ButtonsendButton = (Button)view.findViewById(R.id.sendBtn);calcButton.setOnClickListener(v ->calculate());sendButton.setOnClickListener(v ->send());
@RunWith(JunitSuiteRunner.class)publicclassResortServiceSpec {{GuestRepositoryrepository =newMemoryRepository();ResortServiceservice =newModernJavaResort(repository);describe("ResortService with modern Java",it -> {it.isSetupWith(() -> {repository.save(newGuest(1,"jsh","Naver",15),newGuest(2,"hny","Line",10),newGuest(3,"chy","Naver",5));});it.isConcludedWith(repository::deleteAll);it.should("find names of guests by company ",expect -> {List<String>names =service.findGuestNamesByCompany("Naver");expect.that(names).isEqualTo(Arrays.asList("chy","jsh"));});});}}
privateEntityManagerem;@AutowiredpublicJinqResort(EntityManagerem) {this.em =em;}private <T>JinqStream<T>stream(Class<T>clazz) {returnnewJinqJPAStreamProvider(em.getEntityManagerFactory()).streamAll(em,clazz);}publicList<String>findGuestNamesByCompany(Stringcompany) {returnstream(Guest.class).where(g ->g.getCompany().equals(company)).sortedBy(Guest::getGrade).select(Guest::getName).toList();}
A query generated by JinqResort
Hibernate:selectguest0_.idas id1_0_,guest0_.companyas company2_0_,guest0_.gradeas grade3_0_,guest0_.nameas name4_0_from guest guest0_whereguest0_.company=?order byguest0_.gradeASClimit ?
importstaticspark.Spark.*;importcom.naver.helloworld.resort.service.ResortService;publicclassSparkServer {publicstaticvoidmain(String[]args) {get("/guests/:company", (request,response) -> {Stringcompany =request.params(":company");return"No guests from " +company;});}}
ResortServer.java (Spark + Spring)
@SpringBootApplicationpublicclassResortServer {@AutowiredprivateResortServiceservice;publicvoidstart() {get("/guests/:company", (request,response) -> {Stringcompany =request.params(":company");List<String>names =service.findGuestNamesByCompany(company);return"Guests from " +company +" : " +names;});}publicstaticvoidmain(String[]args) {ApplicationContextcontext =SpringApplication.run(ResortServer.class);context.getBean(ResortServer.class).start();}}