blob: cf14600ef6c6e2e41523eef7784664148d9a7e15 [file]
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package internal
type Sdk string
const (
SDK_UNDEFINED Sdk = ""
SDK_GO Sdk = "go"
SDK_PYTHON Sdk = "python"
SDK_JAVA Sdk = "java"
SDK_SCIO Sdk = "scio"
)
func (s Sdk) String() string {
return string(s)
}
// get Title which is shown on the landing page
func (s Sdk) Title() string {
switch s {
case SDK_GO:
return "Go"
case SDK_JAVA:
return "Java"
case SDK_PYTHON:
return "Python"
case SDK_SCIO:
return "SCIO"
default:
panic("undefined/unknown SDK title")
}
}
// SDK type representation in datastore
func (s Sdk) StorageID() string {
switch s {
case SDK_GO:
return "SDK_GO"
case SDK_PYTHON:
return "SDK_PYTHON"
case SDK_JAVA:
return "SDK_JAVA"
case SDK_SCIO:
return "SDK_SCIO"
}
panic("undefined storage id for sdk")
}
// Parse sdk from string names, f.e. "java" -> Sdk.GO_JAVA
// Make allowance for the case if the Title is given, not Id
// Returns SDK_UNDEFINED on error.
func ParseSdk(s string) Sdk {
switch s {
case "go", "Go":
return SDK_GO
case "python", "Python":
return SDK_PYTHON
case "java", "Java":
return SDK_JAVA
case "scio", "SCIO":
return SDK_SCIO
default:
return SDK_UNDEFINED
}
}
func MakeSdkList() SdkList {
sdks := make([]SdkItem, 0, 3)
for _, sdk := range []Sdk{SDK_JAVA, SDK_PYTHON, SDK_GO} {
sdks = append(sdks, SdkItem{Id: sdk.String(), Title: sdk.Title()})
}
return SdkList{Sdks: sdks}
}