private void check( JAXBResource jaxbResource, UserDetails user, StringApiResponse response, boolean add) throws Throwable { ResourceInterface resourcePrototype = this.getResourceManager().createResourceType(jaxbResource.getTypeCode()); if (null == resourcePrototype) { this.addValidationError( "Invalid resource type - '" + jaxbResource.getTypeCode() + "'", response); } if (null == user) { user = this.getUserManager().getGuestUser(); } String groupName = jaxbResource.getMainGroup(); if (null == groupName || groupName.trim().length() == 0) { this.addValidationError("Group required", response); } else { if (null == this.getGroupManager().getGroup(groupName)) { // this.addValidationError("Group '" + groupName + "' does not exist", response); } else if (!this.getAuthorizationManager().isAuthOnGroup(user, groupName)) { // this.addValidationError("Group '" + groupName + "' not allowed", response); } } if (add) { if (null == jaxbResource.getBase64()) { this.addValidationError("Binary Image required", response); } if (null == jaxbResource.getFileName() || jaxbResource.getFileName().trim().length() == 0) { this.addValidationError("FileName required", response); } } else { ResourceInterface oldResource = this.getResourceManager().loadResource(jaxbResource.getId()); if (null == oldResource) { this.addValidationError( "Resource with id '" + jaxbResource.getId() + "' does not exist", response); } else if (!oldResource.getMainGroup().equals(jaxbResource.getMainGroup())) { this.addValidationError( "Resource group has to be '" + oldResource.getMainGroup() + "'", response); } } if (this.isDuplicateFile(jaxbResource, resourcePrototype, add)) { this.addValidationError( "File '" + jaxbResource.getFileName() + "' is already present on Archive", response); } if (null == jaxbResource.getDescription() || jaxbResource.getDescription().trim().length() == 0) { this.addValidationError("Description required", response); } if (null == jaxbResource.getTypeCode() || jaxbResource.getTypeCode().trim().length() == 0) { this.addValidationError("TypeCode required", response); } }
private boolean isDuplicateFile( JAXBResource jaxbResource, ResourceInterface resourcePrototype, boolean add) { if (null == jaxbResource.getBase64()) return false; boolean addError = true; String formFileName = jaxbResource.getFileName(); try { resourcePrototype.setMainGroup(jaxbResource.getMainGroup()); if (resourcePrototype.exists(formFileName)) { if (!add) { ResourceInterface masterResource = this.getResourceManager().loadResource(jaxbResource.getId()); String masterFileName = (null != masterResource) ? masterResource.getMasterFileName() : null; if (null != masterFileName && masterFileName.equalsIgnoreCase(formFileName)) { addError = false; } } } else { addError = false; } } catch (Throwable t) { ApsSystemUtils.logThrowable( t, this, "isDuplicateFile", "Error while check duplicate file - master file name '" + formFileName + "'"); } return addError; }