@Override public String getOakNameOrNull(@NotNull String jcrName) { return nameMapper.getOakNameOrNull(jcrName); }
@Override public String getOakNameOrNull(@NotNull String jcrName) { return nameMapper.getOakNameOrNull(jcrName); }
@Override public String getOakNameOrNull(@Nonnull String jcrName) { return nameMapper.getOakNameOrNull(jcrName); }
@Override public boolean name(String name, int index) { if (index < 0) { error("invalid index: " + index); return false; } String oakName = nameMapper.getOakNameOrNull(name); if (oakName == null) { error("Invalid name: " + name); return false; } if (index > 1) { oakName += "[" + index + ']'; } elements.add(oakName); return true; } };
@Override public boolean name(String name, int index) { if (index < 0) { error("invalid index: " + index); return false; } String oakName = nameMapper.getOakNameOrNull(name); if (oakName == null) { error("Invalid name: " + name); return false; } if (index > 1) { oakName += "[" + index + ']'; } elements.add(oakName); return true; } };
@Override public boolean name(String name, int index) { if (index < 0) { error("invalid index: " + index); return false; } String oakName = nameMapper.getOakNameOrNull(name); if (oakName == null) { error("Invalid name: " + name); return false; } if (index > 1) { oakName += "[" + index + ']'; } elements.add(oakName); return true; } };
/** * Converts the given JCR name to the corresponding Oak name. Throws * a {@link ConstraintViolationException} if the name is {@code null} * or otherwise invalid. * * @param jcrName JCR name * @return Oak name * @throws ConstraintViolationException if name is invalid or {@code null} */ @Nonnull protected String getOakNameOrThrowConstraintViolation(@CheckForNull String jcrName) throws ConstraintViolationException { if (jcrName == null) { throw new ConstraintViolationException("Missing JCR name"); } String oakName = mapper.getOakNameOrNull(jcrName); if (oakName == null || !JcrNameParser.validate(jcrName)) { throw new ConstraintViolationException( "Invalid name: " + jcrName); } return oakName; }
/** * Converts the given JCR name to the corresponding Oak name. Throws * a {@link ConstraintViolationException} if the name is {@code null} * or otherwise invalid. * * @param jcrName JCR name * @return Oak name * @throws ConstraintViolationException if name is invalid or {@code null} */ @NotNull protected String getOakNameOrThrowConstraintViolation(@Nullable String jcrName) throws ConstraintViolationException { if (jcrName == null) { throw new ConstraintViolationException("Missing JCR name"); } String oakName = mapper.getOakNameOrNull(jcrName); if (oakName == null || !JcrNameParser.validate(jcrName)) { throw new ConstraintViolationException( "Invalid name: " + jcrName); } return oakName; }
/** * Converts the given JCR name to the corresponding Oak name. Throws * a {@link ConstraintViolationException} if the name is {@code null} * or otherwise invalid. * * @param jcrName JCR name * @return Oak name * @throws ConstraintViolationException if name is invalid or {@code null} */ @NotNull protected String getOakNameOrThrowConstraintViolation(@Nullable String jcrName) throws ConstraintViolationException { if (jcrName == null) { throw new ConstraintViolationException("Missing JCR name"); } String oakName = mapper.getOakNameOrNull(jcrName); if (oakName == null || !JcrNameParser.validate(jcrName)) { throw new ConstraintViolationException( "Invalid name: " + jcrName); } return oakName; }
@NotNull private String getOakName(String jcrName) { String oakName = (jcrName == null) ? null : mapper.getOakNameOrNull(jcrName); if (oakName == null) { throw new IllegalArgumentException(new RepositoryException("Invalid name:" + jcrName)); } return oakName; } }
@Test public void testSimpleNames() throws RepositoryException { List<String> simpleNames = new ArrayList<String>(); simpleNames.add("foo"); simpleNames.add(" foo "); simpleNames.add("foo.bar"); simpleNames.add("."); simpleNames.add(".."); simpleNames.add("/"); simpleNames.add(" "); for (String name : simpleNames) { assertEquals(name, mapper.getOakNameOrNull(name)); assertEquals(name, mapper.getOakName(name)); assertEquals(name, mapper.getJcrName(name)); } }
@Test public void testExpandedNames() throws RepositoryException { Map<String, String> jcrToOak = new HashMap<String, String>(); jcrToOak.put("{}foo", "foo"); jcrToOak.put("{foo", "{foo"); jcrToOak.put("{foo}", "{foo}"); jcrToOak.put("{0} foo", "{0} foo"); // OAK-509 jcrToOak.put("{", "{"); jcrToOak.put("{http://www.jcp.org/jcr/nt/1.0}base", "nt:base"); jcrToOak.put("{http://www.example.com/foo}bar", "foo:bar"); jcrToOak.put("{http://www.example.com/quu}bar", "quu:bar"); for (String jcrName : jcrToOak.keySet()) { assertEquals(jcrToOak.get(jcrName), mapper.getOakNameOrNull(jcrName)); assertEquals(jcrToOak.get(jcrName), mapper.getOakName(jcrName)); } assertNull(mapper.getOakNameOrNull("{http://www.example.com/bar}bar")); try { mapper.getOakName("{http://www.example.com/bar}bar"); fail("RepositoryException expected"); } catch (RepositoryException e) { // successs } }
@Test public void testPrefixedNames() throws RepositoryException { List<String> prefixed = new ArrayList<String>(); prefixed.add("nt:base"); prefixed.add("foo: bar"); prefixed.add("quu:bar "); // unknown prefixes are only captured by the NameValidator prefixed.add("unknown:bar"); for (String name : prefixed) { assertEquals(name, mapper.getOakNameOrNull(name)); assertEquals(name, mapper.getOakName(name)); assertEquals(name, mapper.getJcrName(name)); } } }
@Test public void testEmptyName() throws RepositoryException { assertEquals("", mapper.getJcrName("")); assertEquals("", mapper.getOakNameOrNull("")); assertEquals("", mapper.getOakName("")); }