| /* |
| * Copyright (C) 2021, Google LLC. and others |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Distribution License v. 1.0 which is available at |
| * https://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| package org.eclipse.jgit.transport; |
| |
| import java.util.Collections; |
| import java.util.List; |
| |
| import org.eclipse.jgit.lib.ObjectId; |
| |
| /** |
| * object-info request. |
| * |
| * <p> |
| * This is the parsed request for an object-info call, used as input to |
| * {@link ProtocolV2Hook}. |
| * |
| * @see <a href= |
| * "https://www.kernel.org/pub/software/scm/git/docs/technical/protocol-v2.html#_object_info">object-info |
| * documentation</a> |
| * |
| * @since 5.13 |
| */ |
| public final class ObjectInfoRequest { |
| private final List<ObjectId> objectIDs; |
| |
| private ObjectInfoRequest(List<ObjectId> objectIDs) { |
| this.objectIDs = objectIDs; |
| } |
| |
| /** |
| * Get object ids requested by the client |
| * |
| * @return object IDs that the client requested. |
| */ |
| public List<ObjectId> getObjectIDs() { |
| return this.objectIDs; |
| } |
| |
| /** |
| * Create builder |
| * |
| * @return A builder of {@link ObjectInfoRequest}. |
| */ |
| public static Builder builder() { |
| return new Builder(); |
| } |
| |
| /** A builder for {@link ObjectInfoRequest}. */ |
| public static final class Builder { |
| private List<ObjectId> objectIDs = Collections.emptyList(); |
| |
| private Builder() { |
| } |
| |
| /** |
| * Set object ids |
| * |
| * @param value |
| * of objectIds |
| * @return the Builder |
| */ |
| public Builder setObjectIDs(List<ObjectId> value) { |
| objectIDs = value; |
| return this; |
| } |
| |
| /** |
| * Build the request |
| * |
| * @return ObjectInfoRequest the request |
| */ |
| public ObjectInfoRequest build() { |
| return new ObjectInfoRequest( |
| Collections.unmodifiableList(objectIDs)); |
| } |
| } |
| } |