| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- /*
- * Copyright (c) 2000-2018, 达梦数据库有限公司.
- * All rights reserved.
- */
- package dm
- import (
- "strconv"
- "strings"
- )
- type Properties struct {
- innerProps map[string]string
- }
- func NewProperties() *Properties {
- p := Properties{
- innerProps: make(map[string]string, 50),
- }
- return &p
- }
- func (g *Properties) SetProperties(p *Properties) {
- if p == nil {
- return
- }
- for k, v := range p.innerProps {
- g.Set(strings.ToLower(k), v)
- }
- }
- func (g *Properties) Len() int {
- return len(g.innerProps)
- }
- func (g *Properties) IsNil() bool {
- return g == nil || g.innerProps == nil
- }
- func (g *Properties) GetString(key, def string) string {
- v, ok := g.innerProps[strings.ToLower(key)]
- if !ok || v == "" {
- return def
- }
- return v
- }
- func (g *Properties) GetInt(key string, def int, min int, max int) int {
- value, ok := g.innerProps[strings.ToLower(key)]
- if !ok || value == "" {
- return def
- }
- i, err := strconv.Atoi(value)
- if err != nil {
- return def
- }
- if i > max || i < min {
- return def
- }
- return i
- }
- func (g *Properties) GetBool(key string, def bool) bool {
- value, ok := g.innerProps[strings.ToLower(key)]
- if !ok || value == "" {
- return def
- }
- b, err := strconv.ParseBool(value)
- if err != nil {
- return def
- }
- return b
- }
- func (g *Properties) GetTrimString(key string, def string) string {
- value, ok := g.innerProps[strings.ToLower(key)]
- if !ok || value == "" {
- return def
- } else {
- return strings.TrimSpace(value)
- }
- }
- func (g *Properties) GetStringArray(key string, def []string) []string {
- value, ok := g.innerProps[strings.ToLower(key)]
- if ok || value != "" {
- array := strings.Split(value, ",")
- if len(array) > 0 {
- return array
- }
- }
- return def
- }
- //func (g *Properties) GetBool(key string) bool {
- // i, _ := strconv.ParseBool(g.innerProps[key])
- // return i
- //}
- func (g *Properties) Set(key, value string) {
- g.innerProps[strings.ToLower(key)] = value
- }
- func (g *Properties) SetIfNotExist(key, value string) {
- if _, ok := g.innerProps[strings.ToLower(key)]; !ok {
- g.Set(key, value)
- }
- }
- // 如果p有g没有的键值对,添加进g中
- func (g *Properties) SetDiffProperties(p *Properties) {
- if p == nil {
- return
- }
- for k, v := range p.innerProps {
- if _, ok := g.innerProps[strings.ToLower(k)]; !ok {
- g.innerProps[strings.ToLower(k)] = v
- }
- }
- }
|