add a postfix to a string v.getName() for a collection of strings in groovy for Jira scriptrunner

30 Views Asked by At

I would like to add a postfix called "-Inbox" to each of the elements of a collection of strings. Here is my current approach:

def matchedVersions = issue.getFixVersions().intersect(
        newIssueproject.getVersions(), 
        Version.NAME_COMPARATOR 
    )
def mynewVersions = new ArrayList <Version> ()

 for( Version v: matchedVersions){
           Version mynewVersion= ComponentAccessor.versionManager.createVersion(v.getName()+"-Inbox", startDate, releaseDate, description, newIssueproject.id, scheduleAfterVersion, released)
           mynewVersions.add(mynewVersion)      
                
 }

Is there a simpler approach that I could use to avoid the loop, the action I am doing is repetitive and takes time and I would like to find a new approach. I just need to create a new varaible called mynewVersions which is identical to matchedVersions with the only difference being that the name of each version has the postfix "-Inbox" appended.

1

There are 1 best solutions below

0
injecteer On BEST ANSWER

Some plain groovy with List-operations and right-currying of a createVersion() method:

def versionCreator = ComponentAccessor.versionManager.&createVersion.rcurry( startDate, releaseDate, description, newIssueproject.id, scheduleAfterVersion, released )

def mynewVersions = issue.fixVersions.intersect( newIssueproject.versions, Version.NAME_COMPARATOR ).collect{ versionCreator it.name + '-Inbox' }