예제 #1
0
 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;
 }
예제 #2
0
 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()));
 }