AutoValue: QueryMap Extension

AutoValue extension to add toQueryMap() for Retrofit.

License

License

Categories

Categories

Auto Application Layer Libs Code Generators
GroupId

GroupId

com.oguzbabaoglu
ArtifactId

ArtifactId

auto-value-querymap
Last Version

Last Version

1.0
Release Date

Release Date

Type

Type

jar
Description

Description

AutoValue: QueryMap Extension
AutoValue extension to add toQueryMap() for Retrofit.
Project URL

Project URL

https://github.com/oguzbabaoglu/auto-value-querymap/
Source Code Management

Source Code Management

https://github.com/oguzbabaoglu/auto-value-querymap/

Download auto-value-querymap

How to add to project

<!-- https://jarcasting.com/artifacts/com.oguzbabaoglu/auto-value-querymap/ -->
<dependency>
    <groupId>com.oguzbabaoglu</groupId>
    <artifactId>auto-value-querymap</artifactId>
    <version>1.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.oguzbabaoglu/auto-value-querymap/
implementation 'com.oguzbabaoglu:auto-value-querymap:1.0'
// https://jarcasting.com/artifacts/com.oguzbabaoglu/auto-value-querymap/
implementation ("com.oguzbabaoglu:auto-value-querymap:1.0")
'com.oguzbabaoglu:auto-value-querymap:jar:1.0'
<dependency org="com.oguzbabaoglu" name="auto-value-querymap" rev="1.0">
  <artifact name="auto-value-querymap" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.oguzbabaoglu', module='auto-value-querymap', version='1.0')
)
libraryDependencies += "com.oguzbabaoglu" % "auto-value-querymap" % "1.0"
[com.oguzbabaoglu/auto-value-querymap "1.0"]

Dependencies

compile (4)

Group / Artifact Type Version
com.squareup : javapoet jar 1.7.0
com.google.auto.value : auto-value jar 1.3-rc1
com.google.auto.service : auto-service jar 1.0-rc2
com.google.auto : auto-common jar 0.6

test (3)

Group / Artifact Type Version
junit : junit jar 4.12
com.google.truth : truth jar 0.27
com.google.testing.compile : compile-testing jar 0.9

Project Modules

There are no modules declared in this project.

AutoValue: QueryMap Extension

An extension for Google's AutoValue that implements a "toQueryMap" method for Retrofit's QueryMap.

Usage

Include auto-value-querymap in your project and add a public abstract Map<String, String> toQueryMap() method to your @AutoValue annotated class.

You can also annotate your properties using @Param to define an alternate key name in the QueryMap.

@AutoValue public abstract class Foo {
  abstract String bar();                  // Will be mapped as "bar":"<value of bar>"
  @Param("Bazoo") abstract String baz();  // Will be mapped as "Bazoo":"<value of baz>"

  // This method is what auto-value-querymap will implement.
  public abstract Map<String, String> toQueryMap();
  
  // Retrofit will convert this to "?bar=<value of bar>&Bazoo=<value of baz>"
}

Now build your project and auto-value-querymap will implement the method.

  • null values will not be added to the map (Not allowed by QueryMap)
  • all values will be converted to String using String.valueOf()
  • the map will preserve order of decleration of the fields

Download

Android

Add a Gradle dependency to the apt and provided configuration.

apt 'com.oguzbabaoglu:auto-value-querymap:1.0'
provided 'com.oguzbabaoglu:auto-value-querymap:1.0'

(Using the android-apt plugin)

Java

Add a Gradle dependency to the apt and compileOnly configuration.

apt 'com.oguzbabaoglu:auto-value-querymap:1.0'
compileOnly 'com.oguzbabaoglu:auto-value-querymap:1.0'

(Using the gradle-apt-plugin plugin)

Credit

Based on the existing auto-value-map extension by Cynny.

License

Copyright 2016 Oguz Babaoglu.

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.

Versions

Version
1.0