1
0
mirror of https://github.com/directorz/mailfull-go.git synced 2025-12-17 09:37:02 +00:00

implement setters and change to call it from constructor

This commit is contained in:
teru
2016-08-05 18:26:54 +09:00
parent c7d3c62281
commit 215df0c819
3 changed files with 89 additions and 30 deletions

View File

@@ -22,26 +22,46 @@ func (p AliasDomainSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
// NewAliasDomain creates a new AliasDomain instance.
func NewAliasDomain(name, target string) (*AliasDomain, error) {
if !validAliasDomainName(name) {
return nil, ErrInvalidAliasDomainName
}
if !validAliasDomainTarget(target) {
return nil, ErrInvalidAliasDomainTarget
ad := &AliasDomain{}
if err := ad.setName(name); err != nil {
return nil, err
}
ad := &AliasDomain{
name: name,
target: target,
if err := ad.SetTarget(target); err != nil {
return nil, err
}
return ad, nil
}
// setName sets the name.
func (ad *AliasDomain) setName(name string) error {
if !validAliasDomainName(name) {
return ErrInvalidAliasDomainName
}
ad.name = name
return nil
}
// Name returns name.
func (ad *AliasDomain) Name() string {
return ad.name
}
// SetTarget sets the target.
func (ad *AliasDomain) SetTarget(target string) error {
if !validAliasDomainTarget(target) {
return ErrInvalidAliasDomainTarget
}
ad.target = target
return nil
}
// Target returns target.
func (ad *AliasDomain) Target() string {
return ad.target