package to.rtc.rtc2jira.exporter.jira.mapping; import java.util.HashMap; import java.util.Map; import to.rtc.rtc2jira.exporter.jira.JiraExporter; import to.rtc.rtc2jira.exporter.jira.JiraRestAccess; import to.rtc.rtc2jira.exporter.jira.entities.Group; import com.sun.jersey.api.client.ClientResponse; public class TeamAreaHandler { public static final TeamAreaHandler INSTANCE; private Map<String, Group> alreadyExistingGroups; private JiraRestAccess access; static { INSTANCE = new TeamAreaHandler(JiraExporter.INSTANCE.getRestAccess()); } private TeamAreaHandler(JiraRestAccess access) { this.access = access; this.alreadyExistingGroups = new HashMap<String, Group>(); } private Group createGroup(String name) { Group group = new Group(); group.setName(name); ClientResponse get = access.get(group.getSelfPath()); if (get.getStatus() == 200) { group = get.getEntity(Group.class); } else { ClientResponse post = access.post(group.getPath(), group); if (post.getStatus() == 201) { group = post.getEntity(Group.class); } else { group = null; } } return group; } Group getByName(String groupName) { Group result = alreadyExistingGroups.get(groupName); if (result == null) { result = createGroup(groupName); alreadyExistingGroups.put(groupName, result); } return result; } }