package org.wikipedia.dataclient.restbase; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import org.wikipedia.json.annotations.Required; import org.wikipedia.util.log.L; import java.util.Map; public class RbDefinition { @Required @NonNull private Map<String, Usage[]> usagesByLang; @SuppressWarnings("unused") @Nullable private RbServiceError error; public RbDefinition(@NonNull Map<String, RbDefinition.Usage[]> usages) { usagesByLang = usages; } @Nullable public Usage[] getUsagesForLang(String langCode) { return usagesByLang.get(langCode); } public boolean hasError() { return error != null; } public void logError(String message) { if (error != null) { message += ": " + error.toString(); } L.e(message); } public static class Usage { @Required @NonNull private String partOfSpeech; @Required @NonNull private Definition[] definitions; public Usage(@NonNull String partOfSpeech, @NonNull Definition[] definitions) { this.partOfSpeech = partOfSpeech; this.definitions = definitions; } @NonNull public String getPartOfSpeech() { return partOfSpeech; } @NonNull public Definition[] getDefinitions() { return definitions; } } public static class Definition { @Required @NonNull private String definition; @Nullable private String[] examples; public Definition(@NonNull String definition, @Nullable String[] examples) { this.definition = definition; this.examples = examples; } @NonNull public String getDefinition() { return definition; } @Nullable public String[] getExamples() { return examples; } } }