// Copyright 2015 The Bazel Authors. All rights reserved.
//
// 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.
//
// Java library manifest, for use by IDEs.

syntax = "proto2";

package blaze.buildjar;

option java_package = "com.google.devtools.build.buildjar.proto";

// Information about a single compilation unit (.java file)
message CompilationUnit {
  // The path to the compilation unit
  optional string path = 1;

  // The package of the source file
  optional string pkg = 2;

  // Whether the source was generated by an annotation processor
  optional bool generated_by_annotation_processor = 3;

  // The list of top-level types in the compilation unit
  repeated string top_level = 4;
}

// Top-level message found in .manifest artifacts
message Manifest {
  repeated CompilationUnit compilation_unit = 1;
}
