package com.apollographql.apollo.internal.util; import com.apollographql.apollo.Logger; import com.apollographql.apollo.api.internal.Optional; import javax.annotation.Nonnull; import javax.annotation.Nullable; import static com.apollographql.apollo.api.internal.Utils.checkNotNull; public final class ApolloLogger { private final Optional<Logger> logger; public ApolloLogger(@Nonnull Optional<Logger> logger) { this.logger = checkNotNull(logger, "logger == null"); } public void d(@Nonnull String message, Object... args) { log(Logger.DEBUG, message, null, args); } public void d(@Nullable Throwable t, @Nonnull String message, Object... args) { log(Logger.DEBUG, message, t, args); } public void w(@Nonnull String message, Object... args) { log(Logger.WARN, message, null, args); } public void w(@Nullable Throwable t, @Nonnull String message, Object... args) { log(Logger.WARN, message, t, args); } public void e(@Nonnull String message, Object... args) { log(Logger.ERROR, message, null, args); } public void e(@Nullable Throwable t, @Nonnull String message, Object... args) { log(Logger.ERROR, message, t, args); } private void log(int priority, @Nonnull String message, @Nullable Throwable t, Object... args) { if (logger.isPresent()) { logger.get().log(priority, message, Optional.fromNullable(t), args); } } }