<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page trimDirectiveWhitespaces="true" %> <%@ page import="org.crosswire.community.projects.ntmss.data.Feature" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.Arrays" %> <%@ page import="java.util.Comparator" %> <% String usage = request.getParameter("usage"); if (usage == null) { response.setContentType("text/xml"); boolean manuscriptFeatures = true; try { manuscriptFeatures = !"false".equals(request.getParameter("manuscriptFeatures")); } catch (Exception e) {} boolean pageFeatures = true; try { pageFeatures = !"false".equals(request.getParameter("pageFeatures")); } catch (Exception e) {} boolean surrogateFeatures = true; try { surrogateFeatures = !"false".equals(request.getParameter("surrogateFeatures")); } catch (Exception e) {} boolean useCache = true; try { useCache = !"false".equals(request.getParameter("useCache")); } catch (Exception e) {} String localUserName = request.getParameter("userName"); Map featureDefs = Feature.getFeatureDefinitions(useCache, localUserName); Feature.FeatureDefinition features[] = featureDefs.values().toArray(new Feature.FeatureDefinition[0]); %> count="<%=featureDefs.size()%>"> <% Arrays.sort(features, 0, features.length, new Comparator() { public int compare(Feature.FeatureDefinition o1, Feature.FeatureDefinition o2) { if (o1.getFeatureCategory() == null) return (o2.getFeatureCategory() == null) ? 0 : -1; if ("Other".equals(o1.getFeatureCategory())) return "Other".equals(o2.getFeatureCategory()) ? 0 : 1; if ("Other".equals(o2.getFeatureCategory())) return -1; if (o1.getFeatureCategory().equals(o2.getFeatureCategory())) return o1.getFeatureCode().compareTo(o2.getFeatureCode()); return o1.getFeatureCategory().compareTo(o2.getFeatureCategory()); } }); String lastCategory = null; for (Feature.FeatureDefinition f : features) { if ( (manuscriptFeatures && f.isManuscriptFeature()) || (pageFeatures && f.isPageFeature()) || (surrogateFeatures && f.isSurrogateFeature()) || (manuscriptFeatures && pageFeatures && surrogateFeatures)) { if (lastCategory != null && !lastCategory.equals(f.getFeatureCategory())) { if (lastCategory.length() > 0) { out.println(""); } } if (f.getFeatureCategory() != null && f.getFeatureCategory().length() > 0 && !f.getFeatureCategory().equals(lastCategory)) { out.println(""); } lastCategory = f.getFeatureCategory(); out.println(f.toFormattedXML()); } } if (lastCategory != null) { out.println(""); } %> <% return; } %>

feature/definition/get

Retrieve list of valid feature types

Parameters

manuscriptFeatures[true] | false
pageFeatures[true] | false
surrogateFeatures[true] | false
useCache[true] | false
userNamealso include features local to user id provided