| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more contributor license |
| * agreements. See the NOTICE file distributed with this work for additional information regarding |
| * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance with the License. You may obtain a |
| * copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software distributed under the License |
| * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express |
| * or implied. See the License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package org.apache.geode.pdx.internal.json; |
| |
| import java.math.BigDecimal; |
| import java.math.BigInteger; |
| import java.util.LinkedList; |
| import java.util.List; |
| |
| import org.apache.logging.log4j.Logger; |
| |
| import org.apache.geode.cache.CacheFactory; |
| import org.apache.geode.internal.cache.InternalCache; |
| import org.apache.geode.logging.internal.log4j.api.LogService; |
| |
| /* |
| * This class is to convert JSON array into List. |
| */ |
| public class PdxListHelper { |
| private static final Logger logger = LogService.getLogger(); |
| |
| String m_name; |
| PdxListHelper m_parent; |
| List list = new LinkedList(); |
| |
| private InternalCache getCache() { |
| return (InternalCache) CacheFactory.getAnyInstance(); |
| } |
| |
| public PdxListHelper(PdxListHelper parent, String name) { |
| InternalCache cache = getCache(); |
| m_name = name; |
| if (logger.isTraceEnabled()) { |
| logger.trace("PdxListHelper name: {}", name); |
| } |
| m_parent = parent; |
| } |
| |
| public PdxListHelper getParent() { |
| return m_parent; |
| } |
| |
| public void setListName(String fieldName) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("setListName fieldName: {}", fieldName); |
| } |
| m_name = fieldName; |
| } |
| |
| public void addStringField(String fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addStringField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addByteField(byte fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addByteField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addShortField(short fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addShortField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addIntField(int fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addIntField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addLongField(long fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addLongField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addBigIntegerField(BigInteger fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addBigIntegerField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addBooleanField(boolean fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addBooleanField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addFloatField(float fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addFloatField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addDoubleField(double fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addDoubleField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addBigDecimalField(BigDecimal fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addBigDecimalField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public void addNullField(Object fieldValue) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addNULLField fieldValue: {}", fieldValue); |
| } |
| list.add(fieldValue); |
| } |
| |
| public PdxListHelper addListField() { |
| if (logger.isTraceEnabled()) { |
| logger.trace("addListField"); |
| } |
| PdxListHelper tmp = new PdxListHelper(this, "no-name"); |
| list.add(tmp.getList()); |
| return tmp; |
| } |
| |
| public PdxListHelper endListField() { |
| if (logger.isTraceEnabled()) { |
| logger.trace("endListField"); |
| } |
| return m_parent; |
| } |
| |
| public void addObjectField(String fieldName, JSONToPdxMapper dpi) { |
| if (fieldName != null) |
| throw new IllegalStateException("addObjectField:list should have object no fieldname"); |
| if (logger.isTraceEnabled()) { |
| logger.trace("addObjectField fieldName: {}", fieldName); |
| } |
| list.add(dpi.getPdxInstance()); |
| } |
| |
| public void endObjectField(String fieldName) { |
| if (logger.isTraceEnabled()) { |
| logger.trace("endObjectField fieldName: {}", fieldName); |
| } |
| } |
| |
| public List getList() { |
| return list; |
| } |
| } |