/* * Copyright 2013 Hewlett-Packard Development Company, L.P * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.hp.alm.ali.idea.services; import com.hp.alm.ali.idea.entity.EntityQuery; import com.hp.alm.ali.idea.model.Entity; import com.hp.alm.ali.idea.model.parser.EntityList; import com.intellij.openapi.project.Project; import java.util.List; public class TeamService extends AbstractCachingEntityService<String> { private EntityService entityService; public TeamService(Project project, EntityService entityService) { super(project); this.entityService = entityService; } public Entity getTeam(String teamName, int releaseId) { List<Entity> teams = getTeams(teamName); for(Entity team: teams) { if(team.getPropertyValue("release-id").equals(String.valueOf(releaseId))) { return team; } } return null; } public List<Entity> getTeams(String teamName) { return getValue(teamName); } public EntityList getMultipleTeams(List<String> teamNames) { // TODO: make single query (needs additional support in the caching service) EntityList entities = EntityList.empty(); for(String teamName: teamNames) { entities.addAll(getTeams(teamName)); } return entities; } @Override protected EntityList doGetValue(String teamName) { EntityQuery query = new EntityQuery("team"); query.addColumn("id", 1); query.addColumn("release-id", 1); query.addColumn("name", 1); query.setValue("name", "'" + teamName + "'"); query.setPropertyResolved("name", true); return entityService.query(query); } }