public List<CustomField> getCustomFields() throws Exception { return customFieldManager.getCustomFieldObjects(); }
@Override public Set<SearchableField> getAllSearchableFields() { final Set<SearchableField> fields = new LinkedHashSet<SearchableField>(searchableFields); //All custom fields are SearchableFields so we don't have to filter them. fields.addAll(getCustomFieldManager().getCustomFieldObjects()); return fields; }
/** * @return Map of <Long,null>, keyed by the ids of all available custom fields */ public Map constructValuelessCustomFieldIdMap() { Map cfMap = new HashMap(); List fields = customFieldManager.getCustomFieldObjects(); for (Iterator iterator = fields.iterator(); iterator.hasNext();) { CustomField cf = (CustomField) iterator.next(); cfMap.put(cf.getIdAsLong(), null); } return cfMap; }
public static CustomField getCustomField(CustomFieldManager customFieldManager, Class customFieldTypeClass) throws IllegalStateException { List<CustomField> customFieldObjects = customFieldManager.getCustomFieldObjects(); for (CustomField customField : customFieldObjects) { if (customFieldTypeClass.isAssignableFrom(customField.getCustomFieldType().getClass())) { return customField; } } throw new IllegalStateException("Could not locate custom field of type " + customFieldTypeClass.getName()); } }
private Map<String, Object> collectCustomFieldValues(CustomFieldManager customFieldManager) { ImmutableMap.Builder<String, Object> answerBuilder = ImmutableMap.builder(); for (CustomField customField : customFieldManager.getCustomFieldObjects(issue)) { Object value = customField.getValue(issue); if (value != null) { answerBuilder.put(customField.getId(), value); } } return answerBuilder.build(); }
/** * Create a list of all the custom fields we need to migrate. * * @return List of Custom fields to convert. */ private List<CustomField> getCustomFields() { /* * We use the manager here, even though that is basically bad practise in an Upgrade Task, * because the code to fiend the CustomFieldType is really deep and ugly and it would seem * wrong to copy and paste reams of it into this class. */ List<CustomField> selectCustomFields = new ArrayList<CustomField>(); List<CustomField> customFields = customFieldManager.getCustomFieldObjects(); for (CustomField customField : customFields) { CustomFieldType type = customField.getCustomFieldType(); if (type instanceof SelectCFType || type instanceof MultiSelectCFType) { selectCustomFields.add(customField); } } return selectCustomFields; }
private List<FieldLayoutItem> loadInitialFieldLayoutItems(final FieldLayout resultingLayout) { final List<FieldLayoutItem> fieldLayoutItems = new ArrayList<FieldLayoutItem>(defaultFieldLayoutItems.size()); addAll(fieldLayoutItems, transform(defaultFieldLayoutItems, new SetFieldLayoutAndManager(resultingLayout))); final List<CustomField> customFieldObjects = ComponentAccessor.getCustomFieldManager().getCustomFieldObjects(); for (CustomField customField : customFieldObjects) { fieldLayoutItems.add(mapCustomField(resultingLayout, customField)); } return fieldLayoutItems; }
/** * Returns the list of available fields with all custom fields irrespective of scope. Takes the given list of * fields, adds custom fields, then removes Unavailable fields. * * @param allFields all Fields * @return the list of available fields with all custom fields irrespective of scope. */ @SuppressWarnings("unchecked") private <T extends Field> Set<T> getAvailableFields(final Collection<T> allFields) { // Add custom fields that are relevant to the project and issue types final Set<T> availableFields = new HashSet<T>(allFields); availableFields.addAll((Collection<T>)getCustomFieldManager().getCustomFieldObjects()); availableFields.removeAll(getUnavailableFields()); return availableFields; }
@Override public void doUpgrade(final boolean setupMode) throws Exception { // Only perform a reindex if the instance has cascading fields List<CustomField> customFields = customFieldManager.getCustomFieldObjects(); for (CustomField customField : customFields) { if (customField.getCustomFieldType() instanceof CascadingSelectCFType) { log.info("A Reindex will be performed because at least 1 Cascade Select Custom Field is present"); getReindexRequestService().requestReindex(ReindexRequestType.DELAYED, EnumSet.of(AffectedIndex.ISSUE), EnumSet.noneOf(SharedEntityType.class)); } } log.info("No reindex will be performed."); }
private void validateAllCustomFields(final Issue issue, final ImmutableSet.Builder<String> builder) { // due to issue object being passed to create method as a plain Issue // we can't get the list of modified fields and have to iterate over all fields // but this is for create method so each fields has to be checked final List<CustomField> customFieldObjects = customFieldManagerLazyReference.get().getCustomFieldObjects(issue); for (final CustomField cf : customFieldObjects) { validateCustomField(issue, builder, cf); } }
/** * Returns a collection of target custom field objects. * @param targetIssueTypeId the id of the target issue type. * @return a collection of target custom field objects. */ protected Collection<CustomField> getTargetCustomFieldObjects(String targetIssueTypeId) { return getCustomFieldManager().getCustomFieldObjects(getTargetPid(), targetIssueTypeId); }
/** * Check if any JobSwitchCFType field is set for an issue * * @param issue the JIRA issue to check whether a JobSwitchCFType is set for * @return true if a JobSwitchCFType field is set, false otherwise */ private boolean isJobFieldSet(Issue issue) { CustomFieldManager customFieldManager = getCustomFieldManager(); for (Iterator iterator = customFieldManager.getCustomFieldObjects(issue).iterator(); iterator.hasNext();) { CustomField customField = (CustomField) iterator.next(); if (customField != null && customField.getCustomFieldType() instanceof JobSwitchCFType) { if (JobSwitchCFType.WITH_PERFORCE_JOB.equals(customField.getValue(issue))) { return true; } } } return false; }
private CustomField findDateCustomField(final String fieldName) { List<CustomField> customFieldObjects = customFieldManager.getCustomFieldObjects(issue.getProjectId(), issue.getIssueTypeId()); final CustomField customField; try { customField = Iterables.find(customFieldObjects, new Predicate<CustomField>() { @Override public boolean apply(@Nullable CustomField customField) { return customField.getName().equals(fieldName) && ((customField.getCustomFieldType() instanceof DateCFType) || (customField.getCustomFieldType() instanceof DateTimeCFType)); } }); } catch (NoSuchElementException ex) { return null; } return customField; }
public Map getValues(Map params) { Map allValues = new ListOrderedMap(); allValues.putAll(systemValues); final List<CustomField> customFieldObjects = customFieldManager.getCustomFieldObjects(); for (final CustomField customField : customFieldObjects) { if (customField.getCustomFieldSearcher() instanceof CustomFieldStattable) { allValues.put(customField.getId(), customField.getName()); } } return allValues; }
public boolean showPanel(BrowseContext browseContext) { if (super.showPanel(browseContext)) { final CustomFieldManager customFieldManager = ManagerFactory.getCustomFieldManager(); final List<CustomField> customFields = customFieldManager.getCustomFieldObjects(browseContext.getProject().getId(), ConstantsManager.ALL_ISSUE_TYPES); for (final CustomField customField : customFields) { if (LabelsCFType.class.getName().equals(customField.getCustomFieldType().getClass().getName())) { return true; } } } return false; } }
/** * Retrieve a collection of custom field objects associated with the specified issue type. * @param issueTypeId the id of the issue type. * @return A collection of custom field objects associated with the specified issue type. */ protected Collection<CustomField> getCurrentCustomFieldObjects(String issueTypeId) { return getCustomFieldManager().getCustomFieldObjects(getProjectObject().getId(), issueTypeId); }
public RemoteField[] getCustomFields(User user) throws RemotePermissionException { if (!permissionManager.hasPermission(Permissions.ADMINISTER, user)) { throw new RemotePermissionException("Remote custom fields can only be retrieved by an administrator."); } final List customFields = customFieldManager.getCustomFieldObjects(); return soapUtilsBean.convertFieldsToRemoteFields(customFields); }
public Map getValues(Map params) { Map allValues = new ListOrderedMap(); allValues.putAll(getValueClassHolderSystemValues()); final List<CustomField> customFieldObjects = customFieldManager.getCustomFieldObjects(); for (final CustomField customField : customFieldObjects) { if (customField.getCustomFieldSearcher() instanceof CustomFieldStattable) { allValues.put(customField.getId(), getValueClassHolderForCF(customField)); } } return allValues; }
public List<CustomField> getCustomFields(Issue issue) { return getCustomFieldManager().getCustomFieldObjects(issue.getProjectId(), issue.getIssueTypeId()); }
private Map<String, String> getValues() { final I18nHelper i18n = authenticationContext.getI18nHelper(); final Map<String, String> allValues = new LinkedHashMap<String, String>(); for (Map.Entry entry : statisticTypesProvider.getSystemStatisticTypes().entrySet()) { allValues.put((String) entry.getKey(), i18n.getText((String) entry.getValue())); } final List<CustomField> customFieldObjects = customFieldManager.getCustomFieldObjects(); for (CustomField customField : customFieldObjects) { if (hasCustomFieldAccess(customField) && (customField.getCustomFieldSearcher() instanceof CustomFieldStattable)) { allValues.put(customField.getId(), i18n.getText(customField.getName())); } } return allValues; }