/* * This code is distributed under The GNU Lesser General Public License (LGPLv3) * Please visit GNU site for LGPLv3 http://www.gnu.org/copyleft/lesser.html * * Copyright Denis Pavlov 2009 * Web: http://www.genericdtoassembler.org * SVN: https://svn.code.sf.net/p/geda-genericdto/code/trunk/ * SVN (mirror): http://geda-genericdto.googlecode.com/svn/trunk/ */ package com.inspiresoftware.lib.dto.geda.exception; /** * Denotes exception for case when biding between dto and entity field is not matching. * * @author denispavlov * * @since 1.1.2 */ public class AnnotationValidatingBindingException extends GeDAException { private static final long serialVersionUID = 20110609L; private final String dtoField; private final String dtoBinder; private final String dtoBinderClass; private final String entityField; private final String entityBinder; private final String entityBinderClass; private final boolean dtoRead; /** * @param dtoField dto field * @param dtoBinder dto reader/writer class name * @param dtoBinderClass class of the return type/parameter for dto reader/writer * @param entityField entity field * @param entityBinder entity reader/writer class name * @param entityBinderClass class of the return type/parameter for entity reader/writer * @param dtoRead true if dto binder is a reader, false if it is a writer */ public AnnotationValidatingBindingException( final String dtoField, final String dtoBinder, final String dtoBinderClass, final String entityField, final String entityBinder, final String entityBinderClass, final boolean dtoRead) { super("Type mismatch is detected for: DTO " + dtoField + (dtoRead ? " read" : " write") + " {" + dtoBinder + "[" + dtoBinderClass + "]} " + "and Entity " + entityField + (dtoRead ? " write" : " read") + " {" + entityBinder + "[" + entityBinderClass + "]}. Consider using a converter."); this.dtoBinder = dtoBinder; this.dtoBinderClass = dtoBinderClass; this.entityBinder = entityBinder; this.entityBinderClass = entityBinderClass; this.dtoField = dtoField; this.entityField = entityField; this.dtoRead = dtoRead; } /** * @return dto reader/writer */ public String getDtoBinder() { return dtoBinder; } /** * @return dto reader/writer return type/parameter */ public String getDtoBinderClass() { return dtoBinderClass; } /** * @return entity reader/writer */ public String getEntityBinder() { return entityBinder; } /** * @return entity reader/writer return type/parameter */ public String getEntityBinderClass() { return entityBinderClass; } /** * @return dto field */ public String getDtoField() { return dtoField; } /** * @return entity field */ public String getEntityField() { return entityField; } /** * @return true if {@link #dtoBinder} is a reader, false if is a writer */ public boolean isDtoRead() { return dtoRead; } }