PrefixMapper extends AbstractMapper { @Override public Predicate unmap(Predicate predicate) { Object identifier = predicate.getIdentifier(); String id = null; if (identifier instanceof String) { id = (String) identifier; } else if (identifier instanceof URI) { id = ((URI) identifier).toString(); } else { return predicate; } if (id.startsWith(prefix)) { return new Predicate(id.substring(prefix.length()), predicate.getArity()); } else { return predicate; } } PrefixMapper(String prefix); @Override Predicate map(Predicate predicate); @Override Predicate unmap(Predicate predicate);  }
@Test public void testUnmapPredicate() { Predicate p = new Predicate("prefix#p", 1); Mapper mapper = new PrefixMapper("prefix#"); Predicate mapped = mapper.unmap(p); Assert.assertEquals(new Predicate("p", 1), mapped); }
@Test public void testInverseUnmap() { Predicate p = new Predicate("p", 1); Mapper mapper = new PrefixMapper("prefix#"); Predicate mapped = mapper.inverse().unmap(p); Assert.assertEquals(new Predicate("prefix#p", 1), mapped); }