com.liferay.mongodb.hook.service.impl.MongoExpandoValueLocalServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.mongodb.hook.service.impl.MongoExpandoValueLocalServiceImpl.java

Source

/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.mongodb.hook.service.impl;

import com.liferay.counter.service.CounterLocalServiceUtil;
import com.liferay.mongodb.lang.MongoOperator;
import com.liferay.mongodb.util.MongoDBUtil;
import com.liferay.portal.kernel.dao.orm.QueryUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.portal.security.auth.CompanyThreadLocal;
import com.liferay.portlet.expando.NoSuchColumnException;
import com.liferay.portlet.expando.NoSuchTableException;
import com.liferay.portlet.expando.model.ExpandoColumn;
import com.liferay.portlet.expando.model.ExpandoColumnConstants;
import com.liferay.portlet.expando.model.ExpandoTable;
import com.liferay.portlet.expando.model.ExpandoValue;
import com.liferay.portlet.expando.service.ExpandoColumnLocalServiceUtil;
import com.liferay.portlet.expando.service.ExpandoTableLocalServiceUtil;
import com.liferay.portlet.expando.service.ExpandoValueLocalService;
import com.liferay.portlet.expando.service.ExpandoValueLocalServiceWrapper;
import com.liferay.portlet.expando.service.persistence.ExpandoColumnUtil;
import com.liferay.portlet.expando.service.persistence.ExpandoValueUtil;

import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author Raymond Aug
 * @author Brian Wing Shun Chan
 */
public class MongoExpandoValueLocalServiceImpl extends ExpandoValueLocalServiceWrapper {

    public MongoExpandoValueLocalServiceImpl(ExpandoValueLocalService expandoValueLocalService) {

        super(expandoValueLocalService);
    }

    @Override
    public ExpandoValue addValue(long classNameId, long tableId, long columnId, long classPK, String data)
            throws PortalException {

        ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(tableId);

        ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(columnId);

        ExpandoValue expandoValue = ExpandoValueUtil.create(0);

        expandoValue.setCompanyId(expandoTable.getCompanyId());
        expandoValue.setTableId(tableId);
        expandoValue.setColumnId(columnId);
        expandoValue.setRowId(classPK);
        expandoValue.setClassNameId(classNameId);
        expandoValue.setClassPK(classPK);
        expandoValue.setData(data);

        DBCollection dbCollection = MongoDBUtil.getCollection(expandoTable);

        DBObject queryDBObject = new BasicDBObject();

        queryDBObject.put("companyId", expandoTable.getCompanyId());
        queryDBObject.put("tableId", tableId);
        queryDBObject.put("rowId", classPK);
        queryDBObject.put("classNameId", classNameId);
        queryDBObject.put("classPK", classPK);

        BasicDBObject expandoValueDBObject = (BasicDBObject) dbCollection.findOne(queryDBObject);

        if (expandoValueDBObject != null) {
            expandoValue.setValueId(expandoValueDBObject.getLong("valueId"));

            DBObject operatorDBObject = new BasicDBObject();

            DBObject updateExpandoValueDBObject = new BasicDBObject(expandoColumn.getName(),
                    getData(expandoColumn, expandoValue));

            operatorDBObject.put(MongoOperator.SET, updateExpandoValueDBObject);

            dbCollection.update(expandoValueDBObject, operatorDBObject);
        } else {
            long valueId = CounterLocalServiceUtil.increment();

            expandoValue.setValueId(valueId);

            queryDBObject.put("valueId", valueId);
            queryDBObject.put(expandoColumn.getName(), getData(expandoColumn, expandoValue));

            dbCollection.insert(queryDBObject);
        }

        return expandoValue;
    }

    @Override
    public void addValues(long classNameId, long tableId, List<ExpandoColumn> expandoColumns, long classPK,
            Map<String, String> data) throws PortalException {

        ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(tableId);

        ExpandoValue expandoValue = ExpandoValueUtil.create(0);

        expandoValue.setCompanyId(expandoTable.getCompanyId());
        expandoValue.setTableId(tableId);
        expandoValue.setRowId(classPK);
        expandoValue.setClassNameId(classNameId);
        expandoValue.setClassPK(classPK);

        DBCollection dbCollection = MongoDBUtil.getCollection(expandoTable);

        DBObject queryDBObject = new BasicDBObject();

        queryDBObject.put("companyId", expandoTable.getCompanyId());
        queryDBObject.put("tableId", tableId);
        queryDBObject.put("rowId", classPK);
        queryDBObject.put("classNameId", classNameId);
        queryDBObject.put("classPK", classPK);

        BasicDBObject expandoValueDBObject = (BasicDBObject) dbCollection.findOne(queryDBObject);

        if (expandoValueDBObject != null) {
            expandoValue.setValueId(expandoValueDBObject.getLong("valueId"));

            DBObject operatorDBObject = new BasicDBObject();

            DBObject updateExpandoValueDBObject = new BasicDBObject();

            updateExpandoValueDBObject(updateExpandoValueDBObject, expandoColumns, data, expandoValue);

            operatorDBObject.put(MongoOperator.SET, updateExpandoValueDBObject);

            dbCollection.update(expandoValueDBObject, operatorDBObject);
        } else {
            long valueId = CounterLocalServiceUtil.increment();

            expandoValue.setValueId(valueId);

            queryDBObject.put("valueId", valueId);

            updateExpandoValueDBObject(queryDBObject, expandoColumns, data, expandoValue);

            dbCollection.insert(queryDBObject);
        }
    }

    @Override
    public void deleteColumnValues(long columnId) {
        try {
            ExpandoColumn expandoColumn = ExpandoColumnUtil.fetchByPrimaryKey(columnId);

            if (expandoColumn == null) {
                return;
            }

            ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(expandoColumn.getTableId());

            DBCollection dbCollection = MongoDBUtil.getCollection(expandoTable);

            DBObject operatorDBObject = new BasicDBObject(MongoOperator.SET,
                    new BasicDBObject(expandoColumn.getName(), null));

            dbCollection.update(new BasicDBObject(), operatorDBObject, false, true);
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    @Override
    public void deleteRowValues(long rowId) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void deleteTableValues(long tableId) {
        try {
            ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(tableId);

            DBCollection dbCollection = MongoDBUtil.getCollection(expandoTable);

            DBObject valueDBObject = new BasicDBObject();

            List<ExpandoColumn> expandoColumns = ExpandoColumnLocalServiceUtil.getColumns(tableId);

            for (ExpandoColumn expandoColumn : expandoColumns) {
                valueDBObject.put(expandoColumn.getName(), null);
            }

            DBObject operatorDBObject = new BasicDBObject(MongoOperator.SET, valueDBObject);

            dbCollection.update(new BasicDBObject(), operatorDBObject, false, true);
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    @Override
    public void deleteValue(long valueId) {
        throw new UnsupportedOperationException();
    }

    @Override
    public void deleteValue(long columnId, long rowId) throws PortalException {
        ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(columnId);

        ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(expandoColumn.getTableId());

        deleteValue(expandoTable.getCompanyId(), expandoTable.getClassNameId(), expandoTable.getName(),
                expandoColumn.getName(), rowId);
    }

    @Override
    public void deleteValue(long companyId, long classNameId, String tableName, String columnName, long classPK)
            throws PortalException {

        ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(companyId, classNameId, tableName);

        DBCollection dbCollection = MongoDBUtil.getCollection(expandoTable);

        DBObject queryDBObject = new BasicDBObject();

        queryDBObject.put("companyId", expandoTable.getCompanyId());
        queryDBObject.put("tableId", expandoTable.getTableId());
        queryDBObject.put("rowId", classPK);
        queryDBObject.put("classNameId", expandoTable.getClassNameId());
        queryDBObject.put("classPK", classPK);

        DBObject valueDBObject = new BasicDBObject();

        valueDBObject.put(columnName, null);

        DBObject operatorDBObject = new BasicDBObject(MongoOperator.SET, valueDBObject);

        dbCollection.update(queryDBObject, operatorDBObject);
    }

    @Override
    public void deleteValues(long classNameId, long classPK) {
        long companyId = CompanyThreadLocal.getCompanyId();

        List<ExpandoTable> expandoTables = ExpandoTableLocalServiceUtil.getTables(companyId, classNameId);

        for (ExpandoTable expandoTable : expandoTables) {
            DBCollection dbCollection = MongoDBUtil.getCollection(expandoTable);

            DBObject queryDBObject = new BasicDBObject();

            queryDBObject.put("companyId", expandoTable.getCompanyId());
            queryDBObject.put("tableId", expandoTable.getTableId());
            queryDBObject.put("rowId", classPK);
            queryDBObject.put("classNameId", expandoTable.getClassNameId());
            queryDBObject.put("classPK", classPK);

            dbCollection.remove(queryDBObject);
        }
    }

    @Override
    public List<ExpandoValue> getColumnValues(long columnId, int start, int end) {

        try {
            ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(columnId);

            ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(expandoColumn.getTableId());

            return getColumnValues(expandoTable.getCompanyId(), expandoTable.getClassNameId(),
                    expandoTable.getName(), expandoColumn.getName(), null, start, end);
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    @Override
    public List<ExpandoValue> getColumnValues(long companyId, long classNameId, String tableName, String columnName,
            String data, int start, int end) {

        try {
            ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(companyId, classNameId, tableName,
                    columnName);

            DBCollection dbCollection = MongoDBUtil.getCollection(companyId, classNameId, tableName);

            DBCursor dbCursor = null;

            if (Validator.isNotNull(data)) {
                DBObject queryDBObject = new BasicDBObject();

                ExpandoValue expandoValue = ExpandoValueUtil.create(0);

                expandoValue.setColumnId(expandoColumn.getColumnId());
                expandoValue.setData(data);

                queryDBObject.put(columnName, getData(expandoColumn, expandoValue));

                dbCursor = dbCollection.find(queryDBObject);
            } else {
                dbCursor = dbCollection.find();
            }

            if ((start != QueryUtil.ALL_POS) && (end != QueryUtil.ALL_POS)) {
                dbCursor = dbCursor.skip(start).limit(end - start);
            }

            List<ExpandoValue> expandoValues = new ArrayList<ExpandoValue>();

            for (DBObject dbObject : dbCursor.toArray()) {
                BasicDBObject expandoValueDBObject = (BasicDBObject) dbObject;

                ExpandoValue expandoValue = toExpandoValue(expandoValueDBObject, expandoColumn);

                expandoValues.add(expandoValue);
            }

            return expandoValues;
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    @Override
    public int getColumnValuesCount(long columnId) {
        try {
            ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(columnId);

            ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(expandoColumn.getTableId());

            return getColumnValuesCount(expandoTable.getCompanyId(), expandoTable.getClassNameId(),
                    expandoTable.getName(), expandoColumn.getName(), null);
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    @Override
    public int getColumnValuesCount(long companyId, long classNameId, String tableName, String columnName,
            String data) {

        try {
            ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(companyId, classNameId, tableName,
                    columnName);

            DBCollection dbCollection = MongoDBUtil.getCollection(companyId, classNameId, tableName);

            DBCursor dbCursor = null;

            if (Validator.isNotNull(data)) {
                DBObject queryDBObject = new BasicDBObject();

                ExpandoValue expandoValue = ExpandoValueUtil.create(0);

                expandoValue.setColumnId(expandoColumn.getColumnId());
                expandoValue.setData(data);

                queryDBObject.put(columnName, getData(expandoColumn, expandoValue));

                dbCursor = dbCollection.find(queryDBObject);
            } else {
                dbCursor = dbCollection.find();
            }

            return dbCursor.count();
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    @Override
    public List<ExpandoValue> getRowValues(long rowId) {
        throw new UnsupportedOperationException();
    }

    @Override
    public List<ExpandoValue> getRowValues(long rowId, int start, int end) {
        throw new UnsupportedOperationException();
    }

    @Override
    public List<ExpandoValue> getRowValues(long companyId, long classNameId, String tableName, long classPK,
            int start, int end) {

        try {
            ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(companyId, classNameId, tableName);

            DBCollection dbCollection = MongoDBUtil.getCollection(expandoTable);

            BasicDBObject queryDBObject = new BasicDBObject();

            queryDBObject.put("companyId", expandoTable.getCompanyId());
            queryDBObject.put("tableId", expandoTable.getTableId());
            queryDBObject.put("rowId", classPK);
            queryDBObject.put("classNameId", expandoTable.getClassNameId());
            queryDBObject.put("classPK", classPK);

            BasicDBObject expandoValueDBObject = (BasicDBObject) dbCollection.findOne(queryDBObject);

            if (expandoValueDBObject == null) {
                expandoValueDBObject = queryDBObject;
            }

            List<ExpandoColumn> expandoColumns = ExpandoColumnLocalServiceUtil
                    .getColumns(expandoTable.getTableId());

            if ((start != QueryUtil.ALL_POS) && (end != QueryUtil.ALL_POS)) {
                expandoColumns = expandoColumns.subList(start, end);
            }

            List<ExpandoValue> expandoValues = new ArrayList<ExpandoValue>();

            for (ExpandoColumn expandoColumn : expandoColumns) {
                ExpandoValue expandoValue = toExpandoValue(expandoValueDBObject, expandoColumn);

                expandoValues.add(expandoValue);
            }

            return expandoValues;
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    @Override
    public int getRowValuesCount(long rowId) {
        throw new UnsupportedOperationException();
    }

    @Override
    public int getRowValuesCount(long companyId, long classNameId, String tableName, long classPK) {

        try {
            ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(companyId, classNameId, tableName);

            return ExpandoColumnLocalServiceUtil.getColumnsCount(expandoTable.getTableId());
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    @Override
    public ExpandoValue getValue(long valueId) {
        throw new UnsupportedOperationException();
    }

    @Override
    public ExpandoValue getValue(long columnId, long rowId) throws PortalException {

        ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(columnId);

        ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(expandoColumn.getTableId());

        return getValue(expandoTable.getCompanyId(), expandoTable.getClassNameId(), expandoTable.getName(),
                expandoColumn.getName(), rowId);
    }

    @Override
    public ExpandoValue getValue(long tableId, long columnId, long classPK) {
        try {
            ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(tableId);

            ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(columnId);

            return getValue(expandoTable.getCompanyId(), expandoTable.getClassName(), expandoTable.getName(),
                    expandoColumn.getName(), classPK);
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    @Override
    public ExpandoValue getValue(long companyId, long classNameId, String tableName, String columnName,
            long classPK) {

        try {
            ExpandoTable expandoTable = ExpandoTableLocalServiceUtil.getTable(companyId, classNameId, tableName);

            ExpandoColumn expandoColumn = ExpandoColumnLocalServiceUtil.getColumn(expandoTable.getTableId(),
                    columnName);

            DBCollection dbCollection = MongoDBUtil.getCollection(expandoTable);

            DBObject queryDBObject = new BasicDBObject();

            queryDBObject.put("companyId", expandoTable.getCompanyId());
            queryDBObject.put("tableId", expandoTable.getTableId());
            queryDBObject.put("rowId", classPK);
            queryDBObject.put("classNameId", expandoTable.getClassNameId());
            queryDBObject.put("classPK", classPK);

            BasicDBObject expandoValueDBObject = (BasicDBObject) dbCollection.findOne(queryDBObject);

            if (expandoValueDBObject == null) {
                return null;
            }

            return toExpandoValue(expandoValueDBObject, expandoColumn);
        } catch (NoSuchColumnException nsce) {
            return null;
        } catch (NoSuchTableException nste) {
            return null;
        } catch (PortalException pe) {
            throw new SystemException(pe);
        }
    }

    protected Object getData(ExpandoColumn expandoColumn, ExpandoValue expandoValue) throws PortalException {

        int type = expandoColumn.getType();

        if (type == ExpandoColumnConstants.BOOLEAN) {
            return expandoValue.getBoolean();
        } else if (type == ExpandoColumnConstants.BOOLEAN_ARRAY) {
            return expandoValue.getBooleanArray();
        } else if (type == ExpandoColumnConstants.DATE) {
            return expandoValue.getDate();
        } else if (type == ExpandoColumnConstants.DATE_ARRAY) {
            return expandoValue.getDateArray();
        } else if (type == ExpandoColumnConstants.DOUBLE) {
            return expandoValue.getDouble();
        } else if (type == ExpandoColumnConstants.DOUBLE_ARRAY) {
            return expandoValue.getDoubleArray();
        } else if (type == ExpandoColumnConstants.FLOAT) {
            return expandoValue.getFloat();
        } else if (type == ExpandoColumnConstants.FLOAT_ARRAY) {
            return expandoValue.getFloatArray();
        } else if (type == ExpandoColumnConstants.INTEGER) {
            return expandoValue.getInteger();
        } else if (type == ExpandoColumnConstants.INTEGER_ARRAY) {
            return expandoValue.getIntegerArray();
        } else if (type == ExpandoColumnConstants.LONG) {
            return expandoValue.getLong();
        } else if (type == ExpandoColumnConstants.LONG_ARRAY) {
            return expandoValue.getLongArray();
        } else if (type == ExpandoColumnConstants.SHORT) {
            return expandoValue.getShort();
        } else if (type == ExpandoColumnConstants.SHORT_ARRAY) {
            return expandoValue.getShortArray();
        } else if (type == ExpandoColumnConstants.STRING_ARRAY) {
            return expandoValue.getStringArray();
        } else {
            return expandoValue.getString();
        }
    }

    protected ExpandoValue toExpandoValue(BasicDBObject expandoValueDBObject, ExpandoColumn expandoColumn)
            throws PortalException {

        ExpandoValue expandoValue = ExpandoValueUtil.create(0);

        expandoValue.setCompanyId(expandoValueDBObject.getLong("companyId"));
        expandoValue.setTableId(expandoValueDBObject.getLong("tableId"));
        expandoValue.setColumnId(expandoColumn.getColumnId());
        expandoValue.setRowId(expandoValueDBObject.getLong("rowId"));
        expandoValue.setClassNameId(expandoValueDBObject.getLong("classNameId"));
        expandoValue.setClassPK(expandoValueDBObject.getLong("classPK"));

        Object value = expandoValueDBObject.get(expandoColumn.getName());

        if (value == null) {
            return expandoValue;
        }

        int type = expandoColumn.getType();

        if (type == ExpandoColumnConstants.BOOLEAN) {
            expandoValue.setBoolean((Boolean) value);
        } else if (type == ExpandoColumnConstants.BOOLEAN_ARRAY) {
            List<Boolean> list = (List<Boolean>) value;

            expandoValue.setBooleanArray(ArrayUtil.toArray(list.toArray(new Boolean[list.size()])));
        } else if (type == ExpandoColumnConstants.DATE) {
            expandoValue.setDate((Date) expandoValueDBObject.get(expandoColumn.getName()));
        } else if (type == ExpandoColumnConstants.DATE_ARRAY) {
            List<Date> list = (List<Date>) value;

            expandoValue.setDateArray(list.toArray(new Date[list.size()]));
        } else if (type == ExpandoColumnConstants.DOUBLE) {
            expandoValue.setDouble((Double) expandoValueDBObject.get(expandoColumn.getName()));
        } else if (type == ExpandoColumnConstants.DOUBLE_ARRAY) {
            List<Double> list = (List<Double>) value;

            expandoValue.setDoubleArray(ArrayUtil.toArray(list.toArray(new Double[list.size()])));
        } else if (type == ExpandoColumnConstants.FLOAT) {
            expandoValue.setFloat((Float) expandoValueDBObject.get(expandoColumn.getName()));
        } else if (type == ExpandoColumnConstants.FLOAT_ARRAY) {
            List<Float> list = (List<Float>) value;

            expandoValue.setFloatArray(ArrayUtil.toArray(list.toArray(new Float[list.size()])));
        } else if (type == ExpandoColumnConstants.INTEGER) {
            expandoValue.setInteger((Integer) value);
        } else if (type == ExpandoColumnConstants.INTEGER_ARRAY) {
            List<Integer> list = (List<Integer>) value;

            expandoValue.setIntegerArray(ArrayUtil.toArray(list.toArray(new Integer[list.size()])));
        } else if (type == ExpandoColumnConstants.LONG) {
            expandoValue.setLong((Long) expandoValueDBObject.get(expandoColumn.getName()));
        } else if (type == ExpandoColumnConstants.LONG_ARRAY) {
            List<Long> list = (List<Long>) value;

            expandoValue.setLongArray(ArrayUtil.toArray(list.toArray(new Long[list.size()])));
        } else if (type == ExpandoColumnConstants.SHORT) {
            expandoValue.setShort((Short) expandoValueDBObject.get(expandoColumn.getName()));
        } else if (type == ExpandoColumnConstants.SHORT_ARRAY) {
            List<Short> list = (List<Short>) value;

            expandoValue.setShortArray(ArrayUtil.toArray(list.toArray(new Short[list.size()])));
        } else if (type == ExpandoColumnConstants.STRING_ARRAY) {
            List<String> list = (List<String>) value;

            expandoValue.setStringArray(list.toArray(new String[list.size()]));
        } else {
            expandoValue.setString((String) value);
        }

        return expandoValue;
    }

    protected void updateExpandoValueDBObject(DBObject expandoValueDBObject, List<ExpandoColumn> expandoColumns,
            Map<String, String> data, ExpandoValue expandoValue) throws PortalException {

        for (ExpandoColumn expandoColumn : expandoColumns) {
            String dataString = data.get(expandoColumn.getName());

            if (Validator.isNull(dataString)) {
                continue;
            }

            expandoValue.setColumnId(expandoColumn.getColumnId());

            expandoValue.setData(dataString);

            expandoValueDBObject.put(expandoColumn.getName(), getData(expandoColumn, expandoValue));
        }
    }

}