Hacker News new | ask | show | jobs
by nostrademons 3890 days ago
Somehow this feels like I'm writing C code but am unable to take a pointer to anything but the top-level object.
2 comments

In Java:

    Alphabet.getGoogle().use(Alphabet.getGoogle().getGooglePlus().
        getCommentFactory(), Alphabet.getGoogle().getYouTube().
        getVideos(com.alphabet.google.youtube.RED))
In python:

    import alphabet.google as google
    google.apply(google.google_plus.comments,
        google.youtube.videos(google.youtube.RED))
Am i doing it right?

(edited for javaness!)

Almost, just change the getters to lowercase 'g'et and add a bunch of unnecessary Spring boilerplate on top of it all.
Alphabet.subsidarySingletonFactoryFactory("Google").singletonSubsidary("YouTube")
In some ES6 JavaScript:

   import {google} from 'alphabet';
   let {google_plus, youtube} = google;
   google.apply(google_plus.comments, youtube.videos(youtube.RED));

    GOOGLE PLUS
    GOOGLE
    ALPHABET
It's much more beautiful if you use Android SDK:

  private boolean googleSubsidiaryConnectionSuccess = false;
  private boolean googleSubsidiaryConnectionInProgress = false;
  private GoogleSubsidiary googleSubsidiary = null;
  private GoogleVideoHostingManager googleVideoHostingService = null;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
     GoogleApiClient.Builder builder = new GoogleApiClient.Builder(this)
          .addSubsidiary(AlphabetSubsidiaries.GOOGLE_SUBSIDIARY);
     GoogleApiClient client = builder.build();
     client.connect();
     googleSubsidiaryConnectionInProgress = true;
  }
  
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data /* ignored */) {
     if (requestCode == GoogleSubsidiary.EXISTS_AND_IS_PROFITABLE) { // actual value is -11
          if (responseCode != Activity.RESULT_OK) {
              Log.w(TAG, "could not get subsidiary");
              googleSubsidiaryConnectionSuccess = false;
              if (!client.isConnecting()) {
                  Log.v(TAG, "calling googleApiClient.connect again");
                  client.connect();
              }
          }
      } else {
          Log.w(TAG, "Google subsidiary may be out of business. Not sure.");
          if (!googleSubsidiaryConnectionInProgress && !client.isConnecting()) {
               client.connect();
          }
      }
  }
  
  @Override
  public void onConnected(Bundle connectionHint) {
     googleSubsidiaryConnectionSuccess = true;
     googleSubsidiaryConnectionInProgress = false;
     GoogleSubsidiaryToken googleSubsidiaryToken = GoogleSubsidiaryUtil.getToken(activity, GOOGLE_SUBSIDIARY_TOKEN_REQUEST_SCOPE);
     try {
          googleSubsidiary = (GoogleSubsidiary)GoogleSubsidiaryUtil.getSubsidiaryObjectFromToken(googleSubsidiaryToken);
          googleVideoHostingService = (GoogleVideoHostingManager)googleSubsidiary.getService(GoogleSubsidiary.YOU_TUBE_SERVICE);
          if (googleVideoHostingService == null && !client.isConnecting()) {
               client.connect();
          }
     } catch (SubsidiaryTokenOutOfDateException ex) {
          googleSubsidiaryConnectionSuccess = false;
          if (!client.isConnecting()) {
               client.connect();
          }
     }
  }