This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| interface TradierApi { | |
| @Enveloped | |
| @GET("markets/lookup") | |
| fun lookup(@Query("q") symbol: String): Single<Securities> | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Complements @Enveloped by performing custom deserialization | |
| * for a response that is wrapped in a JSON Object. | |
| */ | |
| internal class EnvelopeFactory : JsonAdapter.Factory { | |
| companion object { | |
| val INSTANCE = EnvelopeFactory() | |
| } | |
| override fun create( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Indicates an endpoint wraps a response in a JSON Object. | |
| * When deserializing the response we should only return | |
| * what's inside the outer most object. | |
| */ | |
| @Retention(RUNTIME) | |
| @JsonQualifier | |
| @Target(FUNCTION, CLASS) | |
| internal annotation class Enveloped |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "securities":{ | |
| "security":[ | |
| { | |
| "symbol":"PHYS", | |
| "exchange":"Q", | |
| "type":"stock", | |
| "description":"Sprott Physical Gold Trust ETV" | |
| } | |
| ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| apply plugin: ‘com.android.application’ | |
| dependencies { | |
| implementation deps.support.appcompat | |
| implementation deps.retrofit.core | |
| implementation deps.retrofit.adapter.rxjava2 | |
| implementation deps.retrofit.converter.moshi | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def versions = [ retrofit: ‘2.4.0', support: '27.1.1'] | |
| def retrofit = [ | |
| adapter: [ rxjava2: "com.squareup.retrofit2:adapter-rxjava2:${versions.retrofit}" ], | |
| converter: [ moshi: "com.squareup.retrofit2:converter-moshi:${versions.retrofit}" ], | |
| core: "com.squareup.retrofit2:retrofit:${versions.retrofit}" | |
| ] | |
| def support = [ | |
| appcompat: "com.android.support:appcompat-v7:${versions.support}", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public final class RaveValidatorFactory_Generated_Validator extends BaseValidator { | |
| RaveValidatorFactory_Generated_Validator() { | |
| addSupportedClass(MyModel.class); | |
| registerSelf(); | |
| } | |
| @Override | |
| protected void validateAs(@NonNull Object object, @NonNull Class<?> clazz, @NonNull ExclusionStrategy exclusionStrategy) throws InvalidModelException { | |
| if (!clazz.isInstance(object)) { | |
| throw new IllegalArgumentException(object.getClass().getCanonicalName() + "is not of type" + clazz.getCanonicalName()); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * A factory class capable of creating a validator whose implementation generated at annotation processing time. | |
| */ | |
| public final class RaveValidatorFactory implements ValidatorFactory { | |
| @NonNull | |
| @Override | |
| public BaseValidator generateValidator() { | |
| return new RaveValidatorFactory_Generated_Validator(); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class UsingRave { | |
| public static void main(String[] args) { | |
| MyModel myModel = new MyModel(“Validate me please!”); | |
| Rave.validate(myModel); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @Validated(factory = RaveValidatorFactory.class) | |
| public class MyModel { | |
| @NonNull private String someString; | |
| public MyModel(@NonNull String someString) { | |
| this.someString = someString; | |
| } | |
| @NonNull |