/** * Odoo, Open Source Management Solution * Copyright (C) 2012-today Odoo SA (<http:www.odoo.com>) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version * * This program 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 Affero General Public License for more details * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http:www.gnu.org/licenses/> * * Created on 31/12/14 6:47 PM */ package com.odoo.core.orm; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import com.odoo.core.orm.fields.OColumn; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class ODataRow implements Parcelable { public static final String TAG = ODataRow.class.getSimpleName(); HashMap<String, Object> _data = new HashMap<>(); public void put(String key, Object value) { _data.put(key, value); } public Object get(String key) { return _data.get(key); } public Integer getInt(String key) { if (_data.get(key).toString().equals("false")) return 0; else return Integer.parseInt(_data.get(key).toString()); } public Float getFloat(String key) { if (_data.get(key).toString().equals("false")) { _data.put(key, 0); } return Float.parseFloat(_data.get(key).toString()); } public String getString(String key) { if (_data.containsKey(key) && _data.get(key) != null) return _data.get(key).toString(); else return "false"; } public Boolean getBoolean(String key) { return Boolean.parseBoolean(_data.get(key).toString()); } public OM2ORecord getM2ORecord(String key) { return (OM2ORecord) _data.get(key); } public OM2MRecord getM2MRecord(String key) { return (OM2MRecord) _data.get(key); } public OO2MRecord getO2MRecord(String key) { return (OO2MRecord) _data.get(key); } public List<Object> values() { List<Object> values = new ArrayList<>(); values.addAll(_data.values()); return values; } public List<String> keys() { List<String> list = new ArrayList<>(); list.addAll(_data.keySet()); return list; } public boolean contains(String key) { return _data.containsKey(key); } public int size() { return _data.size(); } @Override public String toString() { return _data.toString(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { } public void remove(String key) { _data.remove(key); } public class IdName { Integer id; String name; public IdName(Integer id, String name) { super(); this.id = id; this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public void addAll(HashMap<String, Object> data) { _data.putAll(data); } public void addAll(ODataRow row) { _data.putAll(row.getAll()); } public HashMap<String, Object> getAll() { return _data; } public OValues toValues() { OValues values = new OValues(); values.addAll(getAll()); return values; } public Bundle getPrimaryBundleData() { Bundle bundle = new Bundle(); bundle.putInt("id", getInt("id")); bundle.putInt(OColumn.ROW_ID, getInt(OColumn.ROW_ID)); return bundle; } }