private Object getDefault()

in sdk/src/main/java/com/google/cloud/dataflow/sdk/options/ProxyInvocationHandler.java [262:299]


  private Object getDefault(PipelineOptions proxy, Method method) {
    for (Annotation annotation : method.getAnnotations()) {
      if (annotation instanceof Default.Class) {
        return ((Default.Class) annotation).value();
      } else if (annotation instanceof Default.String) {
        return ((Default.String) annotation).value();
      } else if (annotation instanceof Default.Boolean) {
        return ((Default.Boolean) annotation).value();
      } else if (annotation instanceof Default.Character) {
        return ((Default.Character) annotation).value();
      } else if (annotation instanceof Default.Byte) {
        return ((Default.Byte) annotation).value();
      } else if (annotation instanceof Default.Short) {
        return ((Default.Short) annotation).value();
      } else if (annotation instanceof Default.Integer) {
        return ((Default.Integer) annotation).value();
      } else if (annotation instanceof Default.Long) {
        return ((Default.Long) annotation).value();
      } else if (annotation instanceof Default.Float) {
        return ((Default.Float) annotation).value();
      } else if (annotation instanceof Default.Double) {
        return ((Default.Double) annotation).value();
      } else if (annotation instanceof Default.Enum) {
        return Enum.valueOf((Class<Enum>) method.getReturnType(),
            ((Default.Enum) annotation).value());
      } else if (annotation instanceof Default.InstanceFactory) {
        return InstanceBuilder.ofType(((Default.InstanceFactory) annotation).value())
            .build()
            .create(proxy);
      }
    }

    /*
     * We need to make sure that we return something appropriate for the return type. Thus we return
     * a default value as defined by the JLS.
     */
    return Defaults.defaultValue(method.getReturnType());
  }