blob: 0b5f8a7c17f3c9e103ed2e88793232c08a3bb5b5 [file] [log] [blame]
/*
* Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation
//
package org.eclipse.persistence.jpa.jpql.tools.model;
import org.eclipse.persistence.jpa.jpql.tools.model.query.StateObject;
/**
* The default implementation of {@link Problem}.
*
* @version 2.4
* @since 2.4
* @author Pascal Filion
*/
@SuppressWarnings("nls")
public final class DefaultProblem implements Problem {
/**
* A list of arguments that can be used to complete the message or an empty list if no additional
* information is necessary.
*/
private String[] arguments;
/**
* The key used to retrieve the localized message describing the problem found with the current
* state of this {@link StateObject}.
*/
private String messageKey;
/**
* The location where the problem was found.
*/
private StateObject stateObject;
/**
* Creates a new <code>DefaultProblem</code>.
*
* @param stateObject The {@link StateObject} where the problem was found
* @param messageKey The key used to retrieve the localized message describing the problem found
* with the current state of this {@link StateObject}
* @param arguments A list of arguments that can be used to complete the message or an empty list
* if no additional information is necessary
*/
public DefaultProblem(StateObject stateObject, String messageKey, String[] arguments) {
super();
this.stateObject = stateObject;
this.messageKey = messageKey;
this.arguments = arguments;
}
@Override
public String[] getMessageArguments() {
return arguments;
}
@Override
public String getMessageKey() {
return messageKey;
}
@Override
public StateObject getStateObject() {
return stateObject;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("StateObject=");
sb.append(stateObject);
sb.append(", messageKey=");
sb.append(messageKey);
return sb.toString();
}
}