/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed 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.
 */

syntax = "proto2";

package com.android.dependencymapper;
option java_package = "com.android.dependencymapper";
option java_outer_classname = "DependencyProto";

/**
 * A com.android.dependencymapper.DependencyProto.FileDependency object.
 */

message FileDependency {

  // java file path on disk
  optional string file_path = 1;
  // if a change in this file warrants recompiling all files
  optional bool is_dependency_to_all = 2;
  // class files generated when this java file is compiled
  repeated string generated_classes = 3;
  // dependencies of this file.
  repeated string file_dependencies = 4;
}

/**
 * A com.android.dependencymapper.DependencyProto.FileDependencyList object.
 */
message FileDependencyList {

  // List of java file usages
  repeated FileDependency fileDependency = 1;
}