/* * 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.assembler.meta; import com.inspiresoftware.lib.dto.geda.adapter.BeanFactory; import com.inspiresoftware.lib.dto.geda.exception.BeanFactoryNotFoundException; import com.inspiresoftware.lib.dto.geda.exception.BeanFactoryUnableToCreateInstanceException; /** * Basic Meta data for pipes. * * @author DPavlov */ public interface PipeMetadata { /** * @return dtoFieldName key for accessing field on DTO object */ String getDtoFieldName(); /** * @return entityFieldName key for accessing field on Entity bean */ String getEntityFieldName(); /** * @return read only meta */ boolean isReadOnly(); /** * @return dtoBeanKey key for constructing DTO bean */ String getDtoBeanKey(); /** * @return entityBeanKey key for constructing Entity bean */ String getEntityBeanKey(); /** * @param factory dto bean factory * @return new instance of DTO bean * @throws BeanFactoryNotFoundException if no factory is specified for creating bean instance * @throws BeanFactoryUnableToCreateInstanceException if bean cannot be create using factory provided */ Object newDtoBean(BeanFactory factory) throws BeanFactoryNotFoundException, BeanFactoryUnableToCreateInstanceException; /** * @param factory entity bean factory * @return new instance of Entity bean * @throws BeanFactoryNotFoundException if no factory is specified for creating bean instance * @throws BeanFactoryUnableToCreateInstanceException if bean cannot be create using factory provided */ Object newEntityBean(BeanFactory factory) throws BeanFactoryNotFoundException, BeanFactoryUnableToCreateInstanceException; }