Example usage for org.eclipse.jgit.transport RemoteRefUpdate isExpectingOldObjectId

List of usage examples for org.eclipse.jgit.transport RemoteRefUpdate isExpectingOldObjectId

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport RemoteRefUpdate isExpectingOldObjectId.

Prototype

public boolean isExpectingOldObjectId() 

Source Link

Document

Whether some object is required to be advertised by remote side, as set in constructor

Usage

From source file:org.exist.git.xquery.Push.java

License:Open Source License

@Override
public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException {

    try {/*from  ww  w.  j a  v a  2 s  .  co m*/
        String localPath = args[0].getStringValue();
        if (!(localPath.endsWith("/")))
            localPath += File.separator;

        Git git = Git.open(new Resource(localPath), FS);

        Iterable<PushResult> answer = git.push().setCredentialsProvider(
                new UsernamePasswordCredentialsProvider(args[1].getStringValue(), args[2].getStringValue()))
                .call();

        MemTreeBuilder builder = getContext().getDocumentBuilder();

        int nodeNr = builder.startElement(PUSH, null);

        for (PushResult push : answer) {

            builder.startElement(RESULT, null);

            for (TrackingRefUpdate tracking : push.getTrackingRefUpdates()) {

                builder.startElement(TRACKING_REF_UPDATE, null);

                builder.addAttribute(REMOTE_NAME, tracking.getRemoteName());
                builder.addAttribute(LOCAL_NAME, tracking.getLocalName());

                //builder.addAttribute(FORCE_UPDATE, Boolean.toString(tracking.forceUpdate));

                builder.addAttribute(OLD_OBJECTID, tracking.getOldObjectId().name());
                builder.addAttribute(NEW_OBJECTID, tracking.getNewObjectId().name());
            }

            for (RemoteRefUpdate remote : push.getRemoteUpdates()) {

                builder.startElement(REMOTE_REF_UPDATE, null);

                builder.addAttribute(REMOTE_NAME, remote.getRemoteName());
                builder.addAttribute(STATUS, remote.getStatus().name());

                if (remote.isExpectingOldObjectId())
                    builder.addAttribute(EXPECTED_OLD_OBJECTID, remote.getExpectedOldObjectId().name());

                if (remote.getNewObjectId() != null)
                    builder.addAttribute(NEW_OBJECTID, remote.getNewObjectId().name());

                builder.addAttribute(FAST_FORWARD, Boolean.toString(remote.isFastForward()));
                builder.addAttribute(FORCE_UPDATE, Boolean.toString(remote.isForceUpdate()));

                if (remote.getMessage() != null)
                    builder.characters(remote.getMessage());

                builder.endElement();
            }
            builder.endElement();
        }

        builder.endElement();

        return builder.getDocument().getNode(nodeNr);
    } catch (Throwable e) {
        e.printStackTrace();
        throw new XPathException(this, Module.EXGIT001, e);
    }
}