/** * This file is part of the JCROM project. * Copyright (C) 2008-2014 - All rights reserved. * Authors: Olafur Gauti Gudmundsson, Nicolas Dos Santos * * Licensed 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.jcrom.entities; import java.util.HashMap; import java.util.List; import java.util.Map; import org.jcrom.AbstractJcrEntity; import org.jcrom.JcrFile; import org.jcrom.annotations.JcrChildNode; import org.jcrom.annotations.JcrFileNode; import org.jcrom.annotations.JcrReference; /** * * @author Olafur Gauti Gudmundsson * @author Nicolas Dos Santos */ public class DynamicObject extends AbstractJcrEntity { private static final long serialVersionUID = 1L; @JcrChildNode(lazy = true) Map<String, Object> singleValueChildren; @JcrChildNode(lazy = true) Map<String, List<Object>> multiValueChildren; @JcrReference(lazy = true, byPath = true) Map<String, Object> singleReferences; @JcrReference(lazy = true) Map<String, List<Object>> multiReferences; @JcrFileNode Map<String, JcrFile> singleFiles; @JcrFileNode(loadType = JcrFileNode.LoadType.BYTES) Map<String, List<JcrFile>> multiFiles; public DynamicObject() { this.singleValueChildren = new HashMap<String, Object>(); this.multiValueChildren = new HashMap<String, List<Object>>(); this.singleReferences = new HashMap<String, Object>(); this.multiReferences = new HashMap<String, List<Object>>(); this.singleFiles = new HashMap<String, JcrFile>(); this.multiFiles = new HashMap<String, List<JcrFile>>(); } public Map<String, List<Object>> getMultiValueChildren() { return multiValueChildren; } public void setMultiValueChildren(Map<String, List<Object>> multiValueChildren) { this.multiValueChildren = multiValueChildren; } public void putMultiValueChild(String key, List<Object> values) { multiValueChildren.put(key, values); } public Map<String, Object> getSingleValueChildren() { return singleValueChildren; } public void setSingleValueChildren(Map<String, Object> singleValueChildren) { this.singleValueChildren = singleValueChildren; } public void putSingleValueChild(String key, Object value) { singleValueChildren.put(key, value); } public Map<String, List<Object>> getMultiReferences() { return multiReferences; } public void setMultiReferences(Map<String, List<Object>> multiReferences) { this.multiReferences = multiReferences; } public void putMultiReference(String key, List<Object> values) { multiReferences.put(key, values); } public Map<String, Object> getSingleReferences() { return singleReferences; } public void setSingleReferences(Map<String, Object> singleReferences) { this.singleReferences = singleReferences; } public void putSingleReference(String key, Object value) { singleReferences.put(key, value); } public Map<String, List<JcrFile>> getMultiFiles() { return multiFiles; } public void setMultiFiles(Map<String, List<JcrFile>> multiFiles) { this.multiFiles = multiFiles; } public void putMultiFile(String key, List<JcrFile> values) { multiFiles.put(key, values); } public Map<String, JcrFile> getSingleFiles() { return singleFiles; } public void setSingleFiles(Map<String, JcrFile> singleFiles) { this.singleFiles = singleFiles; } public void putSingleFile(String key, JcrFile value) { singleFiles.put(key, value); } }