/* * Copyright 2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sun.org.apache.xerces.internal.impl.io; import java.io.CharConversionException; import java.util.Locale; import com.sun.org.apache.xerces.internal.util.MessageFormatter; /** *

Signals that a malformed byte sequence was detected * by a java.io.Reader that decodes bytes * of a given encoding into characters.

* * @author Michael Glavassevich, IBM * * @version $Id: MalformedByteSequenceException.java,v 1.1.1.1 2004/05/04 10:22:02 vk112360 Exp $ */ public class MalformedByteSequenceException extends CharConversionException { // // Data // /** message formatter **/ private MessageFormatter fFormatter; /** locale for error message **/ private Locale fLocale; /** error domain **/ private String fDomain; /** key for the error message **/ private String fKey; /** replacement arguements for the error message **/ private Object[] fArguments; /** message text for this message, initially null **/ private String fMessage; // // Constructors // /** * Constructs a MalformedByteSequenceException with the given * parameters which may be passed to an error reporter to * generate a localized string for this exception. * * @param formatter The MessageFormatter used for building the * message text for this exception. * @param locale The Locale for which messages are to be reported. * @param domain The error domain. * @param key The key of the error message. * @param arguments The replacement arguments for the error message, * if needed. */ public MalformedByteSequenceException(MessageFormatter formatter, Locale locale, String domain, String key, Object[] arguments) { fFormatter = formatter; fLocale = locale; fDomain = domain; fKey = key; fArguments = arguments; } // (MessageFormatter, Locale, String, String, Object[]) // // Public methods // /** *

Returns the error domain of the error message.

* * @return the error domain */ public String getDomain () { return fDomain; } // getDomain /** *

Returns the key of the error message.

* * @return the error key of the error message */ public String getKey () { return fKey; } // getKey() /** *

Returns the replacement arguments for the error * message or null if none exist.

* * @return the replacement arguments for the error message * or null if none exist */ public Object[] getArguments () { return fArguments; } // getArguments(); /** *

Returns the localized message for this exception.

* * @return the localized message for this exception. */ public String getMessage() { if (fMessage == null) { fMessage = fFormatter.formatMessage(fLocale, fKey, fArguments); // The references to the message formatter and locale // aren't needed anymore so null them. fFormatter = null; fLocale = null; } return fMessage; } // getMessage() } // MalformedByteSequenceException