/** * ****************************************************************************\ * |* Copyright © 2012 LB-Stuff *| |* All rights reserved. *| |* *| |* * Redistribution and use in source and binary forms, with or without *| |* * modification, are permitted provided that the following conditions *| |* are * met: *| |* *| |* 1. Redistributions of source code must retain the above * copyright *| |* notice, this list of conditions and the following disclaimer. * *| |* *| |* 2. Redistributions in binary form must reproduce the above * copyright *| |* notice, this list of conditions and the following disclaimer * in the *| |* documentation and/or other materials provided with the * distribution. *| |* *| |* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND * CONTRIBUTORS "AS IS" AND *| |* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, * BUT NOT LIMITED TO, THE *| |* IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE *| |* ARE DISCLAIMED. IN NO EVENT SHALL THE * AUTHOR OR CONTRIBUTORS BE LIABLE *| |* FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL *| |* DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS *| |* OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) *| |* HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT *| |* LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY *| |* OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF *| |* SUCH DAMAGE. *| * \***************************************************************************** */ package jo.sm.plugins.ship.imp.nbt; import java.util.List; import java.util.ArrayList; import java.util.Arrays; /** * The generic "this data is wonky" exception. * * @author LB */ @SuppressWarnings("serial") public class FormatException extends Exception { /** * The tag(s) that caused the problem, if any. */ List<Tag> t = new ArrayList<>(); /** * Instantiates this exception with the given message. * * @param msg The message to be seen with this exception. * @param tags The tag(s) (if any) that were malformed. */ public FormatException(String msg, Tag... tags) { super(msg); t.addAll(Arrays.asList(tags)); } /** * Instantiates this exception with the given message and cause. * * @param msg The message to be seen with this exception. * @param cause The exception that caused the trouble in the first place. * @param tags The tag(s) (if any) that were malformed. */ public FormatException(String msg, Throwable cause, Tag... tags) { super(msg, cause); t.addAll(Arrays.asList(tags)); } /** * Instantiates this exception with just the causing exception. * * @param cause The exception that caused the trouble in the first place. * @param tags The tag(s) (if any) that were malformed. */ public FormatException(Throwable cause, Tag... tags) { super(cause); t.addAll(Arrays.asList(tags)); } /** * Returns the tag(s) (if any) that were malformed. * * @return The tag(s) (if any) that were malformed. */ public Tag[] Tags() { return t.toArray(new Tag[0]); } /** * Adds tags to the list of the malformed tags. * * @param tags The tags that were malformed. */ public void Add(Tag... tags) { t.addAll(Arrays.asList(tags)); } }