public static boolean basicValidateFiles( ActionErrors actionErrors, Number fieldId, ActionForm form, IGTEntity entity, String[] extensions) throws GTClientException { try { boolean newEntity = entity.isNewEntity(); if (!(form instanceof GTActionFormBase)) { throw new java.lang.UnsupportedOperationException( "Form must be a subclass of GTActionFormBase"); } IGTFieldMetaInfo fmi = entity.getFieldMetaInfo(fieldId); if (fmi == null) { throw new java.lang.NullPointerException( "No fieldMetaInfo for field:" + fieldId + " of entity " + entity); } if ((!fmi.isDisplayable(newEntity)) || (!fmi.isEditable(newEntity))) { return true; } String fieldName = fmi.getFieldName(); // 20030410AH FormFileElement[] elements = ((GTActionFormBase) form).getFormFileElements(fieldName); // 20030410AH if (fmi.isMandatory(newEntity)) { if ((elements == null) || (elements.length == 0)) { addFieldError(actionErrors, fieldName, entity.getType(), REQUIRED, null); // 20021220AH return false; } } if (extensions != null) { // 20030410AH - Check file extensions are of those allowed boolean allOk = true; if (elements != null) { for (int i = 0; i < elements.length; i++) { String filename = elements[i].getFileName(); if (filename == null) throw new NullPointerException("Internal assertion failure: filename is null"); String extension = StaticUtils.getFileExtension(filename); if (StaticUtils.findValueInArray(extensions, extension, false) == -1) { String[] params = new String[] {filename}; addFieldError(actionErrors, fieldName, entity.getType(), INVALID_EXTENSION, params); return false; } } } } return true; } catch (Throwable t) { throw new GTClientException("Error validating file field:" + fieldId, t); } }