/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* dclarke, mnorman - Dynamic Persistence | |
* http://wiki.eclipse.org/EclipseLink/Development/Dynamic | |
* (https://bugs.eclipse.org/bugs/show_bug.cgi?id=200045) | |
* | |
******************************************************************************/ | |
package org.eclipse.persistence.internal.xr; | |
//javase imports | |
import java.util.ArrayList; | |
import java.util.List; | |
import java.util.Set; | |
//EclipseLink imports | |
import org.eclipse.persistence.dynamic.DynamicEntity; | |
import org.eclipse.persistence.internal.dynamic.DynamicEntityImpl; | |
import org.eclipse.persistence.internal.dynamic.DynamicPropertiesManager; | |
/** | |
* Local cache of property names | |
* | |
* @author mnorman | |
*/ | |
public class XRDynamicPropertiesManager extends DynamicPropertiesManager { | |
// local static cache of property names | |
protected Set<String> propertyNames = null; | |
public XRDynamicPropertiesManager() { | |
super(); | |
setType(new XRDynamicType()); // dummy impl of DynamicType | |
setInitializatonPolicy(new XRDynamicPropertiesInitializatonPolicy()); | |
} | |
public void setPropertyNames(Set<String> propertyNames) { | |
// One-time initialization: only if this.propertiesNameSet is null | |
if (this.propertyNames == null) { | |
this.propertyNames = propertyNames; | |
} | |
} | |
public boolean contains(String propertyName) { | |
return propertyNames.contains(propertyName); | |
} | |
public List<String> getPropertyNames() { | |
List<String> tmp = new ArrayList<String>(); | |
if (propertyNames != null) { | |
for (String propertyName : propertyNames) { | |
tmp.add(propertyName); | |
} | |
} | |
return tmp; | |
} | |
@Override | |
public void checkSet(String propertyName, Object value) { | |
// no-op | |
} | |
@Override | |
public void postConstruct(DynamicEntity entity) { | |
if (DynamicEntityImpl.class.isAssignableFrom(entity.getClass())) { | |
super.postConstruct(entity); | |
} | |
} | |
} |