001    package ezvcard;
002    
003    /*
004     Copyright (c) 2013, Michael Angstadt
005     All rights reserved.
006    
007     Redistribution and use in source and binary forms, with or without
008     modification, are permitted provided that the following conditions are met: 
009    
010     1. Redistributions of source code must retain the above copyright notice, this
011     list of conditions and the following disclaimer. 
012     2. Redistributions in binary form must reproduce the above copyright notice,
013     this list of conditions and the following disclaimer in the documentation
014     and/or other materials provided with the distribution. 
015    
016     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
017     ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
018     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
019     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
020     ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
021     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
022     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
023     ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
024     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
025     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
026     */
027    
028    /**
029     * Represents a warning.
030     * @author Michael Angstadt
031     */
032    public class Warning {
033            private final Integer code;
034            private final String message;
035    
036            /**
037             * Creates a new warning.
038             * @param message the warning message
039             */
040            public Warning(String message) {
041                    this(message, null);
042            }
043    
044            /**
045             * Creates a new warning whose message text is defined in the resource
046             * bundle.
047             * @param code the message code
048             * @param args the message arguments
049             */
050            public Warning(int code, Object... args) {
051                    this(Messages.INSTANCE.getValidationWarning(code, args), code);
052            }
053    
054            /**
055             * Creates a new warning.
056             * @param message the warning message
057             * @param code the message code
058             */
059            public Warning(String message, Integer code) {
060                    this.code = code;
061                    this.message = message;
062            }
063    
064            /**
065             * Gets the warning code.
066             * @return the warning code or null if no code was specified
067             */
068            public Integer getCode() {
069                    return code;
070            }
071    
072            /**
073             * Gets the warning message
074             * @return the warning message
075             */
076            public String getMessage() {
077                    return message;
078            }
079    
080            @Override
081            public String toString() {
082                    if (code == null) {
083                            return message;
084                    }
085                    return "(" + code + ") " + message;
086            }
087    }