package org.nutz.dao.impl.link;
import org.nutz.dao.entity.LinkField;
import org.nutz.dao.impl.AbstractLinkVisitor;
import org.nutz.dao.sql.Pojo;
import org.nutz.dao.util.Pojos;
import org.nutz.lang.Each;
import org.nutz.lang.ExitLoop;
import org.nutz.lang.Lang;
import org.nutz.lang.LoopException;
import org.nutz.log.Log;
import org.nutz.log.Logs;
public class DoDeleteLinkVisitor extends AbstractLinkVisitor {
private static final Log log = Logs.get();
public void visit(Object obj, LinkField lnk) {
Object value = lnk.getValue(obj);
if (value == null || Lang.length(value) == 0) {
log.infof("Value of LinkField(@%s-->%s.%s) is null or isEmtry, ingore",
lnk.getLinkType(), lnk.getEntity().getType().getSimpleName(),
lnk.getHostField().getName());
return;
}
final Pojo pojo = opt.maker().makeDelete(lnk.getLinkedEntity());
pojo.setOperatingObject(value);
pojo.append(Pojos.Items.cndAuto(lnk.getLinkedEntity(), null));
Lang.each(value, new Each<Object>() {
public void invoke(int i, Object ele, int length) throws ExitLoop, LoopException {
pojo.addParamsBy(ele);
}
});
opt.add(pojo);
}
}