/******************************************************************************* * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *******************************************************************************/ package org.ebayopensource.turmeric.services.repositoryservice.impl; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.log4j.Logger; import org.ebayopensource.turmeric.common.v1.types.CommonErrorData; import org.ebayopensource.turmeric.common.v1.types.ErrorParameter; import org.ebayopensource.turmeric.errorlibrary.repository.ErrorConstants; import org.ebayopensource.turmeric.repository.v1.services.ApprovalInfo; import org.ebayopensource.turmeric.repository.v1.services.ApproveAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.ArtifactInfo; import org.ebayopensource.turmeric.repository.v1.services.AssetKey; import org.ebayopensource.turmeric.repository.v1.services.BasicAssetInfo; import org.ebayopensource.turmeric.repository.v1.services.CreateAndSubmitAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.CreateAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.CreateCompleteAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.CreateServiceRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAllAssetsGroupedByCategoryRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAllProjectsAndGroupsRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetDependenciesByGraphRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetDependenciesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetInfoRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetLifeCycleStatesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetStatusRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetSubmissionPropertiesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetTreeByAttributesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetTypesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetVersionsRequest; import org.ebayopensource.turmeric.repository.v1.services.GetBasicAssetInfoRequest; import org.ebayopensource.turmeric.repository.v1.services.GetCatalogAssetInfoRequest; import org.ebayopensource.turmeric.repository.v1.services.GetLibraryListRequest; import org.ebayopensource.turmeric.repository.v1.services.GetServiceRequest; import org.ebayopensource.turmeric.repository.v1.services.GetUsersProjectsAndGroupsRequest; import org.ebayopensource.turmeric.repository.v1.services.GraphRelationship; import org.ebayopensource.turmeric.repository.v1.services.LockAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.RejectAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.RejectionInfo; import org.ebayopensource.turmeric.repository.v1.services.RelationForUpdate; import org.ebayopensource.turmeric.repository.v1.services.RemoveAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.SearchAssetsDetailedRequest; import org.ebayopensource.turmeric.repository.v1.services.SearchAssetsRequest; import org.ebayopensource.turmeric.repository.v1.services.SubmitForPublishingRequest; import org.ebayopensource.turmeric.repository.v1.services.TypedRelationNode; import org.ebayopensource.turmeric.repository.v1.services.UnlockAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetArtifactsRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetAttributesRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetDependenciesByGraphRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetDependenciesRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateCompleteAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateServiceRequest; import org.ebayopensource.turmeric.repository.v1.services.ValidateAssetRequest; import org.ebayopensource.turmeric.runtime.common.exceptions.ErrorDataFactory; import org.ebayopensource.turmeric.services.repositoryservice.operation.util.RepositoryServiceOperationValidationUtil; public class RepositoryServiceValidateUtil { private static final Logger s_logger = Logger.getLogger(RepositoryServiceValidateUtil.class); public static boolean validate(ApproveAssetRequest approveAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(approveAssetRequest.getApprovalInfo() != null){ ApprovalInfo approvalInfo = approveAssetRequest.getApprovalInfo(); if (approvalInfo.getLibrary() == null || approvalInfo.getLibrary().getLibraryName() == null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if(approvalInfo.getApproverRole() == null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.APPROVAL_ROLE_MISSING, ErrorConstants.ERRORDOMAIN)); } if (approvalInfo.getAssetId() == null && approvalInfo.getAssetDetail() != null){ if(approvalInfo.getAssetDetail().getAssetName()==null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_AND_ID_MISSING, ErrorConstants.ERRORDOMAIN)); }else if(approvalInfo.getAssetDetail().getAssetType() == null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_TYPE_MISSING, ErrorConstants.ERRORDOMAIN)); } } } else{ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.APPROVAL_INFO_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } public static boolean validate(CreateAndSubmitAssetRequest createAndSubmitAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(createAndSubmitAssetRequest != null) { CreateCompleteAssetRequest createCompleteAssetRequest = getCreateCompleteAssetRequest(createAndSubmitAssetRequest); isValid = validate(createCompleteAssetRequest, errorDataList); } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } return isValid; } private static CreateCompleteAssetRequest getCreateCompleteAssetRequest(CreateAndSubmitAssetRequest createAndSubmitAssetRequest){ CreateCompleteAssetRequest createCompleteAssetRequest = new CreateCompleteAssetRequest(); createCompleteAssetRequest.setAssetInfo(createAndSubmitAssetRequest.getAssetInfo()); createCompleteAssetRequest.setCaptureTemplateName(createAndSubmitAssetRequest.getCaptureTemplateName()); //createCompleteAssetRequest.setGroupName(createAndSubmitAssetRequest.getGroupName()); return createCompleteAssetRequest; } public static boolean validate(CreateAssetRequest createAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if (createAssetRequest != null) { if (createAssetRequest.getBasicAssetInfo() != null) { if (createAssetRequest.getBasicAssetInfo().getAssetName() == null && (createAssetRequest.getBasicAssetInfo().getAssetKey() == null || createAssetRequest.getBasicAssetInfo().getAssetKey().getAssetName() == null)) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } else { if (createAssetRequest.getBasicAssetInfo().getAssetName() == null) { createAssetRequest.getBasicAssetInfo().setAssetName(createAssetRequest.getBasicAssetInfo().getAssetKey().getAssetName()); } else { if (createAssetRequest.getBasicAssetInfo().getAssetKey() == null) { createAssetRequest.getBasicAssetInfo().setAssetKey(new AssetKey()); } createAssetRequest.getBasicAssetInfo().getAssetKey().setAssetName(createAssetRequest.getBasicAssetInfo().getAssetName()); } } if (createAssetRequest.getBasicAssetInfo().getVersion() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_VERSION_MISSING, ErrorConstants.ERRORDOMAIN)); } if (createAssetRequest.getBasicAssetInfo().getGroupName() == null) { isValid = false; String assetName = createAssetRequest.getBasicAssetInfo().getAssetName(); CommonErrorData errorData = ErrorDataFactory.createErrorData(ErrorConstants.GROUP_NOT_PROVIDED, ErrorConstants.ERRORDOMAIN, new String[]{assetName}); errorDataList.add(errorData); } if (createAssetRequest.getBasicAssetInfo().getAssetType() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_TYPE_MISSING, ErrorConstants.ERRORDOMAIN)); } if (createAssetRequest.getBasicAssetInfo().getVersion() != null) { if (!checkVersionFormat(createAssetRequest.getBasicAssetInfo().getVersion(), 3)) { isValid = false; String version = createAssetRequest.getBasicAssetInfo().getVersion(); CommonErrorData errorData = ErrorDataFactory.createErrorData(ErrorConstants.INVALID_VERSION, ErrorConstants.ERRORDOMAIN, new String[]{version}); errorDataList.add(errorData); } } if (createAssetRequest.getBasicAssetInfo().getAssetKey() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } else { if (createAssetRequest.getBasicAssetInfo().getAssetKey().getLibrary() != null) { if (createAssetRequest.getBasicAssetInfo().getAssetKey().getLibrary().getLibraryName() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if (createAssetRequest.getBasicAssetInfo().getAssetKey().getLibrary().getLibraryId() == null && createAssetRequest.getBasicAssetInfo().getAssetKey().getLibrary().getLibraryName() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if (createAssetRequest.getBasicAssetInfo().getAssetKey().getAssetId() != null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_NOT_NEEDED, ErrorConstants.ERRORDOMAIN)); } } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_TYPE_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } public static boolean validate(CreateCompleteAssetRequest createCompleteAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(createCompleteAssetRequest != null) { isValid = RepositoryServiceOperationValidationUtil.validateAssetInfo(createCompleteAssetRequest.getAssetInfo(), errorDataList); if(createCompleteAssetRequest.getCaptureTemplateName() == null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.CAPTURE_TEMPLATE_NOT_RESOLVED, ErrorConstants.ERRORDOMAIN)); isValid = false; } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.NO_REQUEST_PARAM, ErrorConstants.ERRORDOMAIN)); isValid = false; } return isValid; } /** * This method validates a version format. It assumes that each part of the version would be a numeric value. * @param input The input String to be verified for version pattern compliance. * @param level The number of major and minor versions etc .. for somethng like 1.0 the level is two , and for something like 1.0.4 the level is 3. * @return */ public static boolean checkVersionFormat(String input,int level){ String patternStr = ""; StringBuffer strBuf = new StringBuffer(); String onePatternStr = "[0-9]+."; for(int i=0; i<level ; i++){ strBuf.append(onePatternStr); } patternStr = strBuf.toString(); patternStr = patternStr.substring(0, patternStr.length()-1); // remove the extra dot at the end Pattern regexPattern = Pattern.compile(patternStr); Matcher regexMatcher = regexPattern.matcher(input); if(regexMatcher.matches()) return true; else return false; } public static boolean validate(CreateServiceRequest createServiceRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(createServiceRequest.getServiceInfo()!=null) { if(createServiceRequest.getServiceInfo().getBasicServiceInfo() != null) { CreateAssetRequest createAssetRequest = new CreateAssetRequest(); BasicAssetInfo basicAssetInfo = new BasicAssetInfo(); basicAssetInfo.setAssetDescription(createServiceRequest.getServiceInfo().getBasicServiceInfo().getServiceDescription()); basicAssetInfo.setAssetKey(createServiceRequest.getServiceInfo().getBasicServiceInfo().getAssetKey()); basicAssetInfo.setAssetLongDescription(createServiceRequest.getServiceInfo().getBasicServiceInfo().getServiceLongDescription()); basicAssetInfo.setAssetName(createServiceRequest.getServiceInfo().getBasicServiceInfo().getServiceName()); basicAssetInfo.setAssetType("Service"); basicAssetInfo.setVersion(createServiceRequest.getServiceInfo().getBasicServiceInfo().getServiceVersion()); basicAssetInfo.setGroupName(createServiceRequest.getServiceInfo().getBasicServiceInfo().getGroupName()); createAssetRequest.setBasicAssetInfo(basicAssetInfo); if(!validate(createAssetRequest, errorDataList)) { isValid = false; } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.BASIC_SERVICE_INFO_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } return isValid; } public static boolean validate(GetAllAssetsGroupedByCategoryRequest getAllAssetsGroupedByCategoryRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(getAllAssetsGroupedByCategoryRequest== null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } return isValid; } /** * This validates the request object for the operation to see whether any required parameters are missing. * * @param getAllProjectsAndGroupsRequest request to be validated * @param errorDataList this will hold any errors during validation * @return boolean indicating success or failure or request object validation */ public static boolean validate(GetAllProjectsAndGroupsRequest getAllProjectsAndGroupsRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(getAllProjectsAndGroupsRequest== null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); }else if(getAllProjectsAndGroupsRequest.getLibrary()!= null){ if(getAllProjectsAndGroupsRequest.getLibrary().getLibraryName() == null){ isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } return isValid; } /** * Used to validate the input for GetAssetDependenciesByGraph operation * @param getAssetDependenciesByGraphRequest * @param errorDataList * @return */ public static boolean validate( GetAssetDependenciesByGraphRequest getAssetDependenciesByGraphRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if (getAssetDependenciesByGraphRequest.getAssetKey() != null) { if (getAssetDependenciesByGraphRequest.getAssetKey().getAssetId() == null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if (getAssetDependenciesByGraphRequest.getAssetKey().getLibrary().getLibraryName() == null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } public static boolean validate(GetAssetDependenciesRequest getAssetDependenciesRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(getAssetDependenciesRequest.getAssetKey()!= null) { if(getAssetDependenciesRequest.getAssetKey().getAssetId()== null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if(getAssetDependenciesRequest.getAssetKey().getLibrary()==null || getAssetDependenciesRequest.getAssetKey().getLibrary().getLibraryName() ==null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if(errorDataList.size()>0) isValid = false; return isValid; } /** * Validates the input * @param getAssetInfoRequest * @param errorDataList * @return */ public static boolean validate(GetAssetInfoRequest getAssetInfoRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if (getAssetInfoRequest.getAssetKey() != null){ if (getAssetInfoRequest.getAssetKey().getAssetId() == null) { if(getAssetInfoRequest.getAssetKey().getAssetName()==null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_AND_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } else { if(getAssetInfoRequest.getAssetType() == null) errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_TYPE_MISSING, ErrorConstants.ERRORDOMAIN)); } } if (getAssetInfoRequest.getAssetKey().getLibrary() == null || getAssetInfoRequest.getAssetKey().getLibrary().getLibraryName() == null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_AND_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } /** * Validates the input * @param updateServiceRequest * @param errorDataList * @return */ public static boolean validate(GetAssetLifeCycleStatesRequest getAssetLifeCycleStatesRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(getAssetLifeCycleStatesRequest.getAssetType()==null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_TYPE_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } /** * Used to validate the input for GetAssetStatus operation * @param getAssetStatusRequest * @param errorDataList * @return */ public static boolean validate(GetAssetStatusRequest getAssetStatusRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if (getAssetStatusRequest.getAssetKey() != null) { if (getAssetStatusRequest.getAssetKey().getAssetId() == null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if (getAssetStatusRequest.getAssetKey().getLibrary()==null ||getAssetStatusRequest.getAssetKey().getLibrary().getLibraryName() == null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } /** * This validates the request object for the operation to see whether any required parameters are missing. * * @param getAssetSubmissionPropertiesRequest request to be validated * @param errorDataList this will hold any errors during validation * @return boolean indicating success or failure or request object validation */ public static boolean validate(GetAssetSubmissionPropertiesRequest getAssetSubmissionPropertiesRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(getAssetSubmissionPropertiesRequest== null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); }else{ if(getAssetSubmissionPropertiesRequest.getAssetKey() != null){ if (getAssetSubmissionPropertiesRequest.getAssetKey().getAssetId() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if (getAssetSubmissionPropertiesRequest.getAssetKey().getLibrary() == null || getAssetSubmissionPropertiesRequest.getAssetKey().getLibrary().getLibraryName() == null){ isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } }else{ isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } return isValid; } public static boolean validate( GetAssetTreeByAttributesRequest getAssetTreeByAttributesRequest, List<CommonErrorData> errorDataList) { boolean isValid =true; if(getAssetTreeByAttributesRequest!= null) { if(getAssetTreeByAttributesRequest.getLibrary() == null || getAssetTreeByAttributesRequest.getLibrary().getLibraryName()==null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if(getAssetTreeByAttributesRequest.getNextLevelAttribute() == null || getAssetTreeByAttributesRequest.getNextLevelAttribute().equals("")) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.NEXT_LEVEL_ATTRIBUTE_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } return isValid; } public static boolean validate(GetAssetTypesRequest getAssetTypesRequest, List<CommonErrorData> errorDataList) { //validations if any in the future return true; } /** * Used to validate the input for GetAssetVersions operation * @param getAssetVersionsRequest * @param errorDataList * @return */ public static boolean validate(GetAssetVersionsRequest getAssetVersionsRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if (getAssetVersionsRequest.getAssetKey() != null) { if (getAssetVersionsRequest.getAssetKey().getAssetId() == null && getAssetVersionsRequest.getAssetKey().getAssetName() == null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_AND_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if (getAssetVersionsRequest.getAssetKey().getLibrary() == null ||getAssetVersionsRequest.getAssetKey().getLibrary().getLibraryName()==null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } /** * Used to validate the input for GetBasicAssetInfo operation * @param getBasicAssetInfoRequest * @param errorDataList * @return */ public static boolean validate(GetBasicAssetInfoRequest getBasicAssetInfoRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if (getBasicAssetInfoRequest.getAssetKey() != null) { if (getBasicAssetInfoRequest.getAssetKey().getAssetId() == null) { if(getBasicAssetInfoRequest.getAssetKey().getAssetName()==null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_AND_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } else { if(getBasicAssetInfoRequest.getAssetType() == null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_TYPE_MISSING, ErrorConstants.ERRORDOMAIN)); } } } if (getBasicAssetInfoRequest.getAssetKey().getLibrary() == null || getBasicAssetInfoRequest.getAssetKey().getLibrary().getLibraryName()== null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } /** * Validates if request is null or not and Library Name is provided in the * request or not * * @param getCatalogAssetInfoRequest * @param errorDataList * @return boolean */ public static boolean validate( GetCatalogAssetInfoRequest getCatalogAssetInfoRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if (getCatalogAssetInfoRequest == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } else if (getCatalogAssetInfoRequest.getLibraryName() == null || getCatalogAssetInfoRequest.getLibraryName().length() == 0) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } return isValid; } public static boolean validate(GetLibraryListRequest getLibraryListRequest, List<CommonErrorData> errorDataList) { //validations if any in the future return true; } /** * Validates the input * @param getServiceRequest * @param errorDataList * @return */ public static boolean validate(GetServiceRequest getServiceRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; AssetKey assetKey = getServiceRequest.getAssetKey(); if (assetKey != null){ if (assetKey.getAssetId() == null && assetKey.getAssetName() ==null) errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_AND_ID_MISSING, ErrorConstants.ERRORDOMAIN)); if (assetKey.getLibrary() == null || assetKey.getLibrary().getLibraryName() == null) errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } /** * This validates the request object for the operation to see whether any required parameters are missing. * * @param getUsersProjectsAndGroupsRequest request to be validated * @param errorDataList this will hold any errors during validation * @return boolean indicating success or failure or request object validation */ public static boolean validate(GetUsersProjectsAndGroupsRequest getUsersProjectsAndGroupsRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(getUsersProjectsAndGroupsRequest== null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); }else if(getUsersProjectsAndGroupsRequest.getLibrary()!= null){ if(getUsersProjectsAndGroupsRequest.getLibrary().getLibraryName() == null){ isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } return isValid; } public static boolean validate(LockAssetRequest lockAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid=true; //MessageContext messageContext = MessageContextAccessor.getContext(); //RepositoryServiceOperationUtil.validateDeriveAssetKeyAsInput(lockAssetRequest.getAssetKey(), errorDataList, messageContext); if(lockAssetRequest.getAssetKey()!= null) { if(lockAssetRequest.getAssetKey().getAssetId()== null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if(lockAssetRequest.getAssetKey().getLibrary() ==null|| lockAssetRequest.getAssetKey().getLibrary().getLibraryName()==null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if(errorDataList.size()>0) isValid=false; return isValid; } /** * Validates the input * @param rejectAssetRequest * @param errorDataList * @return */ public static boolean validate(RejectAssetRequest rejectAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(rejectAssetRequest.getRejectionInfo() != null){ RejectionInfo rejectionInfo = rejectAssetRequest.getRejectionInfo(); if (rejectionInfo.getLibrary() == null || rejectionInfo.getLibrary().getLibraryName() == null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if(rejectionInfo.getRejectionRole() == null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REJECTION_ROLE_MISSING, ErrorConstants.ERRORDOMAIN)); } if (rejectionInfo.getAssetId() == null && rejectionInfo.getAssetDetail() != null){ if(rejectionInfo.getAssetDetail().getAssetName()==null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_AND_ID_MISSING, ErrorConstants.ERRORDOMAIN)); }else if(rejectionInfo.getAssetDetail().getAssetType() == null){ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_TYPE_MISSING, ErrorConstants.ERRORDOMAIN)); } } } else{ errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REJECTION_INFO_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } public static boolean validate(RemoveAssetRequest removeAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(removeAssetRequest!= null) { if(removeAssetRequest.getAssetKey()!= null) { if(removeAssetRequest.getAssetKey().getAssetId() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if(removeAssetRequest.getAssetKey().getLibrary()== null || removeAssetRequest.getAssetKey().getLibrary().getLibraryName()==null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } return isValid; } public static boolean validate(SearchAssetsRequest searchAssetsRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(searchAssetsRequest== null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } return isValid; } public static boolean validate(SearchAssetsDetailedRequest searchAssetsDetailedRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(searchAssetsDetailedRequest== null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } return isValid; } public static boolean validate(SubmitForPublishingRequest submitForPublishingRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(submitForPublishingRequest.getAssetKey()!=null) { if(submitForPublishingRequest.getAssetKey().getAssetId()==null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if(submitForPublishingRequest.getAssetKey().getLibrary()!=null) { if(submitForPublishingRequest.getAssetKey().getLibrary().getLibraryName() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if(submitForPublishingRequest.getComment()!= null && submitForPublishingRequest.getComment().length()>1000) { String shortenedComment = submitForPublishingRequest.getComment().substring(0, 999); submitForPublishingRequest.setComment(shortenedComment); String comment = submitForPublishingRequest.getComment(); CommonErrorData errorData = ErrorDataFactory.createErrorData(ErrorConstants.COMMENT_TOO_LONG, ErrorConstants.ERRORDOMAIN, new String[]{comment}); errorDataList.add(errorData); } return isValid; } public static boolean validate(UnlockAssetRequest unlockAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid=true; if(unlockAssetRequest.getAssetKey()!= null) { if(unlockAssetRequest.getAssetKey().getAssetId()== null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if(unlockAssetRequest.getAssetKey().getLibrary()==null ||unlockAssetRequest.getAssetKey().getLibrary().getLibraryName()==null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if(errorDataList.size()>0) isValid=false; return isValid; } public static boolean validate( UpdateAssetArtifactsRequest updateAssetArtifactsRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(updateAssetArtifactsRequest!= null) { if (updateAssetArtifactsRequest.getAssetKey() != null) { if (updateAssetArtifactsRequest.getAssetKey().getAssetId() == null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); } if (updateAssetArtifactsRequest.getAssetKey().getLibrary()==null||updateAssetArtifactsRequest.getAssetKey().getLibrary().getLibraryName() == null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if(updateAssetArtifactsRequest.getArtifactInfo()!=null) { if(updateAssetArtifactsRequest.getArtifactInfo().size()<=0) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.NO_ARTIFACTS_FOR_ADDING, ErrorConstants.ERRORDOMAIN)); } else { for(ArtifactInfo artifactInfo : updateAssetArtifactsRequest.getArtifactInfo()) { if(artifactInfo.getArtifact()!= null) { if(artifactInfo.getArtifact().getArtifactName()== null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ARTIFACT_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if(artifactInfo.getArtifact().getArtifactValueType()==null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ARTIFACT_VALUE_TYPE_MISSING, ErrorConstants.ERRORDOMAIN)); } if(artifactInfo.getArtifact().getArtifactCategory()==null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ARTIFACT_CATEGORY_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ARTIFACT_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ARTIFACT_VALUE_TYPE_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ARTIFACT_CATEGORY_MISSING, ErrorConstants.ERRORDOMAIN)); } if(artifactInfo.getArtifactDetail()==null) { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ARTIFACT_EMPTY_EXCEPTION, ErrorConstants.ERRORDOMAIN)); } } } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.NO_ARTIFACTS_FOR_ADDING, ErrorConstants.ERRORDOMAIN)); } } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } /** * Validates the input * @param updateAssetAttributesRequest * @param errorDataList * @return */ public static boolean validate(UpdateAssetAttributesRequest updateAssetAttributesRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; AssetKey assetKey = updateAssetAttributesRequest.getAssetKey(); if (assetKey != null){ if (assetKey.getAssetId() == null) errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); if (assetKey.getLibrary() == null || assetKey.getLibrary().getLibraryName() == null) errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } public static boolean validate( UpdateAssetDependenciesByGraphRequest updateAssetDependenciesByGraphRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(updateAssetDependenciesByGraphRequest.getAssetKey()!= null) { AssetKey sourceAsset = updateAssetDependenciesByGraphRequest.getAssetKey(); if(sourceAsset.getAssetId() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } if(sourceAsset.getLibrary() != null) { if(sourceAsset.getLibrary().getLibraryName()==null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } if(updateAssetDependenciesByGraphRequest.getGraphRelationship().getSourceAsset()==null) { updateAssetDependenciesByGraphRequest.getGraphRelationship().setSourceAsset(sourceAsset); } else if(isValid) { if(updateAssetDependenciesByGraphRequest.getGraphRelationship().getSourceAsset().getAssetId()== null || !updateAssetDependenciesByGraphRequest.getGraphRelationship().getSourceAsset().getAssetId().equals(updateAssetDependenciesByGraphRequest.getAssetKey().getAssetId())) { isValid = false; List<ErrorParameter> errorParameterList = new ArrayList<ErrorParameter>(); ErrorParameter firstAssetKeyErrorParameter = new ErrorParameter(); firstAssetKeyErrorParameter.setName("firstAssetKey"); firstAssetKeyErrorParameter.setValue("source asset in the Graph Relationship"); errorParameterList.add(firstAssetKeyErrorParameter); ErrorParameter secondAssetKeyErrorParameter = new ErrorParameter(); secondAssetKeyErrorParameter.setName("secondAssetKey"); secondAssetKeyErrorParameter.setValue("the updateassetRelationshipByGraphRequest"); errorParameterList.add(secondAssetKeyErrorParameter); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_KEY_MISMATCH_ERROR, ErrorConstants.ERRORDOMAIN)); } if(updateAssetDependenciesByGraphRequest.getGraphRelationship().getSourceAsset().getLibrary()!=null) { if(updateAssetDependenciesByGraphRequest.getAssetKey().getLibrary()!= null && !updateAssetDependenciesByGraphRequest.getGraphRelationship().getSourceAsset().getLibrary().getLibraryName().equals(updateAssetDependenciesByGraphRequest.getAssetKey().getLibrary().getLibraryName())) { isValid = false; List<ErrorParameter> errorParameterList = new ArrayList<ErrorParameter>(); ErrorParameter firstAssetKeyErrorParameter = new ErrorParameter(); firstAssetKeyErrorParameter.setName("firstAssetKey"); firstAssetKeyErrorParameter.setValue("source asset in the Graph Relationship"); errorParameterList.add(firstAssetKeyErrorParameter); ErrorParameter secondAssetKeyErrorParameter = new ErrorParameter(); secondAssetKeyErrorParameter.setName("secondAssetKey"); secondAssetKeyErrorParameter.setValue("the updateassetRelationshipByGraphRequest"); errorParameterList.add(secondAssetKeyErrorParameter); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_KEY_MISMATCH_ERROR, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; List<ErrorParameter> errorParameterList = new ArrayList<ErrorParameter>(); ErrorParameter firstAssetKeyErrorParameter = new ErrorParameter(); firstAssetKeyErrorParameter.setName("firstAssetKey"); firstAssetKeyErrorParameter.setValue("source asset in the Graph Relationship"); errorParameterList.add(firstAssetKeyErrorParameter); ErrorParameter secondAssetKeyErrorParameter = new ErrorParameter(); secondAssetKeyErrorParameter.setName("secondAssetKey"); secondAssetKeyErrorParameter.setValue("the updateassetRelationshipByGraphRequest"); errorParameterList.add(secondAssetKeyErrorParameter); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_KEY_MISMATCH_ERROR, ErrorConstants.ERRORDOMAIN)); } } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } if(updateAssetDependenciesByGraphRequest.getGraphRelationship()!=null) { if(!validateGraphRelationship(updateAssetDependenciesByGraphRequest.getGraphRelationship(), errorDataList)) { isValid = false; } if(updateAssetDependenciesByGraphRequest.getGraphRelationship().getTargetAsset() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.RELATIONS_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.RELATIONS_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } return isValid; } private static boolean validateGraphRelationship(GraphRelationship graphRelationship, List<CommonErrorData> errorDataList) { boolean isValid = true; if(graphRelationship.getSourceAsset()!=null) { if(graphRelationship.getSourceAsset().getAssetId()==null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } if(graphRelationship.getSourceAsset().getLibrary()!=null) { if(graphRelationship.getSourceAsset().getLibrary().getLibraryName()==null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } } else { isValid=false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } if(graphRelationship.getTargetAsset()!=null) { for(TypedRelationNode typedRelationNode : graphRelationship.getTargetAsset()) { if(typedRelationNode.getAssetRelationship() == null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.RELATIONSHIP_NAME_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } if(typedRelationNode.getTarget()!= null) { if(!validateGraphRelationship(typedRelationNode.getTarget(), errorDataList)) { isValid = false; } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.RELATIONS_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } } } return isValid; } public static boolean validate( UpdateAssetDependenciesRequest updateAssetDependenciesRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(updateAssetDependenciesRequest.getAssetKey()!=null) { if(updateAssetDependenciesRequest.getAssetKey().getAssetId() == null || updateAssetDependenciesRequest.getAssetKey().getLibrary() == null || updateAssetDependenciesRequest.getAssetKey().getLibrary().getLibraryName() == null ) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.SOURCE_ASSET_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } if(updateAssetDependenciesRequest.getFlattenedRelationshipForUpdate()!=null) { if(updateAssetDependenciesRequest.getFlattenedRelationshipForUpdate().getSourceAsset()!=null && updateAssetDependenciesRequest.getAssetKey()!= null) { if(updateAssetDependenciesRequest.getFlattenedRelationshipForUpdate().getSourceAsset().getAssetId()== null || !updateAssetDependenciesRequest.getFlattenedRelationshipForUpdate().getSourceAsset().getAssetId().equals(updateAssetDependenciesRequest.getAssetKey().getAssetId())) { isValid = false; List<ErrorParameter> errorParameterList = new ArrayList<ErrorParameter>(); ErrorParameter firstAssetKeyErrorParameter = new ErrorParameter(); firstAssetKeyErrorParameter.setName("firstAssetKey"); firstAssetKeyErrorParameter.setValue("source asset in the flattenedrelationship"); errorParameterList.add(firstAssetKeyErrorParameter); ErrorParameter secondAssetKeyErrorParameter = new ErrorParameter(); secondAssetKeyErrorParameter.setName("secondAssetKey"); secondAssetKeyErrorParameter.setValue("the updateassetRelationshipRequest"); errorParameterList.add(secondAssetKeyErrorParameter); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_KEY_MISMATCH_ERROR, ErrorConstants.ERRORDOMAIN)); } if(updateAssetDependenciesRequest.getFlattenedRelationshipForUpdate().getSourceAsset().getLibrary()!=null) { if(updateAssetDependenciesRequest.getAssetKey().getLibrary()== null || !updateAssetDependenciesRequest.getFlattenedRelationshipForUpdate().getSourceAsset().getLibrary().getLibraryName().equals(updateAssetDependenciesRequest.getAssetKey().getLibrary().getLibraryName())) { isValid = false; List<ErrorParameter> errorParameterList = new ArrayList<ErrorParameter>(); ErrorParameter firstAssetKeyErrorParameter = new ErrorParameter(); firstAssetKeyErrorParameter.setName("firstAssetKey"); firstAssetKeyErrorParameter.setValue("source asset in the flattenedrelationship"); errorParameterList.add(firstAssetKeyErrorParameter); ErrorParameter secondAssetKeyErrorParameter = new ErrorParameter(); secondAssetKeyErrorParameter.setName("secondAssetKey"); secondAssetKeyErrorParameter.setValue("the updateassetRelationshipRequest"); errorParameterList.add(secondAssetKeyErrorParameter); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_KEY_MISMATCH_ERROR, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; List<ErrorParameter> errorParameterList = new ArrayList<ErrorParameter>(); ErrorParameter firstAssetKeyErrorParameter = new ErrorParameter(); firstAssetKeyErrorParameter.setName("firstAssetKey"); firstAssetKeyErrorParameter.setValue("source asset in the flattenedrelationship"); errorParameterList.add(firstAssetKeyErrorParameter); ErrorParameter secondAssetKeyErrorParameter = new ErrorParameter(); secondAssetKeyErrorParameter.setName("secondAssetKey"); secondAssetKeyErrorParameter.setValue("the updateassetRelationshipRequest"); errorParameterList.add(secondAssetKeyErrorParameter); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_KEY_MISMATCH_ERROR, ErrorConstants.ERRORDOMAIN)); } } else { updateAssetDependenciesRequest.getFlattenedRelationshipForUpdate().setSourceAsset(updateAssetDependenciesRequest.getAssetKey()); } if(updateAssetDependenciesRequest.getFlattenedRelationshipForUpdate().getRelatedAsset()==null ) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.RELATIONS_NOT_ENTERED, ErrorConstants.ERRORDOMAIN)); } else { List<RelationForUpdate> toUpdate = updateAssetDependenciesRequest.getFlattenedRelationshipForUpdate().getRelatedAsset(); Iterator<RelationForUpdate> toUpdateItor = toUpdate.iterator(); while (toUpdateItor.hasNext()) { RelationForUpdate relationForUpdate = (RelationForUpdate) toUpdateItor.next(); if(!validateRelationForupdate(relationForUpdate,errorDataList)) { isValid = false; } } } } else { isValid = false; } return isValid; } private static boolean validateRelationForupdate(RelationForUpdate relationForUpdate, List<CommonErrorData> errorDataList) { boolean isValid = true; if(relationForUpdate.getNewRelation() == null && !relationForUpdate.isDeleteRelation()) { isValid = false; List<ErrorParameter> errorParameterList = new ArrayList<ErrorParameter>(); ErrorParameter firstAssetKeyErrorParameter = new ErrorParameter(); firstAssetKeyErrorParameter.setName("firstAssetName"); if(relationForUpdate.getCurrentSourceAsset()!= null) { firstAssetKeyErrorParameter.setValue(relationForUpdate.getCurrentSourceAsset().getAssetName()); } errorParameterList.add(firstAssetKeyErrorParameter); ErrorParameter secondAssetKeyErrorParameter = new ErrorParameter(); secondAssetKeyErrorParameter.setName("secondAssetName"); if(relationForUpdate.getCurrentTargetAsset()!= null) { firstAssetKeyErrorParameter.setValue(relationForUpdate.getCurrentTargetAsset().getAssetName()); } errorParameterList.add(secondAssetKeyErrorParameter); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.NEW_RELATION_MISSING, ErrorConstants.ERRORDOMAIN)); } return isValid; } /** * Validates the input * * @param updateAssetRequest * @param errorDataList * @return */ public static boolean validate(UpdateAssetRequest updateAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(updateAssetRequest!= null) { BasicAssetInfo basicAssetInfo = updateAssetRequest.getBasicAssetInfo(); if(basicAssetInfo!= null) { if(basicAssetInfo.getVersion()!= null) { if(!checkVersionFormat(basicAssetInfo.getVersion(), 3)) { String version = basicAssetInfo.getVersion(); CommonErrorData errorData = ErrorDataFactory.createErrorData(ErrorConstants.INVALID_VERSION, ErrorConstants.ERRORDOMAIN, new String[]{version}); errorDataList.add(errorData); } } AssetKey assetKey = basicAssetInfo.getAssetKey(); if (assetKey != null) { if (assetKey.getAssetId() == null) errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); if (assetKey.getLibrary() == null || assetKey.getLibrary().getLibraryName() == null) errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.BASE_ASSETINFO_MISSING, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } public static boolean validate(UpdateCompleteAssetRequest updateCompleteAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(updateCompleteAssetRequest != null) { isValid = RepositoryServiceOperationValidationUtil.validateAssetInfoForUpdate(updateCompleteAssetRequest.getAssetInfoForUpdate(), errorDataList); } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.NO_REQUEST_PARAM, ErrorConstants.ERRORDOMAIN)); isValid = false; } return isValid; } /** * Validates the input * @param updateServiceRequest * @param errorDataList * @return */ public static boolean validate(UpdateServiceRequest updateServiceRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(updateServiceRequest!= null) { if(updateServiceRequest.getServiceInfo()!=null){ if(updateServiceRequest.getServiceInfo().getBasicServiceInfo()!= null){ if (updateServiceRequest.getServiceInfo().getBasicServiceInfo().getAssetKey() != null) { if (updateServiceRequest.getServiceInfo().getBasicServiceInfo().getAssetKey().getAssetId() == null) errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); if (updateServiceRequest.getServiceInfo().getBasicServiceInfo().getAssetKey().getLibrary().getLibraryName() == null) errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } else { errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_ID_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.DEPTH_MISSING, ErrorConstants.ERRORDOMAIN)); } }else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } }else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } } else { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); } if (errorDataList.size() > 0) isValid = false; return isValid; } public static boolean validate(ValidateAssetRequest validateAssetRequest, List<CommonErrorData> errorDataList) { boolean isValid = true; if(validateAssetRequest== null) { isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.REQUEST_EMPTY, ErrorConstants.ERRORDOMAIN)); }else if(validateAssetRequest.getAssetInfo() == null){ isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.MISSING_ASSETINFO, ErrorConstants.ERRORDOMAIN)); }else if(validateAssetRequest.getAssetInfo().getBasicAssetInfo() == null || validateAssetRequest.getAssetInfo().getBasicAssetInfo().getAssetKey() == null){ isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.ASSET_NAME_AND_ID_MISSING, ErrorConstants.ERRORDOMAIN)); }else if(validateAssetRequest.getAssetInfo().getBasicAssetInfo().getAssetKey().getLibrary() == null){ isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_MISSING, ErrorConstants.ERRORDOMAIN)); }else if(validateAssetRequest.getAssetInfo().getBasicAssetInfo().getAssetKey().getLibrary().getLibraryName() == null){ isValid = false; errorDataList.add(ErrorDataFactory.createErrorData(ErrorConstants.LIBRARY_NAME_MISSING, ErrorConstants.ERRORDOMAIN)); } return isValid; } }