This function update the fax job from the request data.<br>
This fax job will not have any file data.

@param   inputData
The input data
@param   faxJob
The fax job to update
426887
@Override
    protected void updateFaxJobFromInputDataImpl(HTTPRequest inputData,FaxJob faxJob)
    {
        //get parameters text as map
        Map<String,String> queryStringMap=this.convertParametersTextToMap(inputData);

        //update fax job
        this.updateFaxJobFromRequestImpl(inputData,faxJob,queryStringMap);
    }
1115885
@Override
    protected void updateFaxJob2HTTPRequestConverterConfiguration(Map<String,String> configuration)
    {
        //get API key/secret
        String apiKey=this.getConfigurationValue(FaxClientSpiConfigurationConstants.API_KEY_PROPERTY_KEY);
        String apiSecret=this.getConfigurationValue(FaxClientSpiConfigurationConstants.API_SECRET_PROPERTY_KEY);
        
        //validate data
        if((apiKey==null)||(apiSecret==null))
        {
            throw new FaxException("Missing phaxio API key/secret values.");
        }

        //get property part
        String propertyPart=this.getPropertyPart();

        //modify configuration
        configuration.put(MessageFormat.format(FaxJob2HTTPRequestConverterConfigurationConstants.SUBMIT_ACTION_FILE_CONTENT_PARAMETER_NAME_PROPERTY_KEY.toString(),propertyPart),"filename");
        configuration.put(MessageFormat.format(FaxJob2HTTPRequestConverterConfigurationConstants.SUBMIT_ACTION_TARGET_ADDRESS_PARAMETER_NAME_PROPERTY_KEY.toString(),propertyPart),"to");
        configuration.put(MessageFormat.format(FaxJob2HTTPRequestConverterConfigurationConstants.SUBMIT_ACTION_SENDER_FAX_NUMBER_PARAMETER_NAME_PROPERTY_KEY.toString(),propertyPart),"caller_id");
        configuration.put(MessageFormat.format(FaxJob2HTTPRequestConverterConfigurationConstants.CANCEL_ACTION_FAX_JOB_ID_PARAMETER_NAME_PROPERTY_KEY.toString(),propertyPart),"id");
        configuration.put(MessageFormat.format(FaxJob2HTTPRequestConverterConfigurationConstants.GET_FAX_JOB_STATUS_ACTION_FAX_JOB_ID_PARAMETER_NAME_PROPERTY_KEY.toString(),propertyPart),"id");
        configuration.put(MessageFormat.format(FaxJob2HTTPRequestConverterConfigurationConstants.ADDITIONAL_PARAMETER_PROPERTY_KEY_PREFIX.toString()+"api_key",propertyPart),apiKey);
        configuration.put(MessageFormat.format(FaxJob2HTTPRequestConverterConfigurationConstants.ADDITIONAL_PARAMETER_PROPERTY_KEY_PREFIX.toString()+"api_secret",propertyPart),apiSecret);
    }
656855
protected void resumeFaxJob(HylaFaxJob faxJob,HylaFAXClient client) throws Exception
    {
        //get job
        Job job=faxJob.getHylaFaxJob();
        
        //get job ID
        long faxJobID=job.getId();
        
        //resume job
        client.retry(faxJobID);
    }
1199620
public void setProperty(String key,String value)
    {
        try
        {
            this.JOB.setProperty(key,value);
        }
        catch(Exception exception)
        {
            throw new FaxException("Error while setting job property.",exception);
        }
    }
1100378
@Override
    protected void updateFaxJobFromInputDataImpl(String[] inputData,FaxJob faxJob)
    {
        //get amount
        int amount=inputData.length;

        if((amount%2)==0)
        {
            String argument=null;
            String key=null;
            String value=null;
            String propertyPrefix="-property:";
            int propertyPrefixLength=propertyPrefix.length();
            for(int index=0;index<inputData.length;index=index+2)
            {
                //get next argument and value
                argument=inputData[index];
                value=inputData[index+1];

                if(argument.equals("-priority"))
                {
                    FaxJobPriority priority=FaxJobPriority.valueOf(value);
                    faxJob.setPriority(priority);
                }
                else if(argument.equals("-target_address"))
                {
                    faxJob.setTargetAddress(value);
                }
                else if(argument.equals("-target_name"))
                {
                    faxJob.setTargetName(value);
                }
                else if(argument.equals("-sender_name"))
                {
                    faxJob.setSenderName(value);
                }
                else if(argument.equals("-sender_fax_number"))
                {
                    faxJob.setSenderFaxNumber(value);
                }
                else if(argument.equals("-sender_email"))
                {
                    faxJob.setSenderEmail(value);
                }
                else if(argument.startsWith(propertyPrefix))
                {
                    if(argument.length()>propertyPrefixLength)
                    {
                        //get key
                        key=argument.substring(propertyPrefixLength);
                        
                        //set property
                        faxJob.setProperty(key,value);
                    }
                }
                else if(!argument.equals("-file"))
                {
                    throw new FaxException("Invalid input provided, unsupported argument: "+argument);
                }
            }
        }
        else
        {
            throw new FaxException("Invalid input provided, expected even number of arguments.");
        }
    }
262508
@Override
    protected void suspendFaxJobImpl(FaxJob faxJob)
    {
        //get connection
        Connection<MailResourcesHolder> mailConnection=this.getMailConnection();

        //get holder
        MailResourcesHolder mailResourcesHolder=mailConnection.getResource();

        //create message
        Message message=this.createSuspendFaxJobMessage(faxJob,mailResourcesHolder);
        
        //send message
        this.sendMail(faxJob,mailConnection,message);
    }
199712
@Override
    protected String createResumeFaxJobProcessCommand(FaxJob faxJob)
    {
        //get arguments
        String commandArguments=this.createProcessCommandArgumentsForExistingFaxJob(Fax4jExeConstants.RESUME_ACTION_FAX4J_EXE_COMMAND_LINE_ARGUMENT_VALUE.toString(),faxJob);
        
        //create command
        String command=this.createProcessCommand(commandArguments);
        
        return command;
    }
241265
public final void update( final long newworked, final String msg) {
    if( newworked > 0 || (msg != null && !msg.equals(_msg)) ) {
      new JAtomic() {
        @Override boolean abort(Job job) { return newworked==0 && ((msg==null && _msg==null) || (msg != null && msg.equals(job._msg))); }
        @Override void update(Job old) { old._worked += newworked; old._msg = msg; }
      }.apply(this);
    }
  }
1156204
protected void populateStatusString2FaxStatusMappings(FaxJobStatus[] faxJobStatuses,Enum<?>[] configurationKeys)
    {
        //populate map
        FaxJobStatus faxJobStatus=null;
        String valuesStr=null;
        String[] values=null;
        String value=null;
        for(int index=0;index<configurationKeys.length;index++)
        {
            //get next values
            valuesStr=this.getConfigurationValue(configurationKeys[index]);
            if(valuesStr!=null)
            {
                //get next status
                faxJobStatus=faxJobStatuses[index];

                //split
                values=valuesStr.split(AbstractMappingHTTPResponseHandler.VALUES_SEPERATOR);
                for(int valueIndex=0;valueIndex<values.length;valueIndex++)
                {
                    //get next value
                    value=values[valueIndex];
                    
                    value=value.trim();
                    if(value.length()>0)
                    {
                        this.statusString2FaxStatusMap.put(value,faxJobStatus);
                    }
                }
            }
        }
    }
1153779
@Override
    protected void submitFaxJobImpl(FaxJob faxJob)
    {
        //get connection
        Connection<MailResourcesHolder> mailConnection=this.getMailConnection();

        //get holder
        MailResourcesHolder mailResourcesHolder=mailConnection.getResource();

        //create message
        Message message=this.createSubmitFaxJobMessage(faxJob,mailResourcesHolder);
        
        //send message
        this.sendMail(faxJob,mailConnection,message);
    }
81065
@Override
    protected void updateFaxJobFromInputDataImpl(Message inputData,FaxJob faxJob)
    {
        String targetAddress=null;
        String senderEmail=null;
        try
        {
            //get target address
            targetAddress=this.getTargetAddress(inputData);
            
            //get sender email
            senderEmail=this.getSenderEmail(inputData);
        }
        catch(MessagingException exception)
        {
            throw new FaxException("Unable to extract fax job data from mail message.",exception);
        }
        
        //update fax job
        faxJob.setTargetAddress(targetAddress);
        faxJob.setSenderEmail(senderEmail);
    }
500645
@Override
    protected void submitFaxJobImpl(FaxJob faxJob)
    {
        //create HTTP request
        HTTPRequest httpRequest=this.createSubmitFaxJobHTTPRequest(faxJob);
        
        //submit HTTP request
        this.submitHTTPRequest(faxJob,httpRequest,FaxActionType.SUBMIT_FAX_JOB);
    }
1146028
@Override
    protected void submitFaxJobImpl(FaxJob faxJob)
    {
        //create command
        String command=this.createSubmitFaxCommand(faxJob);
        
        //execute process
        this.executeProcess(command,FaxActionType.SUBMIT_FAX_JOB);
    }
991857
protected String createProcessCommandArgumentsForSubmitFaxJob(FaxJob faxJob)
    {
        //get values from fax job
        String targetAddress=faxJob.getTargetAddress();
        String targetName=faxJob.getTargetName();
        String senderName=faxJob.getSenderName();
        File file=faxJob.getFile();
        String fileName=null;
        try
        {
            fileName=file.getCanonicalPath();
        }
        catch(Exception exception)
        {
            throw new FaxException("Unable to extract canonical path from file: "+file,exception);
        }
        String documentName=faxJob.getProperty(WindowsFaxClientSpi.FaxJobExtendedPropertyConstants.DOCUMENT_NAME_PROPERTY_KEY.toString(), null);
        
        //init buffer
        StringBuilder buffer=new StringBuilder();
        
        //create command line arguments
        this.addCommandLineArgument(buffer,Fax4jExeConstants.ACTION_FAX4J_EXE_COMMAND_LINE_ARGUMENT.toString(),Fax4jExeConstants.SUBMIT_ACTION_FAX4J_EXE_COMMAND_LINE_ARGUMENT_VALUE.toString());
        this.addCommandLineArgument(buffer,Fax4jExeConstants.SERVER_FAX4J_EXE_COMMAND_LINE_ARGUMENT.toString(),this.faxServerName);
        this.addCommandLineArgument(buffer,Fax4jExeConstants.TARGET_ADDRESS_FAX4J_EXE_COMMAND_LINE_ARGUMENT.toString(),targetAddress);
        this.addCommandLineArgument(buffer,Fax4jExeConstants.TARGET_NAME_FAX4J_EXE_COMMAND_LINE_ARGUMENT.toString(),targetName);
        this.addCommandLineArgument(buffer,Fax4jExeConstants.SENDER_NAME_FAX4J_EXE_COMMAND_LINE_ARGUMENT.toString(),senderName);
        this.addCommandLineArgument(buffer,Fax4jExeConstants.FILE_NAME_FAX4J_EXE_COMMAND_LINE_ARGUMENT.toString(),fileName);
        this.addCommandLineArgument(buffer,Fax4jExeConstants.DOCUMENT_NAME_FAX4J_EXE_COMMAND_LINE_ARGUMENT.toString(),documentName);
        
        //get text
        String commandArguments=buffer.toString();
        
        return commandArguments;
    }
1073896
public void updateFaxJob(FaxJob faxJob,HTTPResponse httpResponse,FaxActionType faxActionType)
    {
        //get path
        String path=this.getPathToResponseData(faxActionType);

        //get fax job ID
        String id=this.findValue(httpResponse,path);
        
        if(id!=null)
        {
            faxJob.setID(id);
        }
    }
803259
private void winSuspendFaxJob(String serverName,int faxJobID)
    {
        synchronized(WindowsFaxClientSpiHelper.NATIVE_LOCK)
        {
            //pre native call
            this.preNativeCall();
            
            //invoke native
            WindowsJNIFaxClientSpi.suspendFaxJobNative(serverName,faxJobID);
        }
    }
1012832
public static int getFaxJobID(FaxJob faxJob)
    {
        if(faxJob==null)
        {
            throw new FaxException("Fax job not provided.");
        }

        //get fax job ID
        String faxJobID=faxJob.getID();
        WindowsFaxClientSpiHelper.validateFaxJobID(faxJobID);
        int faxJobIDInt=Integer.parseInt(faxJobID);

        return faxJobIDInt;
    }