/*

 * DBValueObject.java

 *

 * Created on 20 de diciembre de 2001, 13:47

 */



package q02b.exe.arquitectura.valueobjects;



/**

 *

 * @author  laura.cantero

 * @version

 */



public class Q02bDBValueObject extends q02b.exe.arquitectura.valueobjects.Q02bValueObject {

    

	private static final long serialVersionUID = 1L;



	/** Creates new DBValueObject */

    public Q02bDBValueObject() {

    }

    

    public String toString() {

        

        // Este StringBuffer almacenará el resultado

        StringBuffer sb = new StringBuffer();

        String nombre=this.getClass().getName();

        while (nombre.indexOf(".") != -1) {

            nombre=nombre.substring(nombre.indexOf(".") + 1);

        }

        sb.append(nombre);

        

        // Obtenemos los métodos del objeto

        java.lang.reflect.Method [] metodosGet = this.getClass().getMethods();// getDeclaredMethods();



        try{

            this.getClass().getFields();

        }catch (Exception e) {

            e.printStackTrace();

        }

        // Los ordenamos por nombre.

        //java.util.Arrays.sort( metodosGet, new ValueObjectUtils() );

        

        for ( int i=0; metodosGet!= null && i<metodosGet.length; i++ ) {

            if ( metodosGet[i].getName().startsWith("get")

            && ( metodosGet[i].getParameterTypes() == null

            || metodosGet[i].getParameterTypes().length == 0 ) && !metodosGet[i].getName().startsWith("getClass") && !metodosGet[i].getName().startsWith("getXmlFormatter")) {

                Object value=new Object();

                try {

                    value = metodosGet[i].invoke( this, null );

                    

                }catch( Exception e ) {

                    sb.append( e.getMessage() );

                }

                if ( value != null  && !value.toString().equals("") )  {

                    

                    sb.append("##" +  (metodosGet[i].getName()).substring(3) );

                    

                }

                

            }

        }

        sb.append("||");

        for ( int a=0; metodosGet!= null && a < metodosGet.length; a++ ) {

            

            if ( metodosGet[a].getName().startsWith("get")

            && ( metodosGet[a].getParameterTypes() == null

            || metodosGet[a].getParameterTypes().length == 0 ) && !metodosGet[a].getName().startsWith("getClass") && !metodosGet[a].getName().startsWith("getXmlFormatter")) {

                Object value=new Object();

                try {

                    value = metodosGet[a].invoke( this, null );

                    

                }catch( Exception e ) {

                    sb.append( e.getMessage() );

                }

                if ( value != null && !value.toString().equals("") ) {

                    

                    

                    sb.append(value).append("##");

                    

                }

            }

            

        }

        String sub1=sb.toString();

        sub1 = sub1.substring(0,sub1.length()-2);

        sb=new StringBuffer();

        sb.append(sub1);

        sb.append("||");

        for ( int b=0; metodosGet!= null && b < metodosGet.length; b++ ) {

            

            if ( metodosGet[b].getName().startsWith("get")

            && ( metodosGet[b].getParameterTypes() == null

            || metodosGet[b].getParameterTypes().length == 0 ) && !metodosGet[b].getName().startsWith("getClass") && !metodosGet[b].getName().startsWith("getXmlFormatter")) {

                Object value=new Object();

                Object value1=new Object();

                try {

                    value = metodosGet[b].invoke( this, null );

                    

                }catch( Exception e ) {

                    sb.append( e.getMessage() );

                }

                if ( value != null && !value.toString().equals("") ) {

                    

                    

                    

                    value1 = metodosGet[b].getReturnType().getName();

                    sb.append(value1).append("##");

                    

                }

                

                

            }

        }

        

        

        

        String sub=sb.toString();

        sub = sub.substring(0,sub.length()-2);

        return sub;

    }

}









/** @link dependency */

    /*#MethodComparator lnkMethodComparator;*/





