Restructure the code in AutoValueProcessor for handling extensions. This involves moving a fair amount of code around, but the resultant organization for method identification should be clearer. The principal purpose of the restructuring is to get rid of warnings about abstract methods when those methods are going to be implemented by an extension. A second purpose is to fix a bug where extensions would not work right if there was a toBuilder() method.

Also improve the test coverage in ExtensionTest, which was fairly minimal.

Some of the code in this change is based on https://github.com/google/auto/pull/299 by @rharter.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=120485500
5 files changed
tree: ec3a96b6f118d78663d7b873ca82d01a2f618027
  1. common/
  2. factory/
  3. service/
  4. util/
  5. value/
  6. .gitignore
  7. .travis.yml
  8. build-pom.xml
  9. checkstyle.xml
  10. CONTRIBUTING.md
  11. LICENSE.txt
  12. pom.xml
  13. README.md
README.md

Auto

A collection of source code generators for Java.

Auto‽

Java is full of code that is mechanical, repetitive, typically untested and sometimes the source of subtle bugs. Sounds like a job for robots!

The Auto subprojects are a collection of code generators that automate those types of tasks. They create the code you would have written, but without the bugs.

Save time. Save code. Save sanity.

Subprojects

  • AutoFactory - JSR-330-compatible factories

    Latest version: 0.1-beta3

  • AutoService - Provider-configuration files for ServiceLoader

    Latest version: 1.0-rc2

  • AutoValue - Immutable value-type code generation for Java 1.6+.

    Latest version: 1.2

  • Common - Helper utilities for writing annotation processors.

    Latest version: 0.6

License

Copyright 2013 Google, Inc.

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.