github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/requirements/application.go (about)

     1  package requirements
     2  
     3  import (
     4  	"github.com/cloudfoundry/cli/cf/api/applications"
     5  	"github.com/cloudfoundry/cli/cf/models"
     6  	"github.com/cloudfoundry/cli/cf/terminal"
     7  )
     8  
     9  type ApplicationRequirement interface {
    10  	Requirement
    11  	GetApplication() models.Application
    12  }
    13  
    14  type applicationApiRequirement struct {
    15  	name        string
    16  	ui          terminal.UI
    17  	appRepo     applications.ApplicationRepository
    18  	application models.Application
    19  }
    20  
    21  func NewApplicationRequirement(name string, ui terminal.UI, aR applications.ApplicationRepository) *applicationApiRequirement {
    22  	req := &applicationApiRequirement{}
    23  	req.name = name
    24  	req.ui = ui
    25  	req.appRepo = aR
    26  	return req
    27  }
    28  
    29  func (req *applicationApiRequirement) Execute() (success bool) {
    30  	var apiErr error
    31  	req.application, apiErr = req.appRepo.Read(req.name)
    32  
    33  	if apiErr != nil {
    34  		req.ui.Failed(apiErr.Error())
    35  		return false
    36  	}
    37  
    38  	return true
    39  }
    40  
    41  func (req *applicationApiRequirement) GetApplication() models.Application {
    42  	return req.application
    43  }