diff options
author | 2017-03-13 15:24:52 +0000 | |
---|---|---|
committer | 2017-03-14 08:53:02 +0000 | |
commit | f01fe6f06188f676cf64db29eaa95946dc0de20c (patch) | |
tree | ee3bc270e20f69f02c0f9b0ab1d1fade1e19d84a /src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java | |
parent | b63727a30859e7191a1fa13e4d2e096c986b3336 (diff) |
Split AndroidDataDeserializer out of AndroidDataSerializer, as the two classes
do different (if similar) things and had no common code whatsoever.
--
PiperOrigin-RevId: 149942714
MOS_MIGRATED_REVID=149942714
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java b/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java index 34b424b521..2e1398eabc 100644 --- a/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java +++ b/src/tools/android/java/com/google/devtools/build/android/AndroidDataMerger.java @@ -37,21 +37,17 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Logger; /** Handles the Merging of ParsedAndroidData. */ -public class AndroidDataMerger { +class AndroidDataMerger { private static final Logger logger = Logger.getLogger(AndroidDataMerger.class.getCanonicalName()); - private static final class ParseDependencyDataTask implements Callable<Boolean> { - - private final AndroidDataSerializer serializer; + private final class ParseDependencyDataTask implements Callable<Boolean> { private final SerializedAndroidData dependency; private final Builder targetBuilder; - private ParseDependencyDataTask( - AndroidDataSerializer serializer, SerializedAndroidData dependency, Builder targetBuilder) { - this.serializer = serializer; + private ParseDependencyDataTask(SerializedAndroidData dependency, Builder targetBuilder) { this.dependency = dependency; this.targetBuilder = targetBuilder; } @@ -60,7 +56,7 @@ public class AndroidDataMerger { public Boolean call() throws Exception { final Builder parsedDataBuilder = ParsedAndroidData.Builder.newBuilder(); try { - dependency.deserialize(serializer, parsedDataBuilder.consumers()); + dependency.deserialize(deserializer, parsedDataBuilder.consumers()); } catch (DeserializationException e) { if (!e.isLegacy()) { throw MergingException.wrapException(e).build(); @@ -141,25 +137,26 @@ public class AndroidDataMerger { private final SourceChecker deDuplicator; private final ListeningExecutorService executorService; + private final AndroidDataDeserializer deserializer = AndroidDataDeserializer.create(); /** Creates a merger with no path deduplication and a default {@link ExecutorService}. */ - public static AndroidDataMerger createWithDefaults() { + static AndroidDataMerger createWithDefaults() { return createWithDefaultThreadPool(NoopSourceChecker.create()); } /** Creates a merger with a custom deduplicator and a default {@link ExecutorService}. */ - public static AndroidDataMerger createWithDefaultThreadPool(SourceChecker deDuplicator) { + static AndroidDataMerger createWithDefaultThreadPool(SourceChecker deDuplicator) { return new AndroidDataMerger(deDuplicator, MoreExecutors.newDirectExecutorService()); } /** Creates a merger with a custom deduplicator and an {@link ExecutorService}. */ - public static AndroidDataMerger create( + static AndroidDataMerger create( SourceChecker deDuplicator, ListeningExecutorService executorService) { return new AndroidDataMerger(deDuplicator, executorService); } /** Creates a merger with a file contents hashing deduplicator. */ - public static AndroidDataMerger createWithPathDeduplictor( + static AndroidDataMerger createWithPathDeduplictor( ListeningExecutorService executorService) { return create(ContentComparingChecker.create(), executorService); } @@ -187,17 +184,13 @@ public class AndroidDataMerger { try { final ParsedAndroidData.Builder directBuilder = ParsedAndroidData.Builder.newBuilder(); final ParsedAndroidData.Builder transitiveBuilder = ParsedAndroidData.Builder.newBuilder(); - final AndroidDataSerializer serializer = AndroidDataSerializer.create(); final List<ListenableFuture<Boolean>> tasks = new ArrayList<>(); for (final SerializedAndroidData dependency : direct) { - tasks.add( - executorService.submit( - new ParseDependencyDataTask(serializer, dependency, directBuilder))); + tasks.add(executorService.submit(new ParseDependencyDataTask(dependency, directBuilder))); } for (final SerializedAndroidData dependency : transitive) { tasks.add( - executorService.submit( - new ParseDependencyDataTask(serializer, dependency, transitiveBuilder))); + executorService.submit(new ParseDependencyDataTask(dependency, transitiveBuilder))); } // Wait for all the parsing to complete. FailedFutureAggregator<MergingException> aggregator = @@ -314,7 +307,7 @@ public class AndroidDataMerger { final KeyValueConsumers primaryConsumers = primaryBuilder.consumers(); final Set<MergeConflict> conflicts = new HashSet<>(); - + // Find all internal conflicts. conflicts.addAll(parsedPrimary.conflicts()); for (MergeConflict conflict : Iterables.concat(direct.conflicts(), transitive.conflicts())) { |