test_class.declarator: mEnvironment
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private RoundEnvironment mEnvironment;
test_class.type: RoundEnvironment
test_class.var_name: mEnvironment
test_class.declarator: mFactory
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ModelFactory mFactory;
test_class.type: ModelFactory
test_class.var_name: mFactory
test_class.declarator: mProcessingEnvironment
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ProcessingEnvironment mProcessingEnvironment;
test_class.type: ProcessingEnvironment
test_class.var_name: mProcessingEnvironment
test_class.declarator: mFiler
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private Filer mFiler;
test_class.type: Filer
test_class.var_name: mFiler
test_class.file: generator/src/test/java/com/truecaller/androidactors/ActorsProcessorTest.java
test_class.identifier: ActorsProcessorTest
test_case.body: @Test
      public void validateModel_false_noPackageAnnotations() {
          ActorParsedModel model = new ActorParsedModel();
  
          ActorsProcessor processor = new ActorsProcessor(mFactory);
          Assert.assertEquals(false, processor.validateModel(model));
  
          Assert.assertEquals(1, model.errors.size());
          Assert.assertEquals(true, model.errors.get(0).isError);
          Assert.assertEquals(GenerationError.ER0010, model.errors.get(0).message);
      }
test_case.class_method_signature: ActorsProcessorTest.validateModel_false_noPackageAnnotations()
test_case.full_signature: @Test public void validateModel_false_noPackageAnnotations()
test_case.identifier: validateModel_false_noPackageAnnotations
test_case.invocations: assertEquals validateModel assertEquals size assertEquals get assertEquals get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void validateModel_false_noPackageAnnotations()
focal_class.declarator: mModelFactory
focal_class.modifier: private final
focal_class.original_string: private final ModelFactory mModelFactory;
focal_class.type: ModelFactory
focal_class.var_name: mModelFactory
focal_class.declarator: mParsedModel
focal_class.modifier: private
focal_class.original_string: private ActorParsedModel mParsedModel;
focal_class.type: ActorParsedModel
focal_class.var_name: mParsedModel
focal_class.declarator: mGeneratedModel
focal_class.modifier: private
focal_class.original_string: private ActorGeneratedModel mGeneratedModel;
focal_class.type: ActorGeneratedModel
focal_class.var_name: mGeneratedModel
focal_class.file: generator/src/main/java/com/truecaller/androidactors/ActorsProcessor.java
focal_class.identifier: ActorsProcessor
focal_class.class_method_signature: ActorsProcessor.ActorsProcessor()
focal_class.full_signature: @SuppressWarnings("unused") public  ActorsProcessor()
focal_class.identifier: ActorsProcessor
focal_class.modifiers: @SuppressWarnings("unused") public
focal_class.parameters: ()
focal_class.signature:  ActorsProcessor()
focal_class.class_method_signature: ActorsProcessor.ActorsProcessor(@NotNull ModelFactory modelFactory)
focal_class.full_signature: @VisibleForTesting  ActorsProcessor(@NotNull ModelFactory modelFactory)
focal_class.identifier: ActorsProcessor
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (@NotNull ModelFactory modelFactory)
focal_class.signature:  ActorsProcessor(@NotNull ModelFactory modelFactory)
focal_class.class_method_signature: ActorsProcessor.init(ProcessingEnvironment processingEnv)
focal_class.full_signature: @Override public synchronized void init(ProcessingEnvironment processingEnv)
focal_class.identifier: init
focal_class.modifiers: @Override public synchronized
focal_class.parameters: (ProcessingEnvironment processingEnv)
focal_class.return: void
focal_class.signature: void init(ProcessingEnvironment processingEnv)
focal_class.class_method_signature: ActorsProcessor.getSupportedSourceVersion()
focal_class.full_signature: @Override public SourceVersion getSupportedSourceVersion()
focal_class.identifier: getSupportedSourceVersion
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: SourceVersion
focal_class.signature: SourceVersion getSupportedSourceVersion()
focal_class.class_method_signature: ActorsProcessor.process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv)
focal_class.full_signature: @Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv)
focal_class.identifier: process
focal_class.modifiers: @Override public
focal_class.parameters: (Set<? extends TypeElement> annotations, RoundEnvironment roundEnv)
focal_class.return: boolean
focal_class.signature: boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv)
focal_class.class_method_signature: ActorsProcessor.configureModel(@NotNull Set<? extends TypeElement> annotations, @NotNull ActorParsedModel model)
focal_class.full_signature: private void configureModel(@NotNull Set<? extends TypeElement> annotations, @NotNull ActorParsedModel model)
focal_class.identifier: configureModel
focal_class.modifiers: private
focal_class.parameters: (@NotNull Set<? extends TypeElement> annotations, @NotNull ActorParsedModel model)
focal_class.return: void
focal_class.signature: void configureModel(@NotNull Set<? extends TypeElement> annotations, @NotNull ActorParsedModel model)
focal_class.class_method_signature: ActorsProcessor.parseModel(@NotNull ActorParsedModel model, @NotNull RoundEnvironment environment)
focal_class.full_signature: @VisibleForTesting void parseModel(@NotNull ActorParsedModel model, @NotNull RoundEnvironment environment)
focal_class.identifier: parseModel
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (@NotNull ActorParsedModel model, @NotNull RoundEnvironment environment)
focal_class.return: void
focal_class.signature: void parseModel(@NotNull ActorParsedModel model, @NotNull RoundEnvironment environment)
focal_class.class_method_signature: ActorsProcessor.validateModel(@NotNull ActorParsedModel model)
focal_class.full_signature: @VisibleForTesting boolean validateModel(@NotNull ActorParsedModel model)
focal_class.identifier: validateModel
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (@NotNull ActorParsedModel model)
focal_class.return: boolean
focal_class.signature: boolean validateModel(@NotNull ActorParsedModel model)
focal_class.class_method_signature: ActorsProcessor.generateFromModel(@NotNull ActorParsedModel model, @NotNull ActorGeneratedModel generated)
focal_class.full_signature: @VisibleForTesting void generateFromModel(@NotNull ActorParsedModel model, @NotNull ActorGeneratedModel generated)
focal_class.identifier: generateFromModel
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (@NotNull ActorParsedModel model, @NotNull ActorGeneratedModel generated)
focal_class.return: void
focal_class.signature: void generateFromModel(@NotNull ActorParsedModel model, @NotNull ActorGeneratedModel generated)
focal_class.class_method_signature: ActorsProcessor.writeModel(@NotNull ActorGeneratedModel model)
focal_class.full_signature: @VisibleForTesting boolean writeModel(@NotNull ActorGeneratedModel model)
focal_class.identifier: writeModel
focal_class.modifiers: @VisibleForTesting
focal_class.parameters: (@NotNull ActorGeneratedModel model)
focal_class.return: boolean
focal_class.signature: boolean writeModel(@NotNull ActorGeneratedModel model)
focal_class.class_method_signature: ActorsProcessor.containsAnnotation(Set<? extends TypeElement> annotations, Class<? extends Annotation> needle)
focal_class.full_signature: private boolean containsAnnotation(Set<? extends TypeElement> annotations, Class<? extends Annotation> needle)
focal_class.identifier: containsAnnotation
focal_class.modifiers: private
focal_class.parameters: (Set<? extends TypeElement> annotations, Class<? extends Annotation> needle)
focal_class.return: boolean
focal_class.signature: boolean containsAnnotation(Set<? extends TypeElement> annotations, Class<? extends Annotation> needle)
focal_class.superclass: extends AbstractProcessor
focal_method.body: @VisibleForTesting
      /* package */ boolean validateModel(@NotNull ActorParsedModel model) {
          boolean result = true;
  
          if (model.collectInterfaces) {
              for (ActorInterfaceDescription _interface : model.interfaces) {
                  if (!_interface.validate()) {
                      _interface.describeProblems(model.errors);
                      result = false;
                  }
              }
          }
  
          if (!model.collectInterfaces || model.collectPackages) {
              int packages = 0;
              for (ActorsPackageDescription _package : model.packages) {
                  if (!_package.validate()) {
                      _package.describeProblems(model.errors);
                  } else {
                      ++packages;
                  }
              }
  
              switch (packages) {
                  case 0:
                      model.errors.add(new GenerationError(GenerationError.ER0010));
                      result = false;
                      break;
                  case 1:
                      break;
                  default:
                      model.errors.add(new GenerationError(GenerationError.ER0009));
                      result = false;
                      break;
              }
          }
  
          return result;
      }
focal_method.class_method_signature: ActorsProcessor.validateModel(@NotNull ActorParsedModel model)
focal_method.full_signature: @VisibleForTesting boolean validateModel(@NotNull ActorParsedModel model)
focal_method.identifier: validateModel
focal_method.invocations: validate describeProblems validate describeProblems add add
focal_method.modifiers: @VisibleForTesting
focal_method.parameters: (@NotNull ActorParsedModel model)
focal_method.return: boolean
focal_method.signature: boolean validateModel(@NotNull ActorParsedModel model)