io.ebeaninternal.server.persist.MergeNode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ebean Show documentation
Show all versions of ebean Show documentation
composite of common runtime dependencies for all platforms
package io.ebeaninternal.server.persist;
import io.ebean.Query;
import io.ebean.bean.EntityBean;
import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.deploy.BeanProperty;
import io.ebeaninternal.server.deploy.BeanPropertyAssoc;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* Base class for merge nodes.
*/
abstract class MergeNode {
protected final String fullPath;
protected final BeanDescriptor> targetDescriptor;
protected Map children;
MergeNode(String fullPath, BeanPropertyAssoc> property) {
this.fullPath = fullPath;
this.targetDescriptor = property.getTargetDescriptor();
}
/**
* Perform the merge processing.
*/
abstract void merge(MergeRequest request);
/**
* Add a child node given the fullPath and relative path.
*/
MergeNode addChild(String fullPath, String path) {
MergeNode childNode = MergeHandler.createMergeNode(fullPath, targetDescriptor, path);
if (children == null) {
children = new LinkedHashMap<>();
}
children.put(path, childNode);
return childNode;
}
/**
* Return the node given the relative path.
*/
MergeNode get(String path) {
if (children != null) {
return children.get(path);
}
return null;
}
/**
* Return the outline beans as a map keyed by Id values.
*/
Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy