@Override public boolean setOperations(String[] lineRay, long currentLineNumber) { this.lineRay = lineRay; this.currentLineNumber = currentLineNumber; if (validate()) { // extract all the required fields from the row/line String clientAccountId = FieldExtractor.getFieldValue(lineRay, FieldExtractor.ClientAccountId); String campaignId = FieldExtractor.getFieldValue(lineRay, FieldExtractor.CampaignId); String advertisingChannelType = FieldExtractor.getFieldValue(lineRay, FieldExtractor.ChannelType); String googleSearch = FieldExtractor.getFieldValue(lineRay, FieldExtractor.GoogleSearch); String searchNetwork = FieldExtractor.getFieldValue(lineRay, FieldExtractor.SearchNetwork); String contentNetwork = FieldExtractor.getFieldValue(lineRay, FieldExtractor.ContentNetwork); String partnerSearchNetwork = FieldExtractor.getFieldValue(lineRay, FieldExtractor.PartnerSearchNetwork); String displaySelect = FieldExtractor.getFieldValue(lineRay, FieldExtractor.DisplaySelect); try { lineProcessor.awapi.addSession(clientAccountId); Campaign campaign = new Campaign(); campaign.setId(Long.decode(campaignId)); campaign.setAdvertisingChannelType( AdvertisingChannelType.fromString(advertisingChannelType)); // Set the campaign network options to Search and Search Network. NetworkSetting networkSetting = new NetworkSetting(); networkSetting.setTargetGoogleSearch(Boolean.valueOf(googleSearch)); networkSetting.setTargetSearchNetwork(Boolean.valueOf(searchNetwork)); networkSetting.setTargetContentNetwork(Boolean.valueOf(contentNetwork)); networkSetting.setTargetPartnerSearchNetwork(Boolean.valueOf(partnerSearchNetwork)); campaign.setNetworkSetting(networkSetting); if (displaySelect.equalsIgnoreCase("TRUE")) { campaign.setDisplaySelect(true); } else if (displaySelect.equalsIgnoreCase("FALSE")) { campaign.setDisplaySelect(false); } // Create operations. CampaignOperation operation = new CampaignOperation(); operation.setOperand(campaign); operation.setOperator(Operator.SET); operations[operationsIterator++] = operation; return true; } catch (Exception generalException) { // catch general failures... reportError(campaignId, generalException); return false; } } else { return false; } }
/** * Check the numeric fields from the CSV are in fact numeric * * @return did they all check out OK? */ public boolean validate() { FieldExtractor[] numericValueCheck = { FieldExtractor.ClientAccountId, FieldExtractor.CampaignId }; for (FieldExtractor numericField : numericValueCheck) { String value = FieldExtractor.getFieldValue(lineRay, numericField); try { Long.parseLong(value); } catch (Exception e) { lineProcessor.errorSummaryMessage = String.format( "Problem parsing data in row #%d. Field value was expected to be numeric", currentLineNumber); lineProcessor.errorCauseMessage = String.format("'%s' contains value of '%s'", numericField.getFieldName(), value); lineProcessor.handleFailure((int) currentLineNumber, lineProcessor.errorSummaryMessage); return false; } } return true; }