/sitebricks-client/src/main/java/com/google/sitebricks/client/Web.java

http://github.com/dhanji/sitebricks · Java · 36 lines · 22 code · 11 blank · 3 comment · 0 complexity · 783a0167a44a9ef81f87221d09519937 MD5 · raw file

  1. package com.google.sitebricks.client;
  2. import com.google.inject.ImplementedBy;
  3. import com.google.inject.TypeLiteral;
  4. import java.util.Map;
  5. /**
  6. * @author Dhanji R. Prasanna (dhanji@gmail.com)
  7. */
  8. @ImplementedBy(CommonsWeb.class)
  9. public interface Web {
  10. enum Auth {
  11. BASIC, DIGEST
  12. }
  13. FormatBuilder clientOf(String url);
  14. FormatBuilder clientOf(String url, Map<String, String> headers);
  15. static interface FormatBuilder {
  16. <T> ReadAsBuilder<T> transports(Class<T> clazz);
  17. <T> ReadAsBuilder<T> transports(TypeLiteral<T> clazz);
  18. <T> WebClient<T> transportsText();
  19. FormatBuilder auth(Auth auth, String username, String password);
  20. FormatBuilder auth(Auth auth, String username, String password, boolean usePreemptiveAuth);
  21. }
  22. static interface ReadAsBuilder<T> {
  23. WebClient<T> over(Class<? extends Transport> clazz);
  24. }
  25. }