use of javax.jcr.PropertyIterator in project jackrabbit-oak by apache.
the class AuthorizablePropertyTest method testGroupGetProperties.
@Test
public void testGroupGetProperties() throws RepositoryException, NotExecutableException {
Node n = getNode(group, superuser);
for (PropertyIterator it = n.getProperties(); it.hasNext(); ) {
Property prop = it.nextProperty();
if (prop.getDefinition().isProtected()) {
assertFalse(group.hasProperty(prop.getName()));
assertNull(group.getProperty(prop.getName()));
} else {
// authorizable defined property
assertTrue(group.hasProperty(prop.getName()));
assertNotNull(group.getProperty(prop.getName()));
}
}
}
use of javax.jcr.PropertyIterator in project jackrabbit-oak by apache.
the class AuthorizablePropertyTest method testUserGetProperties.
@Test
public void testUserGetProperties() throws RepositoryException, NotExecutableException {
Node n = getNode(user, superuser);
for (PropertyIterator it = n.getProperties(); it.hasNext(); ) {
Property p = it.nextProperty();
if (p.getDefinition().isProtected()) {
assertFalse(user.hasProperty(p.getName()));
assertNull(user.getProperty(p.getName()));
} else {
// authorizable defined property
assertTrue(user.hasProperty(p.getName()));
assertNotNull(user.getProperty(p.getName()));
}
}
}
use of javax.jcr.PropertyIterator in project jackrabbit-oak by apache.
the class RepositoryUpgradeTest method verifyReferencePropertiesContent.
@Test
public void verifyReferencePropertiesContent() throws Exception {
Session session = createAdminSession();
try {
assertTrue(session.nodeExists("/referenceable"));
String testNodeIdentifier = session.getNode("/referenceable").getIdentifier();
assertTrue(session.nodeExists("/properties"));
Node properties = session.getNode("/properties");
assertEquals(PropertyType.REFERENCE, properties.getProperty("reference").getType());
assertEquals(testNodeIdentifier, properties.getProperty("reference").getString());
assertEquals("/referenceable", properties.getProperty("reference").getNode().getPath());
PropertyIterator refs = session.getNode("/referenceable").getReferences();
assertTrue(refs.hasNext());
assertEquals(properties.getPath() + "/reference", refs.nextProperty().getPath());
assertFalse(refs.hasNext());
PropertyIterator refs2 = session.getNode("/versionable").getReferences();
assertTrue(refs2.hasNext());
assertEquals(properties.getPath() + "/mv_reference", refs2.nextProperty().getPath());
assertFalse(refs2.hasNext());
assertEquals(PropertyType.WEAKREFERENCE, properties.getProperty("weak_reference").getType());
assertEquals(testNodeIdentifier, properties.getProperty("weak_reference").getString());
assertEquals("/referenceable", properties.getProperty("weak_reference").getNode().getPath());
PropertyIterator weakRefs = session.getNode("/referenceable").getWeakReferences();
assertTrue(weakRefs.hasNext());
assertEquals(properties.getPath() + "/weak_reference", weakRefs.nextProperty().getPath());
assertFalse(weakRefs.hasNext());
PropertyIterator weakRefs2 = session.getNode("/versionable").getWeakReferences();
assertTrue(weakRefs2.hasNext());
assertEquals(properties.getPath() + "/mv_weak_reference", weakRefs2.nextProperty().getPath());
assertFalse(weakRefs2.hasNext());
} finally {
session.logout();
}
}
use of javax.jcr.PropertyIterator in project sling by apache.
the class MockedResource method adaptTo.
@SuppressWarnings("unchecked")
@Override
public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
if (type.equals(Node.class)) {
try {
return (AdapterType) getSession().getNode(getPath());
} catch (Exception e) {
logger.error("Exception occurred: " + e, e);
throw new RuntimeException("Exception occurred: " + e, e);
}
} else if (type.equals(ValueMap.class)) {
try {
Session session = getSession();
Node node = session.getNode(getPath());
HashMap<String, Object> map = new HashMap<String, Object>();
PropertyIterator properties = node.getProperties();
while (properties.hasNext()) {
Property p = properties.nextProperty();
if (p.getType() == PropertyType.BOOLEAN) {
map.put(p.getName(), p.getBoolean());
} else if (p.getType() == PropertyType.STRING) {
map.put(p.getName(), p.getString());
} else if (p.getType() == PropertyType.DATE) {
map.put(p.getName(), p.getDate().getTime());
} else if (p.getType() == PropertyType.NAME) {
map.put(p.getName(), p.getName());
} else if (p.getType() == PropertyType.LONG) {
map.put(p.getName(), p.getLong());
} else {
throw new RuntimeException("Unsupported property type: " + p.getType());
}
}
ValueMap valueMap = new ValueMapDecorator(map);
return (AdapterType) valueMap;
} catch (Exception e) {
e.printStackTrace();
return null;
}
} else if (type.equals(ModifiableValueMap.class)) {
return (AdapterType) new ModifiableValueMap() {
public Collection<Object> values() {
throw new UnsupportedOperationException();
}
public int size() {
throw new UnsupportedOperationException();
}
public Object remove(Object arg0) {
Session session = getSession();
try {
final Node node = session.getNode(getPath());
final Property p = node.getProperty(String.valueOf(arg0));
if (p != null) {
p.remove();
}
// the return value is never used
return null;
} catch (PathNotFoundException pnfe) {
// perfectly fine
return null;
} catch (RepositoryException e) {
throw new RuntimeException(e);
}
}
public void putAll(Map<? extends String, ? extends Object> arg0) {
throw new UnsupportedOperationException();
}
public Object put(String arg0, Object arg1) {
Session session = getSession();
try {
final Node node = session.getNode(getPath());
Object result = null;
if (node.hasProperty(arg0)) {
final Property previous = node.getProperty(arg0);
if (previous == null) {
// null
} else if (previous.getType() == PropertyType.STRING) {
result = previous.getString();
} else if (previous.getType() == PropertyType.DATE) {
result = previous.getDate();
} else if (previous.getType() == PropertyType.BOOLEAN) {
result = previous.getBoolean();
} else {
throw new UnsupportedOperationException();
}
}
if (arg1 instanceof String) {
node.setProperty(arg0, (String) arg1);
} else if (arg1 instanceof Calendar) {
node.setProperty(arg0, (Calendar) arg1);
} else if (arg1 instanceof Boolean) {
node.setProperty(arg0, (Boolean) arg1);
} else if (arg1 instanceof Date) {
final Calendar c = Calendar.getInstance();
c.setTime((Date) arg1);
node.setProperty(arg0, c);
} else if (arg1 instanceof Number) {
Number n = (Number) arg1;
node.setProperty(arg0, n.longValue());
} else {
throw new UnsupportedOperationException();
}
return result;
} catch (RepositoryException e) {
throw new RuntimeException(e);
}
}
public Set<String> keySet() {
Session session = getSession();
try {
final Node node = session.getNode(getPath());
final PropertyIterator pi = node.getProperties();
final Set<String> result = new HashSet<String>();
while (pi.hasNext()) {
final Property p = pi.nextProperty();
result.add(p.getName());
}
return result;
} catch (RepositoryException e) {
throw new RuntimeException(e);
}
}
public boolean isEmpty() {
throw new UnsupportedOperationException();
}
public Object get(Object arg0) {
Session session = getSession();
try {
final Node node = session.getNode(getPath());
final String key = String.valueOf(arg0);
if (node.hasProperty(key)) {
return node.getProperty(key);
} else {
return null;
}
} catch (RepositoryException re) {
throw new RuntimeException(re);
}
}
public Set<Entry<String, Object>> entrySet() {
throw new UnsupportedOperationException();
}
public boolean containsValue(Object arg0) {
throw new UnsupportedOperationException();
}
public boolean containsKey(Object arg0) {
Session session = getSession();
try {
final Node node = session.getNode(getPath());
return node.hasProperty(String.valueOf(arg0));
} catch (RepositoryException re) {
throw new RuntimeException(re);
}
}
public void clear() {
throw new UnsupportedOperationException();
}
public <T> T get(String name, T defaultValue) {
throw new UnsupportedOperationException();
}
public <T> T get(String name, Class<T> type) {
Session session = getSession();
try {
final Node node = session.getNode(getPath());
if (node == null) {
return null;
}
if (!node.hasProperty(name)) {
return null;
}
Property p = node.getProperty(name);
if (p == null) {
return null;
}
if (type.equals(Calendar.class)) {
return (T) p.getDate();
} else if (type.equals(String.class)) {
return (T) p.getString();
} else {
throw new UnsupportedOperationException();
}
} catch (RepositoryException e) {
throw new RuntimeException(e);
}
}
};
} else {
return super.adaptTo(type);
}
}
use of javax.jcr.PropertyIterator in project sling by apache.
the class MockNode method getProperties.
public PropertyIterator getProperties(String namePattern) throws RepositoryException {
PropertyIterator iterator = getProperties();
List<Property> properties = new ArrayList<Property>();
while (iterator.hasNext()) {
Property p = iterator.nextProperty();
String name = p.getName();
if (ChildrenCollectorFilter.matches(name, namePattern)) {
properties.add(p);
}
}
return new MockPropertyIterator(properties.iterator());
}
Aggregations