private CharSequence iterableContext(Iterable<?> context, Options options) throws IOException { if (options.isFalsy(context)) { return options.inverse(); } StringBuilder buffer = new StringBuilder(); Iterator<?> iterator = reverse(context); int index = 0; Context parent = options.context; while (iterator.hasNext()) { Object element = iterator.next(); boolean first = index == 0; boolean even = index % 2 == 0; boolean last = !iterator.hasNext(); Context current = Context.newContext(parent, element) .data("index", index) .data("first", first ? "first" : "") .data("last", last ? "last" : "") .data("odd", even ? "" : "odd") .data("even", even ? "even" : ""); buffer.append(options.fn(current)); index++; } return buffer; }
/** Sherpa romeo submission support */ public void make_sherpaRomeo_submission(Item item, Division divIn) throws WingException { if (ConfigurationManager.getBooleanProperty( "webui.submission.sherparomeo-policy-enabled", true)) { SHERPASubmitService sherpaSubmitService = new DSpace().getSingletonService(SHERPASubmitService.class); if (sherpaSubmitService.hasISSNs(context, item)) { List div = divIn.addList("submit-upload-new", List.TYPE_FORM); div.setHead(T_sherpa_title); // Since sherpa web service doesn't work reliable with more than 1 issn, perform the service // for each issn Set<String> issns = sherpaSubmitService.getISSNs(context, item); Iterator<String> issnsIterator = issns.iterator(); int i = 0; while (issnsIterator.hasNext()) { SHERPAResponse shresp = sherpaSubmitService.searchRelatedJournalsByISSN(issnsIterator.next()); java.util.List<SHERPAJournal> journals = shresp.getJournals(); java.util.List<SHERPAPublisher> publishers = shresp.getPublishers(); if (CollectionUtils.isNotEmpty(journals)) { for (SHERPAJournal journ : journals) { SHERPAPublisher pub = publishers.get(0); List sherpaList = div.addList("sherpaList" + (i + 1), "simple", "sherpaList"); sherpaList .addItem() .addFigure( contextPath + "/static/images/" + (i == 0 ? "romeosmall" : "clear") + ".gif", "http://www.sherpa.ac.uk/romeo/", "sherpaLogo"); sherpaList.addItem().addHighlight("sherpaBold").addContent(T_sherpa_journal); sherpaList.addItem(journ.getTitle() + " (" + journ.getIssn() + ")"); sherpaList.addItem().addHighlight("sherpaBold").addContent(T_sherpa_publisher); sherpaList.addItemXref(pub.getHomeurl(), pub.getName()); sherpaList.addItem().addHighlight("sherpaBold").addContent(T_sherpa_colour); sherpaList .addItem() .addHighlight("sherpaStyle " + pub.getRomeocolour()) .addContent(message("xmlui.aspect.sherpa.submission." + pub.getRomeocolour())); sherpaList .addItem() .addXref( "http://www.sherpa.ac.uk/romeo/search.php?issn=" + journ.getIssn(), T_sherpa_more, "sherpaMoreInfo"); i = i + 1; } } } List sherpaList = div.addList("sherpaListEnd", "simple", "sherpaList"); sherpaList.addItem(T_sherpa_consult); } } }