package lintpack

import (
	"log"
	"strings"
)

type parameters map[string]interface{}

func (p parameters) Int(key string, defaultValue int) int {
	k := strings.ToLower(key)
	if value, ok := p[k]; ok {
		if value, ok := value.(int); ok {
			return value
		}
		log.Printf("incorrect value for `%s`, want int", key)
	}
	return defaultValue
}

func (p parameters) String(key, defaultValue string) string {
	k := strings.ToLower(key)
	if value, ok := p[k]; ok {
		if value, ok := value.(string); ok {
			return value
		}
		log.Printf("incorrect value for `%s`, want int", key)
	}
	return defaultValue
}

func (p parameters) Bool(key string, defaultValue bool) bool {
	k := strings.ToLower(key)
	if value, ok := p[k]; ok {
		if value, ok := value.(bool); ok {
			return value
		}
		log.Printf("incorrect value for `%s`, want bool", key)
	}
	return defaultValue
}