com.liferay.portlet.expando.model.impl.ExpandoValueImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.portlet.expando.model.impl.ExpandoValueImpl.java

Source

/**
 * Copyright (c) 2000-2012 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.portlet.expando.model.impl;

import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.StringBundler;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.kernel.util.StringUtil;
import com.liferay.portlet.expando.ValueDataException;
import com.liferay.portlet.expando.model.ExpandoColumn;
import com.liferay.portlet.expando.model.ExpandoColumnConstants;
import com.liferay.portlet.expando.service.ExpandoColumnLocalServiceUtil;

import java.io.Serializable;

import java.util.Date;

/**
 * @author Raymond Aug
 * @author Brian Wing Shun Chan
 */
public class ExpandoValueImpl extends ExpandoValueBaseImpl {

    public ExpandoValueImpl() {
    }

    public boolean getBoolean() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.BOOLEAN);

        return GetterUtil.getBoolean(getData());
    }

    public boolean[] getBooleanArray() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.BOOLEAN_ARRAY);

        return GetterUtil.getBooleanValues(StringUtil.split(getData()));
    }

    public ExpandoColumn getColumn() throws PortalException, SystemException {
        if (_column != null) {
            return _column;
        }

        long columnId = getColumnId();

        if (columnId <= 0) {
            return null;
        }

        return ExpandoColumnLocalServiceUtil.getColumn(columnId);
    }

    public Date getDate() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.DATE);

        return new Date(GetterUtil.getLong(getData()));
    }

    public Date[] getDateArray() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.DATE_ARRAY);

        String[] data = StringUtil.split(getData());

        Date[] dateArray = new Date[data.length];

        for (int i = 0; i < data.length; i++) {
            dateArray[i] = new Date(GetterUtil.getLong(data[i]));
        }

        return dateArray;
    }

    public double getDouble() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.DOUBLE);

        return GetterUtil.getDouble(getData());
    }

    public double[] getDoubleArray() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.DOUBLE_ARRAY);

        return GetterUtil.getDoubleValues(StringUtil.split(getData()));
    }

    public float getFloat() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.FLOAT);

        return GetterUtil.getFloat(getData());
    }

    public float[] getFloatArray() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.FLOAT_ARRAY);

        return GetterUtil.getFloatValues(StringUtil.split(getData()));
    }

    public int getInteger() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.INTEGER);

        return GetterUtil.getInteger(getData());
    }

    public int[] getIntegerArray() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.INTEGER_ARRAY);

        return GetterUtil.getIntegerValues(StringUtil.split(getData()));
    }

    public long getLong() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.LONG);

        return GetterUtil.getLong(getData());
    }

    public long[] getLongArray() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.LONG_ARRAY);

        return GetterUtil.getLongValues(StringUtil.split(getData()));
    }

    public Serializable getSerializable() throws PortalException, SystemException {

        ExpandoColumn column = getColumn();

        int type = column.getType();

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

    public short getShort() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.SHORT);

        return GetterUtil.getShort(getData());
    }

    public short[] getShortArray() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.SHORT_ARRAY);

        return GetterUtil.getShortValues(StringUtil.split(getData()));
    }

    public String getString() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.STRING);

        return getData();
    }

    public String[] getStringArray() throws PortalException, SystemException {
        validate(ExpandoColumnConstants.STRING_ARRAY);

        String[] dataArray = StringUtil.split(getData());

        for (int i = 0; i < dataArray.length; i++) {
            dataArray[i] = StringUtil.replace(dataArray[i], _EXPANDO_COMMA, StringPool.COMMA);
        }

        return dataArray;
    }

    public void setBoolean(boolean data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.BOOLEAN);

        setData(String.valueOf(data));
    }

    public void setBooleanArray(boolean[] data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.BOOLEAN_ARRAY);

        setData(StringUtil.merge(data));
    }

    public void setColumn(ExpandoColumn column) {
        _column = column;

        setColumnId(_column.getColumnId());
    }

    public void setDate(Date data) throws PortalException, SystemException {
        validate(ExpandoColumnConstants.DATE);

        setData(String.valueOf(data.getTime()));
    }

    public void setDateArray(Date[] data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.DATE_ARRAY);

        setData(StringUtil.merge(data));
    }

    public void setDouble(double data) throws PortalException, SystemException {
        validate(ExpandoColumnConstants.DOUBLE);

        setData(String.valueOf(data));
    }

    public void setDoubleArray(double[] data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.DOUBLE_ARRAY);

        setData(StringUtil.merge(data));
    }

    public void setFloat(float data) throws PortalException, SystemException {
        validate(ExpandoColumnConstants.FLOAT);

        setData(String.valueOf(data));
    }

    public void setFloatArray(float[] data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.FLOAT_ARRAY);

        setData(StringUtil.merge(data));
    }

    public void setInteger(int data) throws PortalException, SystemException {
        validate(ExpandoColumnConstants.INTEGER);

        setData(String.valueOf(data));
    }

    public void setIntegerArray(int[] data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.INTEGER_ARRAY);

        setData(StringUtil.merge(data));
    }

    public void setLong(long data) throws PortalException, SystemException {
        validate(ExpandoColumnConstants.LONG);

        setData(String.valueOf(data));
    }

    public void setLongArray(long[] data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.LONG_ARRAY);

        setData(StringUtil.merge(data));
    }

    public void setNumber(Number data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.NUMBER);

        setData(String.valueOf(data));
    }

    public void setNumberArray(Number[] data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.NUMBER_ARRAY);

        setData(StringUtil.merge(data));
    }

    public void setShort(short data) throws PortalException, SystemException {
        validate(ExpandoColumnConstants.SHORT);

        setData(String.valueOf(data));
    }

    public void setShortArray(short[] data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.SHORT_ARRAY);

        setData(StringUtil.merge(data));
    }

    public void setString(String data) throws PortalException, SystemException {
        validate(ExpandoColumnConstants.STRING);

        setData(data);
    }

    public void setStringArray(String[] data) throws PortalException, SystemException {

        validate(ExpandoColumnConstants.STRING_ARRAY);

        if (data != null) {
            for (int i = 0; i < data.length; i++) {
                data[i] = StringUtil.replace(data[i], StringPool.COMMA, _EXPANDO_COMMA);
            }
        }

        setData(StringUtil.merge(data));
    }

    protected void validate(int type) throws PortalException, SystemException {
        ExpandoColumn column = getColumn();

        if (column == null) {
            return;
        }

        if (column.getType() == type) {
            return;
        }

        StringBundler sb = new StringBundler(6);

        sb.append("Column ");
        sb.append(getColumnId());
        sb.append(" has type ");
        sb.append(ExpandoColumnConstants.getTypeLabel(column.getType()));
        sb.append(" and is not compatible with type ");
        sb.append(ExpandoColumnConstants.getTypeLabel(type));

        throw new ValueDataException(sb.toString());
    }

    private static String _EXPANDO_COMMA = "[$LIFERAY_EXPANDO_COMMA$]";

    private transient ExpandoColumn _column;

}