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 }