diff options
7 files changed, 27 insertions, 152 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidDataWriter.java b/src/tools/android/java/com/google/devtools/build/android/AndroidDataWriter.java index ab43942abd..4be59ba433 100644 --- a/src/tools/android/java/com/google/devtools/build/android/AndroidDataWriter.java +++ b/src/tools/android/java/com/google/devtools/build/android/AndroidDataWriter.java @@ -48,7 +48,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; -import java.util.TreeMap; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; @@ -81,40 +80,6 @@ public class AndroidDataWriter implements AndroidDataWritingVisitor { } } - private static final class WriteValuesXmlTask implements Callable<Boolean> { - - private final Path valuesPath; - private final Map<FullyQualifiedName, Iterable<String>> valueFragments; - - WriteValuesXmlTask(Path valuesPath, Map<FullyQualifiedName, Iterable<String>> valueFragments) { - this.valuesPath = valuesPath; - this.valueFragments = valueFragments; - } - - @Override - public Boolean call() throws Exception { - // TODO(corysmith): replace the xml writing with a real xml writing library. - Files.createDirectories(valuesPath.getParent()); - try (BufferedWriter writer = - Files.newBufferedWriter( - valuesPath, - StandardCharsets.UTF_8, - StandardOpenOption.CREATE_NEW, - StandardOpenOption.WRITE)) { - writer.write(START_RESOURCES); - for (FullyQualifiedName key : - Ordering.natural().immutableSortedCopy(valueFragments.keySet())) { - for (String line : valueFragments.get(key)) { - writer.write(line); - writer.write(LINE_END); - } - } - writer.write(END_RESOURCES); - } - return Boolean.TRUE; - } - } - private static final class CopyTask implements Callable<Boolean> { private final Path sourcePath; @@ -263,14 +228,6 @@ public class AndroidDataWriter implements AndroidDataWritingVisitor { */ @Override public void flush() throws IOException { - for (Entry<String, Map<FullyQualifiedName, Iterable<String>>> entry : - valueFragments.entrySet()) { - writeTasks.add( - executorService.submit( - new WriteValuesXmlTask( - resourceDirectory().resolve(entry.getKey()), entry.getValue()))); - } - for (Entry<String, ResourceValuesDefinitions> entry : valueTags.entrySet()) { writeTasks.add( executorService.submit( @@ -285,16 +242,6 @@ public class AndroidDataWriter implements AndroidDataWritingVisitor { } @Override - public void writeToValuesXml(FullyQualifiedName key, Iterable<String> xmlFragment) { - String valuesPathString = key.valuesPath(); - if (!valueFragments.containsKey(valuesPathString)) { - valueFragments.put( - valuesPathString, new TreeMap<FullyQualifiedName, Iterable<String>>(Ordering.natural())); - } - valueFragments.get(valuesPathString).put(key, xmlFragment); - } - - @Override public ValueResourceDefinitionMetadata define(FullyQualifiedName fqn) { String valuesPath = fqn.valuesPath(); if (!valueTags.containsKey(valuesPath)) { diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidDataWritingVisitor.java b/src/tools/android/java/com/google/devtools/build/android/AndroidDataWritingVisitor.java index c55ee3629e..ff8fabddfb 100644 --- a/src/tools/android/java/com/google/devtools/build/android/AndroidDataWritingVisitor.java +++ b/src/tools/android/java/com/google/devtools/build/android/AndroidDataWritingVisitor.java @@ -51,16 +51,6 @@ public interface AndroidDataWritingVisitor extends Flushable { throws IOException, MergingException; /** - * Adds a xml string fragment to the values file. - * - * @param key Used to ensure a constant order of the written xml. - * @param xmlFragment the xml fragment as an Iterable<String> which allows lazy generation. - */ - // TODO(corysmith): Change this to pass in a xml writer. Safer all around. - @Deprecated - void writeToValuesXml(FullyQualifiedName key, Iterable<String> xmlFragment); - - /** * Provides a fluent interface to generate an xml resource for the values directory. * * <p>Example usage: diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/ArrayXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/ArrayXmlResourceValue.java index ce00d9577b..3819d86998 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/ArrayXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/ArrayXmlResourceValue.java @@ -127,7 +127,13 @@ public class ArrayXmlResourceValue implements XmlResourceValue { .addAttributesFrom(attributes.entrySet()) .closeTag(); for (String value : values) { - definition = definition.startItemTag().closeTag().addCharactersOf(value).endTag(); + definition = + definition + .startItemTag() + .closeTag() + .addCharactersOf(value) + .endTag() + .addCharactersOf("\n"); } definition.endTag().save(); } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/AttrXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/AttrXmlResourceValue.java index 636f536183..7984dc1097 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/AttrXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/AttrXmlResourceValue.java @@ -17,7 +17,6 @@ import static com.google.common.base.Predicates.equalTo; import static com.google.common.base.Predicates.not; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.common.collect.FluentIterable; @@ -297,8 +296,7 @@ public class AttrXmlResourceValue implements XmlResourceValue { .derivedFrom(source) .startTag("attr") .named(key) - .closeTag() - .endTag() + .closeUnaryTag() .save(); } else { ImmutableList<String> formatKeys = @@ -316,7 +314,8 @@ public class AttrXmlResourceValue implements XmlResourceValue { .attribute("format") .setFrom(formatKeys) .joinedBy("|") - .closeTag(); + .closeTag() + .addCharactersOf("\n"); for (ResourceXmlAttrValue value : formats.values()) { definition = value.writeTo(definition); } @@ -324,6 +323,7 @@ public class AttrXmlResourceValue implements XmlResourceValue { } } + @SuppressWarnings("deprecation") @Override public int serializeTo(Path source, OutputStream output) throws IOException { SerializeFormat.DataValue.Builder builder = @@ -347,7 +347,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { @CheckReturnValue interface ResourceXmlAttrValue { - FluentIterable<String> appendTo(FluentIterable<String> iterable); ValuesResourceDefinition writeTo(ValuesResourceDefinition writer); @@ -360,14 +359,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { @VisibleForTesting public static class EnumResourceXmlAttrValue implements ResourceXmlAttrValue { - private static final Function<Entry<String, String>, String> MAP_TO_ENUM = - new Function<Entry<String, String>, String>() { - @Nullable - @Override - public String apply(Entry<String, String> entry) { - return String.format("<enum name='%s' value='%s'/>", entry.getKey(), entry.getValue()); - } - }; private Map<String, String> values; private EnumResourceXmlAttrValue(Map<String, String> values) { @@ -409,11 +400,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable.append(FluentIterable.from(values.entrySet()).transform(MAP_TO_ENUM)); - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.putAllMappedStringValue(values).build(); } @@ -428,7 +414,8 @@ public class AttrXmlResourceValue implements XmlResourceValue { .setTo(entry.getKey()) .attribute("value") .setTo(entry.getValue()) - .closeUnaryTag(); + .closeUnaryTag() + .addCharactersOf("\n"); } return writer; } @@ -480,21 +467,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable.append( - FluentIterable.from(values.entrySet()) - .transform( - new Function<Entry<String, String>, String>() { - @Nullable - @Override - public String apply(Entry<String, String> input) { - return String.format( - "<flag name='%s' value='%s'/>", input.getKey(), input.getValue()); - } - })); - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.putAllMappedStringValue(values).build(); } @@ -531,11 +503,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable; - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.build(); } @@ -561,11 +528,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable; - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.build(); } @@ -591,11 +553,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable; - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.build(); } @@ -621,11 +578,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable; - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.build(); } @@ -652,11 +604,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable; - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.build(); } @@ -682,11 +629,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable; - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.build(); } @@ -712,11 +654,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable; - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.build(); } @@ -742,11 +679,6 @@ public class AttrXmlResourceValue implements XmlResourceValue { } @Override - public FluentIterable<String> appendTo(FluentIterable<String> iterable) { - return iterable; - } - - @Override public SerializeFormat.DataValueXml appendTo(SerializeFormat.DataValueXml.Builder builder) { return builder.build(); } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java index 791e993c15..64cc8e8c64 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/PluralXmlResourceValue.java @@ -13,7 +13,6 @@ // limitations under the License. package com.google.devtools.build.android.xml; -import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.android.AndroidDataWritingVisitor; @@ -31,7 +30,6 @@ import java.nio.file.Path; import java.util.Map.Entry; import java.util.Objects; -import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; import javax.xml.namespace.QName; @@ -53,14 +51,7 @@ import javax.xml.namespace.QName; public class PluralXmlResourceValue implements XmlResourceValue { private static final QName PLURALS = QName.valueOf("plurals"); - public static final Function<Entry<String, String>, String> ENTRY_TO_PLURAL = - new Function<Entry<String, String>, String>() { - @Nullable - @Override - public String apply(Entry<String, String> input) { - return String.format("<item quantity='%s'>%s</item>", input.getKey(), input.getValue()); - } - }; + private final ImmutableMap<String, String> values; private PluralXmlResourceValue(ImmutableMap<String, String> values) { @@ -84,7 +75,8 @@ public class PluralXmlResourceValue implements XmlResourceValue { .setTo(plural.getKey()) .closeTag() .addCharactersOf(plural.getValue()) - .endTag(); + .endTag() + .addCharactersOf("\n"); } definition.endTag().save(); } @@ -108,6 +100,7 @@ public class PluralXmlResourceValue implements XmlResourceValue { return MoreObjects.toStringHelper(getClass()).add("values", values).toString(); } + @SuppressWarnings("deprecation") public static XmlResourceValue from(SerializeFormat.DataValueXml proto) { return of(ImmutableMap.copyOf(proto.getMappedStringValue())); } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java index d0c833201a..c3edb182e4 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/StyleXmlResourceValue.java @@ -91,7 +91,8 @@ public class StyleXmlResourceValue implements XmlResourceValue { .optional() .attribute("parent") .setTo(parent) - .closeTag(); + .closeTag() + .addCharactersOf("\n"); for (Entry<String, String> entry : values.entrySet()) { definition = definition @@ -99,7 +100,8 @@ public class StyleXmlResourceValue implements XmlResourceValue { .named(entry.getKey()) .closeTag() .addCharactersOf(entry.getValue()) - .endTag(); + .endTag() + .addCharactersOf("\n"); } definition.endTag().save(); } diff --git a/src/tools/android/java/com/google/devtools/build/android/xml/StyleableXmlResourceValue.java b/src/tools/android/java/com/google/devtools/build/android/xml/StyleableXmlResourceValue.java index 38d90fd8e3..095ff7a1cb 100644 --- a/src/tools/android/java/com/google/devtools/build/android/xml/StyleableXmlResourceValue.java +++ b/src/tools/android/java/com/google/devtools/build/android/xml/StyleableXmlResourceValue.java @@ -126,7 +126,12 @@ public class StyleableXmlResourceValue implements XmlResourceValue { } else { // Make a reference to the attr. definition = - definition.startTag("attr").attribute("name").setTo(entry.getKey()).closeUnaryTag(); + definition + .startTag("attr") + .attribute("name") + .setTo(entry.getKey()) + .closeUnaryTag() + .addCharactersOf("\n"); } } definition.endTag().save(); |