/** * Adds the field values from the service item container to the map. * * @param service the service. * @param container the service item container. * @param values the map holding the values. * @param locked all locked values for the service. */ private static void addFieldValues( CatalogServiceRestRep service, Collection<? extends ServiceItemRestRep> items, Map<String, String> values, Map<String, String> locked) { for (ServiceItemRestRep item : items) { if (item instanceof ServiceFieldTableRestRep) { addColumnValues(service, (ServiceFieldTableRestRep) item, values, locked); } else if (item instanceof ServiceFieldGroupRestRep) { addFieldValues(service, ((ServiceFieldGroupRestRep) item).getItems(), values, locked); } else if (item instanceof ServiceFieldRestRep) { ServiceFieldRestRep field = (ServiceFieldRestRep) item; String value = getFieldValue(field); if (locked.containsKey(field.getName())) { value = locked.get(field.getName()); } if (value != null) { values.put(field.getName(), value); } List<String> fieldValues = TextUtils.parseCSV(value); if (fieldValues.isEmpty() && field.isRequired()) { Validation.required(field.getName(), null); } for (String fieldValue : fieldValues) { ServiceFieldValidator.validateField(service, field, fieldValue); } } } }