@Override protected boolean matchesSafely(Entry entry, Description mismatchDescription) { for (Category category : entry.getCategories()) { if (matcher.matches(category)) { return true; } } //this point is only reached upon failures mismatchDescription.appendText("category "); matcher.describeMismatch(entry.getCategories(), mismatchDescription); return false; }
private String getDSState(Entry entry) { List<Category> state = entry.getCategories(MODEL.STATE.uri); if (state.isEmpty() || state.size() > 1) { return "A"; } else { return state.get(0).getTerm(); } }
private String[] getDSAltIds(Entry entry) { List<Category> altIds = entry.getCategories(MODEL.ALT_IDS.uri); if (altIds.isEmpty()) { return EMPTY_STRING_ARRAY; } else { return altIds.get(0).getTerm().split(" "); // TODO we could handle size > 1 } }
private String getDSState(Entry entry) { List<Category> state = entry.getCategories(MODEL.STATE.uri); if (state.isEmpty() || state.size() > 1) { return "A"; } else { return state.get(0).getTerm(); } }
private String getDSFormatURI(Entry entry) { List<Category> formatURI = entry.getCategories(MODEL.FORMAT_URI.uri); if (formatURI.isEmpty() || formatURI.size() > 1) { return null; } else { return formatURI.get(0).getTerm(); } }
private String getDSLabel(Entry entry) { List<Category> label = entry.getCategories(MODEL.LABEL.uri); if (label.isEmpty()) { return ""; } return label.get(0).getTerm(); }
private String getDSChecksum(Entry entry) { List<Category> digest = entry.getCategories(MODEL.DIGEST.uri); if (digest.isEmpty()) { return Datastream.CHECKSUM_NONE; } else { return digest.get(0).getTerm(); } }
private String getDSFormatURI(Entry entry) { List<Category> formatURI = entry.getCategories(MODEL.FORMAT_URI.uri); if (formatURI.isEmpty() || formatURI.size() > 1) { return null; } else { return formatURI.get(0).getTerm(); } }
private String getDSLabel(Entry entry) { List<Category> label = entry.getCategories(MODEL.LABEL.uri); if (label.isEmpty()) { return ""; } return label.get(0).getTerm(); }
private String getDSChecksum(Entry entry) { List<Category> digest = entry.getCategories(MODEL.DIGEST.uri); if (digest.isEmpty()) { return Datastream.CHECKSUM_NONE; } else { return digest.get(0).getTerm(); } }
private String[] getDSAltIds(Entry entry) { List<Category> altIds = entry.getCategories(MODEL.ALT_IDS.uri); if (altIds.isEmpty()) { return EMPTY_STRING_ARRAY; } else { return altIds.get(0).getTerm().split(" "); // TODO we could handle size > 1 } }
/** * Get the first atom:category term that matches the provided scheme. * * @param scheme * @return the term or null if no match. */ private String getCategoryTerm(String scheme) { List<Category> categories = entry.getCategories(scheme); if (categories.isEmpty()) { return null; } else { return categories.get(0).getTerm(); } } }
/** * Get the first atom:category term that matches the provided scheme. * * @param scheme * @return the term or null if no match. */ private String getCategoryTerm(String scheme) { List<Category> categories = entry.getCategories(scheme); if (categories.isEmpty()) { return null; } else { return categories.get(0).getTerm(); } } }
private String getDSChecksumType(Entry entry) { List<Category> digestType = entry.getCategories(MODEL.DIGEST_TYPE.uri); if (digestType.isEmpty()) { String result = (Datastream.autoChecksum) ? Datastream.getDefaultChecksumType() : Datastream.CHECKSUMTYPE_DISABLED; return result; } else { return digestType.get(0).getTerm(); } }
private String getDSChecksumType(Entry entry) { List<Category> digestType = entry.getCategories(MODEL.DIGEST_TYPE.uri); if (digestType.isEmpty()) { String result = (Datastream.autoChecksum) ? Datastream.getDefaultChecksumType() : Datastream.CHECKSUMTYPE_DISABLED; return result; } else { return digestType.get(0).getTerm(); } }
/** * Note: AUDIT datastreams always return false, otherwise defaults to true. * * @param entry * @return */ private boolean getDSVersionable(DigitalObject obj, Entry entry) { if (getDatastreamId(obj, entry).equals("AUDIT")) { return false; } List<Category> versionable = entry.getCategories(MODEL.VERSIONABLE.uri); if (versionable.isEmpty() || versionable.size() > 1) { return true; } else { return Boolean.valueOf(versionable.get(0).getTerm()); } }
/** * Note: AUDIT datastreams always return false, otherwise defaults to true. * * @param entry * @return */ private boolean getDSVersionable(DigitalObject obj, Entry entry) { if (getDatastreamId(obj, entry).equals("AUDIT")) { return false; } List<Category> versionable = entry.getCategories(MODEL.VERSIONABLE.uri); if (versionable.isEmpty() || versionable.size() > 1) { return true; } else { return Boolean.valueOf(versionable.get(0).getTerm()); } }
@Override protected void runTest() throws Throwable { Document<Entry> document = abdera.getParser().parse( TestGetCategoriesByScheme.class.getResourceAsStream("entry-with-categories.xml")); Entry entry = document.getRoot(); List<Category> categories = entry.getCategories("http://www.example.org/"); assertThat(categories).hasSize(2); assertThat(categories.get(0).getTerm()).isEqualTo("term1"); assertThat(categories.get(1).getTerm()).isEqualTo("term2"); categories = entry.getCategories(null); assertThat(categories).hasSize(1); assertThat(categories.get(0).getTerm()).isEqualTo("other"); } }
@Override protected void runTest() throws Throwable { Document<Categories> document = abdera.getParser().parse( TestAddCategoryFromCategories.class.getResourceAsStream("categories.xml")); Categories categories = document.getRoot(); Entry entry = abdera.getFactory().newEntry(); Category orgCategory = categories.getCategories().get(0); entry.addCategory(orgCategory); Category category = entry.getCategories().get(0); assertThat(category).isNotSameAs(orgCategory); // Assert that the original Category has not been removed from the Categories instance assertThat(categories.getCategories().get(0)).isSameAs(orgCategory); assertThat(category.getTerm()).isEqualTo(orgCategory.getTerm()); // The scheme is inherited from the app:categories element assertThat(category.getScheme()).isEqualTo(categories.getScheme()); } }
private String getDSControlGroup(DigitalObject obj, Entry entry) throws ObjectIntegrityException { List<Category> controlGroups = entry.getCategories(MODEL.CONTROL_GROUP.uri); // Try to infer the control group if not provided if (controlGroups.isEmpty() || controlGroups.size() > 1) { if (entry.getContentType() != null) { if (entry.getContentType().equals(Content.Type.XML)) { return "X"; } else { // only XML can be inline return "M"; } } if (entry.getContentSrc() != null) { return "M"; } // TODO other cases // link alts, link enclosures else { throw new ObjectIntegrityException("No control group provided by " + obj.getPid()); } } else { return controlGroups.get(0).getTerm(); } }