/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.servicecomb.metrics.core.publish.model.invocation;

import java.util.ArrayList;
import java.util.List;

public class OperationPerfGroup {
  private final String transport;

  private final String status;

  private final List<OperationPerf> operationPerfs = new ArrayList<>();

  private OperationPerf summary;

  public OperationPerfGroup(String transport, String status) {
    this.transport = transport;
    this.status = status;
  }

  public String getTransport() {
    return transport;
  }

  public String getStatus() {
    return status;
  }

  public List<OperationPerf> getOperationPerfs() {
    return operationPerfs;
  }

  public OperationPerf getSummary() {
    return summary;
  }

  public void addOperationPerf(OperationPerf operationPerf) {
    operationPerfs.add(operationPerf);

    if (summary == null) {
      summary = new OperationPerf();
      summary.setOperation("");
    }
    summary.add(operationPerf);
  }
}
