public void processParamType()

in plugins/core-plugin/src/main/java/com/google/cloud/teleport/plugin/model/ImageSpecParameter.java [154:628]


  public void processParamType(Annotation parameterAnnotation) {
    switch (parameterAnnotation.annotationType().getSimpleName()) {
      case "Text":
        TemplateParameter.Text simpleTextParam = (TemplateParameter.Text) parameterAnnotation;
        if (!simpleTextParam.name().isEmpty()) {
          this.setName(simpleTextParam.name());
        }
        processDescriptions(
            simpleTextParam.groupName(),
            simpleTextParam.description(),
            simpleTextParam.helpText(),
            simpleTextParam.example());
        this.setParentName(simpleTextParam.parentName());
        this.setParentTriggerValues(simpleTextParam.parentTriggerValues());
        this.setOptional(simpleTextParam.optional());
        this.setHiddenUi(simpleTextParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.TEXT);
        break;
      case "JavascriptUdfFile":
        TemplateParameter.JavascriptUdfFile javascriptUdfFileParam =
            (TemplateParameter.JavascriptUdfFile) parameterAnnotation;
        if (!javascriptUdfFileParam.name().isEmpty()) {
          this.setName(javascriptUdfFileParam.name());
        }
        processDescriptions(
            javascriptUdfFileParam.groupName(),
            javascriptUdfFileParam.description(),
            javascriptUdfFileParam.helpText(),
            javascriptUdfFileParam.example());
        this.setParentName(javascriptUdfFileParam.parentName());
        this.setParentTriggerValues(javascriptUdfFileParam.parentTriggerValues());
        this.setOptional(javascriptUdfFileParam.optional());
        this.setHiddenUi(javascriptUdfFileParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.JAVASCRIPT_UDF_FILE);
        break;
      case "GcsReadFile":
        TemplateParameter.GcsReadFile gcsReadFileParam =
            (TemplateParameter.GcsReadFile) parameterAnnotation;
        if (!gcsReadFileParam.name().isEmpty()) {
          this.setName(gcsReadFileParam.name());
        }
        processDescriptions(
            gcsReadFileParam.groupName(),
            gcsReadFileParam.description(),
            gcsReadFileParam.helpText(),
            gcsReadFileParam.example());
        this.setParentName(gcsReadFileParam.parentName());
        this.setParentTriggerValues(gcsReadFileParam.parentTriggerValues());
        this.setOptional(gcsReadFileParam.optional());
        this.setHiddenUi(gcsReadFileParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.GCS_READ_FILE);
        break;
      case "GcsReadFolder":
        TemplateParameter.GcsReadFolder gcsReadFolderParam =
            (TemplateParameter.GcsReadFolder) parameterAnnotation;
        if (!gcsReadFolderParam.name().isEmpty()) {
          this.setName(gcsReadFolderParam.name());
        }
        processDescriptions(
            gcsReadFolderParam.groupName(),
            gcsReadFolderParam.description(),
            gcsReadFolderParam.helpText(),
            gcsReadFolderParam.example());
        this.setParentName(gcsReadFolderParam.parentName());
        this.setParentTriggerValues(gcsReadFolderParam.parentTriggerValues());
        this.setOptional(gcsReadFolderParam.optional());
        this.setHiddenUi(gcsReadFolderParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.GCS_READ_FOLDER);
        break;
      case "GcsReadBucket":
        TemplateParameter.GcsReadBucket gcsReadBucketParam =
            (TemplateParameter.GcsReadBucket) parameterAnnotation;
        if (!gcsReadBucketParam.name().isEmpty()) {
          this.setName(gcsReadBucketParam.name());
        }
        processDescriptions(
            gcsReadBucketParam.groupName(),
            gcsReadBucketParam.description(),
            gcsReadBucketParam.helpText(),
            gcsReadBucketParam.example());
        this.setParentName(gcsReadBucketParam.parentName());
        this.setParentTriggerValues(gcsReadBucketParam.parentTriggerValues());
        this.setOptional(gcsReadBucketParam.optional());
        this.setHiddenUi(gcsReadBucketParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.GCS_READ_BUCKET);
        break;
      case "GcsWriteFile":
        TemplateParameter.GcsWriteFile gcsWriteFileParam =
            (TemplateParameter.GcsWriteFile) parameterAnnotation;
        if (!gcsWriteFileParam.name().isEmpty()) {
          this.setName(gcsWriteFileParam.name());
        }
        processDescriptions(
            gcsWriteFileParam.groupName(),
            gcsWriteFileParam.description(),
            gcsWriteFileParam.helpText(),
            gcsWriteFileParam.example());
        this.setParentName(gcsWriteFileParam.parentName());
        this.setParentTriggerValues(gcsWriteFileParam.parentTriggerValues());
        this.setOptional(gcsWriteFileParam.optional());
        this.setHiddenUi(gcsWriteFileParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.GCS_WRITE_FILE);
        break;
      case "GcsWriteFolder":
        TemplateParameter.GcsWriteFolder gcsWriteFolderParam =
            (TemplateParameter.GcsWriteFolder) parameterAnnotation;
        if (!gcsWriteFolderParam.name().isEmpty()) {
          this.setName(gcsWriteFolderParam.name());
        }
        processDescriptions(
            gcsWriteFolderParam.groupName(),
            gcsWriteFolderParam.description(),
            gcsWriteFolderParam.helpText(),
            gcsWriteFolderParam.example());
        this.setParentName(gcsWriteFolderParam.parentName());
        this.setParentTriggerValues(gcsWriteFolderParam.parentTriggerValues());
        this.setOptional(gcsWriteFolderParam.optional());
        this.setHiddenUi(gcsWriteFolderParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.GCS_WRITE_FOLDER);
        break;
      case "GcsWriteBucket":
        TemplateParameter.GcsWriteBucket gcsWriteBucketParam =
            (TemplateParameter.GcsWriteBucket) parameterAnnotation;
        if (!gcsWriteBucketParam.name().isEmpty()) {
          this.setName(gcsWriteBucketParam.name());
        }
        processDescriptions(
            gcsWriteBucketParam.groupName(),
            gcsWriteBucketParam.description(),
            gcsWriteBucketParam.helpText(),
            gcsWriteBucketParam.example());
        this.setParentName(gcsWriteBucketParam.parentName());
        this.setParentTriggerValues(gcsWriteBucketParam.parentTriggerValues());
        this.setOptional(gcsWriteBucketParam.optional());
        this.setHiddenUi(gcsWriteBucketParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.GCS_WRITE_BUCKET);
        break;
      case "PubsubSubscription":
        TemplateParameter.PubsubSubscription pubsubSubscriptionParam =
            (TemplateParameter.PubsubSubscription) parameterAnnotation;
        if (!pubsubSubscriptionParam.name().isEmpty()) {
          this.setName(pubsubSubscriptionParam.name());
        }
        processDescriptions(
            pubsubSubscriptionParam.groupName(),
            pubsubSubscriptionParam.description(),
            pubsubSubscriptionParam.helpText(),
            pubsubSubscriptionParam.example());
        this.setParentName(pubsubSubscriptionParam.parentName());
        this.setParentTriggerValues(pubsubSubscriptionParam.parentTriggerValues());
        this.setOptional(pubsubSubscriptionParam.optional());
        this.setHiddenUi(pubsubSubscriptionParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.PUBSUB_SUBSCRIPTION);
        break;
      case "PubsubTopic":
        TemplateParameter.PubsubTopic pubsubTopicParam =
            (TemplateParameter.PubsubTopic) parameterAnnotation;
        if (!pubsubTopicParam.name().isEmpty()) {
          this.setName(pubsubTopicParam.name());
        }
        processDescriptions(
            pubsubTopicParam.groupName(),
            pubsubTopicParam.description(),
            pubsubTopicParam.helpText(),
            pubsubTopicParam.example());
        this.setParentName(pubsubTopicParam.parentName());
        this.setParentTriggerValues(pubsubTopicParam.parentTriggerValues());
        this.setOptional(pubsubTopicParam.optional());
        this.setHiddenUi(pubsubTopicParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.PUBSUB_TOPIC);
        break;
      case "Password":
        TemplateParameter.Password passwordParam = (TemplateParameter.Password) parameterAnnotation;
        if (!passwordParam.name().isEmpty()) {
          this.setName(passwordParam.name());
        }
        processDescriptions(
            passwordParam.groupName(),
            passwordParam.description(),
            passwordParam.helpText(),
            passwordParam.example());
        this.setParentName(passwordParam.parentName());
        this.setParentTriggerValues(passwordParam.parentTriggerValues());
        this.setOptional(passwordParam.optional());
        this.setHiddenUi(passwordParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.TEXT);
        break;
      case "ProjectId":
        TemplateParameter.ProjectId projectIdParam =
            (TemplateParameter.ProjectId) parameterAnnotation;
        if (!projectIdParam.name().isEmpty()) {
          this.setName(projectIdParam.name());
        }
        processDescriptions(
            projectIdParam.groupName(),
            projectIdParam.description(),
            projectIdParam.helpText(),
            projectIdParam.example());
        this.setParentName(projectIdParam.parentName());
        this.setParentTriggerValues(projectIdParam.parentTriggerValues());
        this.setOptional(projectIdParam.optional());
        this.setHiddenUi(projectIdParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.TEXT);
        break;
      case "MachineType":
        TemplateParameter.MachineType machineTypeParam =
            (TemplateParameter.MachineType) parameterAnnotation;
        if (!machineTypeParam.name().isEmpty()) {
          this.setName(machineTypeParam.name());
        }
        processDescriptions(
            machineTypeParam.groupName(),
            machineTypeParam.description(),
            machineTypeParam.helpText(),
            machineTypeParam.example());
        this.setParentName(machineTypeParam.parentName());
        this.setParentTriggerValues(machineTypeParam.parentTriggerValues());
        this.setOptional(machineTypeParam.optional());
        this.setHiddenUi(machineTypeParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.MACHINE_TYPE);
        break;
      case "ServiceAccount":
        TemplateParameter.ServiceAccount serviceAccountParam =
            (TemplateParameter.ServiceAccount) parameterAnnotation;
        if (!serviceAccountParam.name().isEmpty()) {
          this.setName(serviceAccountParam.name());
        }
        processDescriptions(
            serviceAccountParam.groupName(),
            serviceAccountParam.description(),
            serviceAccountParam.helpText(),
            serviceAccountParam.example());
        this.setParentName(serviceAccountParam.parentName());
        this.setParentTriggerValues(serviceAccountParam.parentTriggerValues());
        this.setOptional(serviceAccountParam.optional());
        this.setHiddenUi(serviceAccountParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.SERVICE_ACCOUNT);
        break;
      case "WorkerRegion":
        TemplateParameter.WorkerRegion workerRegionParam =
            (TemplateParameter.WorkerRegion) parameterAnnotation;
        if (!workerRegionParam.name().isEmpty()) {
          this.setName(workerRegionParam.name());
        }
        processDescriptions(
            workerRegionParam.groupName(),
            workerRegionParam.description(),
            workerRegionParam.helpText(),
            workerRegionParam.example());
        this.setParentName(workerRegionParam.parentName());
        this.setParentTriggerValues(workerRegionParam.parentTriggerValues());
        this.setOptional(workerRegionParam.optional());
        this.setHiddenUi(workerRegionParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.WORKER_REGION);
        break;
      case "WorkerZone":
        TemplateParameter.WorkerZone workerZoneParam =
            (TemplateParameter.WorkerZone) parameterAnnotation;
        if (!workerZoneParam.name().isEmpty()) {
          this.setName(workerZoneParam.name());
        }
        processDescriptions(
            workerZoneParam.groupName(),
            workerZoneParam.description(),
            workerZoneParam.helpText(),
            workerZoneParam.example());
        this.setParentName(workerZoneParam.parentName());
        this.setParentTriggerValues(workerZoneParam.parentTriggerValues());
        this.setOptional(workerZoneParam.optional());
        this.setHiddenUi(workerZoneParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.WORKER_ZONE);
        break;
      case "Boolean":
        TemplateParameter.Boolean booleanParam = (TemplateParameter.Boolean) parameterAnnotation;
        if (!booleanParam.name().isEmpty()) {
          this.setName(booleanParam.name());
        }
        processDescriptions(
            booleanParam.groupName(),
            booleanParam.description(),
            booleanParam.helpText(),
            booleanParam.example());
        this.setParentName(booleanParam.parentName());
        this.setParentTriggerValues(booleanParam.parentTriggerValues());
        this.setOptional(booleanParam.optional());
        this.setHiddenUi(booleanParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.BOOLEAN);
        break;
      case "Integer":
        TemplateParameter.Integer integerParam = (TemplateParameter.Integer) parameterAnnotation;
        if (!integerParam.name().isEmpty()) {
          this.setName(integerParam.name());
        }
        processDescriptions(
            integerParam.groupName(),
            integerParam.description(),
            integerParam.helpText(),
            integerParam.example());
        this.setParentName(integerParam.parentName());
        this.setParentTriggerValues(integerParam.parentTriggerValues());
        this.setOptional(integerParam.optional());
        this.setHiddenUi(integerParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.NUMBER);
        break;
      case "Long":
        TemplateParameter.Long longParam = (TemplateParameter.Long) parameterAnnotation;
        if (!longParam.name().isEmpty()) {
          this.setName(longParam.name());
        }
        processDescriptions(
            longParam.groupName(),
            longParam.description(),
            longParam.helpText(),
            longParam.example());
        this.setParentName(longParam.parentName());
        this.setParentTriggerValues(longParam.parentTriggerValues());
        this.setOptional(longParam.optional());
        this.setHiddenUi(longParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.NUMBER);
        break;
      case "Float":
        TemplateParameter.Float floatParam = (TemplateParameter.Float) parameterAnnotation;
        if (!floatParam.name().isEmpty()) {
          this.setName(floatParam.name());
        }
        processDescriptions(
            floatParam.groupName(),
            floatParam.description(),
            floatParam.helpText(),
            floatParam.example());
        this.setParentName(floatParam.parentName());
        this.setParentTriggerValues(floatParam.parentTriggerValues());
        this.setOptional(floatParam.optional());
        this.setHiddenUi(floatParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.NUMBER);
        break;
      case "Double":
        TemplateParameter.Double doubleParam = (TemplateParameter.Double) parameterAnnotation;
        if (!doubleParam.name().isEmpty()) {
          this.setName(doubleParam.name());
        }
        processDescriptions(
            doubleParam.groupName(),
            doubleParam.description(),
            doubleParam.helpText(),
            doubleParam.example());
        this.setParentName(doubleParam.parentName());
        this.setParentTriggerValues(doubleParam.parentTriggerValues());
        this.setOptional(doubleParam.optional());
        this.setHiddenUi(doubleParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.NUMBER);
        break;
      case "Enum":
        TemplateParameter.Enum enumParam = (TemplateParameter.Enum) parameterAnnotation;
        if (!enumParam.name().isEmpty()) {
          this.setName(enumParam.name());
        }
        processDescriptions(
            enumParam.groupName(),
            enumParam.description(),
            enumParam.helpText(),
            enumParam.example());
        this.setParentName(enumParam.parentName());
        this.setParentTriggerValues(enumParam.parentTriggerValues());
        this.setOptional(enumParam.optional());
        this.setHiddenUi(enumParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.ENUM);
        this.setEnumOptions(buildEnumOptions(enumParam));
        break;
      case "DateTime":
        TemplateParameter.DateTime dateTimeParam = (TemplateParameter.DateTime) parameterAnnotation;
        if (!dateTimeParam.name().isEmpty()) {
          this.setName(dateTimeParam.name());
        }
        processDescriptions(
            dateTimeParam.groupName(),
            dateTimeParam.description(),
            dateTimeParam.helpText(),
            dateTimeParam.example());
        this.setParentName(dateTimeParam.parentName());
        this.setParentTriggerValues(dateTimeParam.parentTriggerValues());
        this.setOptional(dateTimeParam.optional());
        this.setHiddenUi(dateTimeParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.TEXT);
        break;
      case "BigQueryTable":
        TemplateParameter.BigQueryTable bigQueryTableParam =
            (TemplateParameter.BigQueryTable) parameterAnnotation;
        if (!bigQueryTableParam.name().isEmpty()) {
          this.setName(bigQueryTableParam.name());
        }
        processDescriptions(
            bigQueryTableParam.groupName(),
            bigQueryTableParam.description(),
            bigQueryTableParam.helpText(),
            bigQueryTableParam.example());
        this.setParentName(bigQueryTableParam.parentName());
        this.setParentTriggerValues(bigQueryTableParam.parentTriggerValues());
        this.setOptional(bigQueryTableParam.optional());
        this.setHiddenUi(bigQueryTableParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.BIGQUERY_TABLE);
        break;
      case "KmsEncryptionKey":
        TemplateParameter.KmsEncryptionKey kmsEncryptionKeyParam =
            (TemplateParameter.KmsEncryptionKey) parameterAnnotation;
        if (!kmsEncryptionKeyParam.name().isEmpty()) {
          this.setName(kmsEncryptionKeyParam.name());
        }
        processDescriptions(
            kmsEncryptionKeyParam.groupName(),
            kmsEncryptionKeyParam.description(),
            kmsEncryptionKeyParam.helpText(),
            kmsEncryptionKeyParam.example());
        this.setParentName(kmsEncryptionKeyParam.parentName());
        this.setParentTriggerValues(kmsEncryptionKeyParam.parentTriggerValues());
        this.setOptional(kmsEncryptionKeyParam.optional());
        this.setHiddenUi(kmsEncryptionKeyParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.TEXT);
        break;
      case "Duration":
        TemplateParameter.Duration durationParam = (TemplateParameter.Duration) parameterAnnotation;
        if (!durationParam.name().isEmpty()) {
          this.setName(durationParam.name());
        }
        processDescriptions(
            durationParam.groupName(),
            durationParam.description(),
            durationParam.helpText(),
            durationParam.example());
        this.setParentName(durationParam.parentName());
        this.setParentTriggerValues(durationParam.parentTriggerValues());
        this.setOptional(durationParam.optional());
        this.setHiddenUi(durationParam.hiddenUi());
        this.setParamType(ImageSpecParameterType.TEXT);
        break;
      case "KafkaReadTopic":
        TemplateParameter.KafkaReadTopic kafkaReadTopic =
            (TemplateParameter.KafkaReadTopic) parameterAnnotation;
        if (!kafkaReadTopic.name().isEmpty()) {
          this.setName(kafkaReadTopic.name());
        }
        processDescriptions(
            kafkaReadTopic.groupName(),
            kafkaReadTopic.description(),
            kafkaReadTopic.helpText(),
            kafkaReadTopic.example());
        this.setParentName(kafkaReadTopic.parentName());
        this.setParentTriggerValues(kafkaReadTopic.parentTriggerValues());
        this.setOptional(kafkaReadTopic.optional());
        this.setHiddenUi(kafkaReadTopic.hiddenUi());
        this.setParamType(ImageSpecParameterType.KAFKA_READ_TOPIC);
        break;

      case "KafkaWriteTopic":
        TemplateParameter.KafkaWriteTopic kafkaWriteTopic =
            (TemplateParameter.KafkaWriteTopic) parameterAnnotation;
        if (!kafkaWriteTopic.name().isEmpty()) {
          this.setName(kafkaWriteTopic.name());
        }
        processDescriptions(
            kafkaWriteTopic.groupName(),
            kafkaWriteTopic.description(),
            kafkaWriteTopic.helpText(),
            kafkaWriteTopic.example());
        this.setParentName(kafkaWriteTopic.parentName());
        this.setParentTriggerValues(kafkaWriteTopic.parentTriggerValues());
        this.setOptional(kafkaWriteTopic.optional());
        this.setHiddenUi(kafkaWriteTopic.hiddenUi());
        this.setParamType(ImageSpecParameterType.KAFKA_WRITE_TOPIC);
        break;
      default:
        throw new IllegalArgumentException("Invalid type " + parameterAnnotation);
    }
    this.setRegexes(MetadataUtils.getRegexes(parameterAnnotation));
  }