| /******************************************************************************* |
| * Copyright (c) 2001, 2012 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.validation.internal.provisional.core; |
| |
| import java.util.List; |
| |
| /* |
| * CCM - Reporter is now passed locale-independent messages. |
| * Messages should only be translated to a locale upon access. |
| * Or in special locale-dependent reporter implementations (console logger). |
| */ |
| |
| /** |
| * The interface used by IValidator's to report messages. The implementation of the IReporter could |
| * simply log the messages to stdout, a file, or retain them in a buffer for later access by a user |
| * interface. |
| * <p> |
| * Reporter implementations should keep non-localized versions of their messages. |
| * </p> |
| * <p> |
| * Any messages which need to be displayed to the user are done through this class, and if the user |
| * cancels the current function, this class is the one which registers the cancellation. |
| * </p> |
| * <p> |
| * The IReporter instance is created at the time validation begins and ends when validation is complete. |
| * There is only one IReporter instance created for all validators that are run on a IResource. The IResource |
| * provides a way to get messages put out each validator and add and delete messages for one validator |
| * at a time. |
| */ |
| public interface IReporter { |
| /** |
| * <p> |
| * Add a locale-independent validation message. It will be displayed later, with all of the |
| * other validation messages. |
| * </p> |
| * <p> |
| * The IValidator passed in is needed for incremental validation (when a message needs to be |
| * removed, one validator should not remove messages entered by another validator.) The |
| * validator is also queried for information about its resource bundle, to enable support for |
| * localization of messages in a client-server environment. |
| * </p> |
| * <p> |
| * Both parameters must not be null. |
| * </p> |
| * @param origin |
| * The validator which is the source of the message. |
| * @param message |
| * A message to be reported. |
| */ |
| void addMessage(IValidator origin, IMessage message); |
| |
| /** |
| * Show a text representation of this message, formatted in the default |
| * Locale, to the user immediately. This message indicates which subtask is |
| * currently being processed. The message is not stored. The subtask message |
| * in this context is the subtask in a IProgressMontior |
| * <p> |
| * Both parameters must not be null. |
| * </p> |
| * |
| * @param validator |
| * The validator issuing the subtask message. |
| * @param message |
| * The message to be displayed to the user. |
| * |
| */ |
| void displaySubtask(IValidator validator, IMessage message); |
| |
| /** |
| * @return the message access interface to this reporter, or null if message access is not |
| * supported. |
| * |
| */ |
| List getMessages(); |
| |
| /** |
| * Return true if the user canceled validation, and false otherwise. This method should be |
| * called by IValidators periodically, because no event is fired to notify IValidators that the |
| * user canceled validation. If a validator does not check this method, a cancellation request |
| * is ignored. |
| * |
| * @return true if the user canceled validation, and false otherwise. |
| * |
| */ |
| boolean isCancelled(); |
| |
| /** |
| * Remove all validation messages entered by the identified validator. This method is provided |
| * for incremental validation. |
| * <p> |
| * The IValidator parameter must not be null. |
| * </p> |
| * @param origin |
| * Originator validator of the message. |
| */ |
| void removeAllMessages(IValidator origin); |
| |
| /** |
| * Remove all validation messages, entered by the identified validator, |
| * pertaining to the Object provided. This method is provided for |
| * incremental validation. <br> |
| * <br> |
| * If <code>object</code> is null, then this method should remove all |
| * messages owned by the validator. (i.e., the same behaviour as the |
| * removeAllMessages(IValidator) method.) <br> |
| * <br> |
| * <p> |
| * The IValidator parameter must not be null. |
| * </p> |
| * |
| * @param origin |
| * Originator validator of the message. |
| * @param object |
| * Object to which the message belongs. Object is the target object |
| * that was set on the IMessage when adding the message as problem |
| * marker. |
| * |
| */ |
| void removeAllMessages(IValidator origin, Object object); |
| |
| /** |
| * To support removal of a subset of validation messages, an IValidator may |
| * assign group names to IMessages. An IMessage subset will be identified by |
| * the name of its group. This method will remove only the IMessage's that |
| * are in the group identified by groupName. |
| * <p> |
| * The IValidator parameter must not be null. |
| * </p> |
| * <p> |
| * If <code>object</code> is null, then this method should remove all |
| * messages owned by the validator. (i.e., the same behaviour as the |
| * removeAllMessages(IValidator) method.) |
| * </p> |
| * <p> |
| * If groupName is null, that's the same as no group (i.e., the same |
| * behaviour as the <code>removeAllMessages(IValidator, Object)</code> |
| * method.) |
| * </p> |
| * |
| * @param validator |
| * Originator validator of the message. |
| * @param obj |
| * Object to which the message belongs. |
| * @param groupName |
| * Name of the group to which the message belongs. |
| */ |
| void removeMessageSubset(IValidator validator, Object obj, String groupName); |
| } |