All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hp.autonomy.frontend.configuration.UsernameAndPassword Maven / Gradle / Ivy

/*
 * Copyright 2013-2015 Hewlett-Packard Development Company, L.P.
 * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
 */

package com.hp.autonomy.frontend.configuration;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import lombok.EqualsAndHashCode;
import lombok.Getter;

/**
 * Configuration object representing a username and password combination
 */
@Getter
@EqualsAndHashCode
@JsonDeserialize(builder = UsernameAndPassword.Builder.class)
public class UsernameAndPassword {

    private final String username;
    private final String password;

    public UsernameAndPassword(final String username, final String password) {
        this.username = username;
        this.password = password;
    }

    private UsernameAndPassword(final Builder builder) {
        this.username = builder.username;
        this.password = builder.password;
    }

    public UsernameAndPassword merge(final UsernameAndPassword usernameAndPassword) {
        if(usernameAndPassword != null) {
            final Builder builder = new Builder();

            builder.setUsername(username == null ? usernameAndPassword.username : this.username);
            builder.setUsername(password == null ? usernameAndPassword.password : this.password);

            return builder.build();
        }
        else {
            return this;
        }
    }

    @JsonPOJOBuilder(withPrefix = "set")
    public static class Builder {
        private String username;
        private String password;

        public Builder setPassword(final String password) {
            this.password = password;
            return this;
        }

        public Builder setUsername(final String username) {
            this.username = username;
            return this;
        }

        public UsernameAndPassword build() {
            return new UsernameAndPassword(this);
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy