001 /*
002 * JBoss, Home of Professional Open Source.
003 * Copyright 2008, Red Hat Middleware LLC, and individual contributors
004 * as indicated by the @author tags. See the copyright.txt file in the
005 * distribution for a full listing of individual contributors.
006 *
007 * This is free software; you can redistribute it and/or modify it
008 * under the terms of the GNU Lesser General Public License as
009 * published by the Free Software Foundation; either version 2.1 of
010 * the License, or (at your option) any later version.
011 *
012 * This software is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * Lesser General Public License for more details.
016 *
017 * You should have received a copy of the GNU Lesser General Public
018 * License along with this software; if not, write to the Free
019 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
021 */
022 package org.jboss.dna.graph.properties;
023
024 /**
025 * @author Randall Hauch
026 */
027 public class ValueFormatException extends RuntimeException {
028
029 /**
030 */
031 private static final long serialVersionUID = 1L;
032
033 private final Object value;
034 private final PropertyType targetType;
035
036 /**
037 * @param value the value that was not able to be converted
038 * @param targetType the {@link PropertyType} to which the value was being converted
039 */
040 public ValueFormatException( Object value,
041 PropertyType targetType ) {
042 this.value = value;
043 this.targetType = targetType;
044 }
045
046 /**
047 * @param value the value that was not able to be converted
048 * @param targetType the {@link PropertyType} to which the value was being converted
049 * @param message the message
050 */
051 public ValueFormatException( Object value,
052 PropertyType targetType,
053 String message ) {
054 super(message);
055 this.value = value;
056 this.targetType = targetType;
057 }
058
059 /**
060 * @param value the value that was not able to be converted
061 * @param targetType the {@link PropertyType} to which the value was being converted
062 * @param cause the cause of the exception
063 */
064 public ValueFormatException( Object value,
065 PropertyType targetType,
066 Throwable cause ) {
067 super(cause);
068 this.value = value;
069 this.targetType = targetType;
070 }
071
072 /**
073 * @param value the value that was not able to be converted
074 * @param targetType the {@link PropertyType} to which the value was being converted
075 * @param message the message
076 * @param cause the cause of the exception
077 */
078 public ValueFormatException( Object value,
079 PropertyType targetType,
080 String message,
081 Throwable cause ) {
082 super(message, cause);
083 this.value = value;
084 this.targetType = targetType;
085 }
086
087 /**
088 * {@inheritDoc}
089 */
090 @Override
091 public String toString() {
092 return super.toString();
093 }
094
095 /**
096 * Get the {@link PropertyType} to which the {@link #getValue() value} was being converted.
097 *
098 * @return the target type
099 */
100 public PropertyType getTargetType() {
101 return targetType;
102 }
103
104 /**
105 * Get the original value that was being converted.
106 *
107 * @return the value
108 */
109 public Object getValue() {
110 return value;
111 }
112 }