mercury.DTO.java Source code

Java tutorial

Introduction

Here is the source code for mercury.DTO.java

Source

/**
 *  Este arquivo  parte do Biblivre3.
 *  
 *  Biblivre3  um software livre; voc pode redistribu-lo e/ou 
 *  modific-lo dentro dos termos da Licena Pblica Geral GNU como 
 *  publicada pela Fundao do Software Livre (FSF); na verso 3 da 
 *  Licena, ou (caso queira) qualquer verso posterior.
 *  
 *  Este programa  distribudo na esperana de que possa ser  til, 
 *  mas SEM NENHUMA GARANTIA; nem mesmo a garantia implcita de
 *  MERCANTIBILIDADE OU ADEQUAO PARA UM FIM PARTICULAR. Veja a
 *  Licena Pblica Geral GNU para maiores detalhes.
 *  
 *  Voc deve ter recebido uma cpia da Licena Pblica Geral GNU junto
 *  com este programa, Se no, veja em <http://www.gnu.org/licenses/>.
 * 
 *  @author Alberto Wagner <alberto@biblivre.org.br>
 *  @author Danniel Willian <danniel@biblivre.org.br>
 * 
 */

package mercury;

import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Properties;
import org.json.JSONObject;
import org.springframework.util.StringUtils;

public abstract class DTO implements IFJson, Serializable {

    @Override
    public JSONObject toJSONObject(Properties properties) {
        JSONObject json = new JSONObject();
        try {
            Class clazz = this.getClass();
            for (Field field : clazz.getDeclaredFields()) {
                String name = field.getName();
                Method getter = clazz.getDeclaredMethod("get" + StringUtils.capitalize(name));
                if (getter != null) {
                    Object value = getter.invoke(this);
                    if (value != null) {
                        if (value instanceof Collection) {
                            Collection col = (Collection) value;

                            for (Object item : col) {
                                if (item == null) {
                                    continue;
                                }

                                if (item instanceof DTO) {
                                    json.append(name, ((DTO) item).toJSONObject(null));
                                } else if (item instanceof String) {
                                    json.append(name, ((String) item).trim());
                                } else {
                                    json.append(name, item);
                                }
                            }
                        } else if (value instanceof DTO) {
                            json.putOpt(name, ((DTO) value).toJSONObject(properties));
                        } else if (value instanceof String) {
                            json.putOpt(name, ((String) value).trim());
                        } else {
                            json.putOpt(name, value);
                        }
                    }
                }
            }
        } catch (Exception e) {
        }
        return json;
    }

}