src/main/java/com/github/mikesafonov/smpp/core/ClientFactory.java
public SenderClient standardSender(@NotBlank String name, @NotNull SmppProperties.Defaults defaults,
                                       @NotNull SmppProperties.SMSC smsc,
                                       @NotNull TypeOfAddressParser typeOfAddressParser) {
        validateName(name);
        requireNonNull(defaults);
        requireNonNull(smsc);
        requireNonNull(typeOfAddressParser);

        boolean loggingBytes = getOrDefault(smsc.getLoggingBytes(), defaults.isLoggingBytes());
        boolean loggingPdu = getOrDefault(smsc.getLoggingPdu(), defaults.isLoggingPdu());
        int windowsSize = getOrDefault(smsc.getWindowSize(), defaults.getWindowSize());
        boolean ucs2Only = getOrDefault(smsc.getUcs2Only(), defaults.isUcs2Only());
        long requestTimeout = getOrDefault(smsc.getRequestTimeout(), defaults.getRequestTimeout()).toMillis();
        int maxTry = getOrDefault(smsc.getMaxTry(), defaults.getMaxTry());

        TransmitterConfiguration transmitterConfiguration = new TransmitterConfiguration(name, smsc.getCredentials(), loggingBytes, loggingPdu, windowsSize);
        DefaultSmppClient client = new DefaultSmppClient();
        return new StandardSenderClient(transmitterConfiguration, client, maxTry,
                ucs2Only, requestTimeout, new MessageBuilder(typeOfAddressParser));
    }
/**
     * Creates {@link StandardSenderClient} with name {@code name} and {@link TypeOfAddressParser} {@code typeOfAddressParser},
     * configured with properties from {@code smsc} or {@code defaults}
     *
     * @param name                name of client
     * @param defaults            default smpp properties
     * @param smsc                smpp properties
     * @param typeOfAddressParser address parser
     * @return standard sender client
     */
Creates  StandardSenderClient with name  name and  TypeOfAddressParser  typeOfAddressParser,
configured with properties from  smsc or  defaults


Creates StandardSenderClient with name name and TypeOfAddressParser typeOfAddressParser configured with properties from smsc or defaults
public SenderClient standardSender(@NotBlank String name, @NotNull SmppProperties.Defaults defaults,
                                       @NotNull SmppProperties.SMSC smsc,
                                       @NotNull TypeOfAddressParser typeOfAddressParser) {
        validateName(name);
        requireNonNull(defaults);
        requireNonNull(smsc);
        requireNonNull(typeOfAddressParser);
        boolean loggingBytes = getOrDefault(smsc.getLoggingBytes(), defaults.isLoggingBytes());
        boolean loggingPdu = getOrDefault(smsc.getLoggingPdu(), defaults.isLoggingPdu());
        int windowsSize = getOrDefault(smsc.getWindowSize(), defaults.getWindowSize());
        boolean ucs2Only = getOrDefault(smsc.getUcs2Only(), defaults.isUcs2Only());
        long requestTimeout = getOrDefault(smsc.getRequestTimeout(), defaults.getRequestTimeout()).toMillis();
        int maxTry = getOrDefault(smsc.getMaxTry(), defaults.getMaxTry());
        TransmitterConfiguration transmitterConfiguration = new TransmitterConfiguration(name, smsc.getCredentials(), loggingBytes, loggingPdu, windowsSize);
        DefaultSmppClient client = new DefaultSmppClient();
        return new StandardSenderClient(transmitterConfiguration, client, maxTry,
                ucs2Only, requestTimeout, new MessageBuilder(typeOfAddressParser));
    }
public SenderClient standardSender ( @ NotBlank String name , @ NotNull SmppProperties . Defaults defaults , @ NotNull SmppProperties . SMSC smsc , @ NotNull TypeOfAddressParser typeOfAddressParser ) { validateName ( name ) ; requireNonNull ( defaults ) ; requireNonNull ( smsc ) ; requireNonNull ( typeOfAddressParser ) ; boolean loggingBytes = getOrDefault ( smsc . getLoggingBytes ( ) , defaults . isLoggingBytes ( ) ) ; boolean loggingPdu = getOrDefault ( smsc . getLoggingPdu ( ) , defaults . isLoggingPdu ( ) ) ; int windowsSize = getOrDefault ( smsc . getWindowSize ( ) , defaults . getWindowSize ( ) ) ; boolean ucs2Only = getOrDefault ( smsc . getUcs2Only ( ) , defaults . isUcs2Only ( ) ) ; long requestTimeout = getOrDefault ( smsc . getRequestTimeout ( ) , defaults . getRequestTimeout ( ) ) . toMillis ( ) ; int maxTry = getOrDefault ( smsc . getMaxTry ( ) , defaults . getMaxTry ( ) ) ; TransmitterConfiguration transmitterConfiguration = new TransmitterConfiguration ( name , smsc . getCredentials ( ) , loggingBytes , loggingPdu , windowsSize ) ; DefaultSmppClient client = new DefaultSmppClient ( ) ; return new StandardSenderClient ( transmitterConfiguration , client , maxTry , ucs2Only , requestTimeout , new MessageBuilder ( typeOfAddressParser ) ) ; }
Creates {@link StandardSenderClient} with name {@code name} and {@link TypeOfAddressParser} {@code typeOfAddressParser},
 configured with properties from {@code smsc} or {@code defaults}
Creates { @link StandardSenderClient } with name { @code name } and { @link TypeOfAddressParser } { @code typeOfAddressParser } configured with properties from { @code smsc } or { @code defaults }