/** * Convert the specified ProjectComponent to a MutableProjectComponent object and sets its project ID with the given * value. * * @param value ProjectComponent to be converted into a MutableProjectComponent. * @return new instance of MutableProjectComponent with same values as given in the parameter object and with * project ID set */ protected MutableProjectComponent convertToMutableProjectComponent(ProjectComponent value) { return new MutableProjectComponent(value.getId(), value.getName(), value.getDescription(), value.getLead(), value.getAssigneeType(), value.getProjectId()); }
public GenericValue convertToGenericValue(ProjectComponent projectComponent) { if (projectComponent == null) { return null; } return projectComponent.getGenericValue(); }
@Internal public AbstractProjectComponentEvent(ProjectComponent projectComponent) { this.id = projectComponent.getId(); this.assigneeType = projectComponent.getAssigneeType(); this.projectComponent = projectComponent; }
return -1; Long projectId1 = projectComponent1.getProjectId(); Long projectId2 = projectComponent2.getProjectId(); String componentName1 = projectComponent1.getName(); String componentName2 = projectComponent2.getName();
public static RemoteComponent[] convertComponentsToRemoteObject(Collection components) { RemoteComponent[] result = new RemoteComponent[components.size()]; int count = 0; for (Iterator iterator = components.iterator(); iterator.hasNext();) { ProjectComponent component = (ProjectComponent) iterator.next(); result[count++] = new RemoteComponent(component.getId().toString(), component.getName()); } return result; }
@Override public Long get(final ProjectComponent input) { return input.getId(); } };
if (!component.getProjectId().equals(project.getId())) sb = new StringBuilder(component.getName()).append("(").append(component.getId()).append(")"); sb.append(", ").append(component.getName()).append("(").append(component.getId()).append(")");
private static ComponentBean shortComponent(final ProjectComponent component, final JiraBaseUrls jiraBaseUrls) { final ComponentBean bean = new ComponentBean(); bean.self = UriBuilder.fromPath(jiraBaseUrls.restApi2BaseUrl()).path(ComponentResource.class).path(component.getId().toString()).build(); bean.id = component.getId().toString(); bean.description = component.getDescription(); bean.name = component.getName(); return bean; }
@Override public String get(ProjectComponent component) { return component.getName(); } }));
private List<ChangedValue> buildChangedValues(final ProjectComponent oldComponent, final ProjectComponent component) { final ChangedValuesBuilder changedValues = new ChangedValuesBuilder(); changedValues.addIfDifferent("common.words.name", oldComponent == null ? null : oldComponent.getName(), component.getName()); changedValues.addIfDifferent("common.concepts.description", oldComponent == null ? null : oldComponent.getDescription(), component.getDescription()); changedValues.addIfDifferent("admin.projects.component.lead", oldComponent == null ? null : (oldComponent.getComponentLead() == null ? null : oldComponent.getComponentLead().getUsername()), component.getComponentLead() == null ? null : component.getComponentLead().getUsername()); changedValues.addIfDifferent("admin.projects.default.assignee", oldComponent == null ? null : pre(oldComponent.getAssigneeType()), pre(component.getAssigneeType())); return changedValues.build(); }
private static void populateAssignee(ComponentBean bean, ProjectComponent component, String projectLeadUserKey, long projectAssigneeType, JiraBaseUrls jiraBaseUrls, UserManager userManager, PermissionManager permissionManager, ProjectManager projectManager, JiraAvatarSupport jiraAvatarSupport) switch ((int) component.getAssigneeType()) configuredAssigneeName = component.getLead(); break; long realAssigneeType = ComponentUtils.getAssigneeType(component.getGenericValue(), component.getAssigneeType()); String realAssigneeName = null; switch ((int) realAssigneeType) realAssigneeName = component.getLead(); break; bean.assigneeType = AssigneeType.getAssigneeType(component.getAssigneeType()); if (configuredAssigneeName != null) bean.realAssignee = user != null ? new UserBeanBuilder(jiraBaseUrls, jiraAvatarSupport).user(user).buildShort() : null; final Project project = projectManager.getProjectObj(component.getProjectId()); final boolean assignable = permissionManager.hasPermission(ASSIGNABLE_USER, project, user); bean.isAssigneeTypeValid = assignable; bean.isAssigneeTypeValid = ComponentAssigneeTypes.isAssigneeTypeValid(component.getGenericValue(), AssigneeType.UNASSIGNED.getId());
private Project getProjectOfComponent(ProjectComponent component) { return projectManager.getProjectObj(component.getProjectId()); }
long assigneeType = component.getAssigneeType(); if (assigneeType == AssigneeTypes.COMPONENT_LEAD) return getDefaultAssignee(project, component.getLead()); log.warn("Unable to assign default assignee for " + project.getKey() + " component '" + component.getName() + "'. " + ex.getMessage());
/** * Invalidate the caches for the given component/project. * * @param component component to be updated in cache */ private void updateCache(ProjectComponent component) { Long id = component.getId(); Long projectId = component.getProjectId(); componentIdToComponentMap.remove(id); projectIdToComponentsMap.remove(projectId); }
private StatsMarkup generateComponentsMarkup(final Object input, final String url, final I18nHelper i18n) { if (input != null) { final String name; final String desc; if (input instanceof ProjectComponent) { final ProjectComponent component = (ProjectComponent) input; name = component.getName(); desc = component.getDescription(); } else { final GenericValue gv = (GenericValue) input; name = gv.getString("name"); desc = gv.getString("description"); } final String html = makeMarkupForCellWithHtmlUnsafeDescriptionAndText(name, desc, url); final List<String> classes = CollectionBuilder.list("default_image", "default_image_component"); return new StatsMarkup(html, classes); } else { final String html = makeMarkupForCellWithHtmlSafeText(i18n.getText("gadget.filterstats.component.nocomponent"), url); return new StatsMarkup(html); } }
private ImmutableList<AssociatedItem> getAffectedUsers(ProjectComponent oldComponent, ProjectComponent component) long assigneeType = component.getAssigneeType(); if (oldComponent == null || (oldComponent != null && !Objects.equal(oldComponent.getLead(), component.getLead()))) componentLead = component.getComponentLead(); if (oldComponent == null || assigneeType != oldComponent.getAssigneeType()) defaultAssignee = component.getComponentLead();
public static ComponentBean fullComponent(ProjectComponent component, Project project, JiraBaseUrls jiraBaseUrls, UserManager userManager, AvatarService avatarService, PermissionManager permissionManager, ProjectManager projectManager, JiraAvatarSupport jiraAvatarSupport) { final ComponentBean bean = shortComponent(component, jiraBaseUrls); bean.description = component.getDescription(); bean.project = project.getKey(); bean.projectId = project.getId(); final long assigneeType = project.getAssigneeType() == null ? AssigneeTypes.PROJECT_LEAD : project.getAssigneeType(); final String lead = component.getLead(); final ApplicationUser user = userManager.getUserByKeyEvenWhenUnknown(lead); final ApplicationUser projectLeadUser = userManager.getUserByName(project.getLeadUserName()); final String projectLeadUserKey = (projectLeadUser == null) ? null :projectLeadUser.getKey(); if (user != null) { bean.lead = new UserBeanBuilder(jiraBaseUrls, jiraAvatarSupport).user(user).buildShort(); } populateAssignee(bean, component, projectLeadUserKey, assigneeType, jiraBaseUrls, userManager, permissionManager, projectManager, jiraAvatarSupport); return bean; }
@Override public boolean apply(@Nullable final ProjectComponent input) { return user.getKey().equals(input.getLead()); } }));
private void removeComponentLeadsForUser(final ApplicationUser user) { for (final ProjectComponent component : getComponentsUserLeads(user)) { MutableProjectComponent newProjectComponent = MutableProjectComponent.copy(component); newProjectComponent.setLead(null); if (component.getAssigneeType() == AssigneeTypes.COMPONENT_LEAD) { newProjectComponent.setAssigneeType(AssigneeTypes.PROJECT_DEFAULT); } try { componentManager.update(newProjectComponent); } catch (EntityNotFoundException e) { // We only just fetched this component, but perhaps someone deleted it concurrently ... } } }
@Override public RecordRequest apply(final List<ChangedValue> changedValues) { return new RecordRequest(AuditingCategory.PROJECTS, "jira.auditing.project.component.updated") .forObject(AssociatedItem.Type.PROJECT_COMPONENT, component.getName(), component.getId().toString()) .withAssociatedItems(getAssociatedItems(oldComponent, component)) .withChangedValues(changedValues); } });