private void saveOrUpdate(Resource subject, ValuesContext pc) { Object o = pc.invokeGetter(); Property property = toRdfProperty(pc); if (Saver.supports(pc.type())) Saver.of(pc.type()).save(this, subject, property, o); else if (o == null) subject.removeAll(property); else if (pc.isPrimitive()) subject.removeAll(property).addProperty(property, toLiteral(m, o)); else if (isNormalObject(o)) setPropertyValue(subject, property, o); else logger.log( Level.WARNING, MessageFormat.format( bundle.getString(UNSUPPORTED_TYPE), pc.type(), pc.subject.getClass())); }
private Resource write(Object bean, Resource subject, boolean shallow) { cycle.add(bean); for (ValuesContext p : TypeWrapper.valueContexts(bean)) if (!(shallow && p.type().isAssignableFrom(Collection.class)) || forceDeep) saveOrUpdate(subject, p); return subject; }