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

nablarch.test.core.entity.MessageComparedByContent Maven / Gradle / Ivy

The newest version!
package nablarch.test.core.entity;

import nablarch.core.message.Message;
import nablarch.core.message.MessageLevel;

import static nablarch.core.util.Builder.concat;

/**
 * {@link Message}同士の比較をメッセージ本文で実行するためのクラス。
 */
public class MessageComparedByContent extends Message {

    /**
     * メッセージ
     */
    private final Message message;

    /**
     * コンストラクタ。
     *
     * @param message メッセージ
     */
    public MessageComparedByContent(Message message) {
        super(null, null);
        this.message = message;
    }

    @Override
    public MessageLevel getLevel() {
        return message.getLevel();
    }

    @Override
    public String formatMessage() {
        return message.formatMessage();
    }

    /**
     * このオブジェクトと等価であるかを返す。
     *
     * 

* {@code o}が以下の条件を全て満たす場合{@code true}を返す。 *

    *
  • {@link Message}もしくはそれを継承した型であること
  • *
  • メッセージレベルが同値であること。
  • *
  • メッセージ本文が同値であること。
  • *
* * @return このオブジェクトと等価である場合{@code true} */ @Override public boolean equals(Object o) { if (o == this) { return true; // 同一インスタンス } if (!(o instanceof Message)) { return false; // クラスが異なる } Message another = (Message) o; if (message.getLevel() != another.getLevel()) { return false; // レベルが異なる } return message.formatMessage().equals(another.formatMessage()); } /** * このオブジェクトのハッシュコード値を返す。 * *

* 委譲先のメッセージのハッシュコード値を返却するのみ。 * * @return ハッシュコード値。 */ @Override public int hashCode() { return message != null ? message.hashCode() : 0; } /** * このオブジェクトの文字列表現を返す。 * * @return メッセージ本文とエラーレベルを記載した文字列 */ @Override public String toString() { return concat( "messageContent=[", message.formatMessage(), "] ", "errorLevel=[", message.getLevel(), "]"); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy