Package org.nutz.dao.impl.link

Source Code of org.nutz.dao.impl.link.DoFetchLinkVisitor

package org.nutz.dao.impl.link;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.nutz.dao.entity.LinkField;
import org.nutz.dao.impl.AbstractLinkVisitor;
import org.nutz.dao.sql.Pojo;
import org.nutz.dao.sql.PojoCallback;
import org.nutz.dao.util.Pojos;

public class DoFetchLinkVisitor extends AbstractLinkVisitor {

    public void visit(final Object obj, final LinkField lnk) {
        Pojo pojo = opt.maker().makeQuery(lnk.getLinkedEntity());
        pojo.setOperatingObject(obj);
        pojo.append(Pojos.Items.cnd(lnk.createCondition(obj)));
        pojo.setAfter(new PojoCallback() {
            public Object invoke(Connection conn, ResultSet rs, Pojo pojo) throws SQLException {
                Object value = lnk.getCallback().invoke(conn, rs, pojo);
                lnk.setValue(obj, value);
                return value;
            }
        });
        opt.add(pojo);
    }

}
TOP

Related Classes of org.nutz.dao.impl.link.DoFetchLinkVisitor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.