Author: ernst
Date: 2009-06-29 16:36:26 +0200 (Mon, 29 Jun 2009)
New Revision: 36474
Modified:
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/EntityConfigLoader.java
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/Populator.java
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/QueryDirection.java
speeltuin/ernst/mmbase-vob/src/test/java/nl/vpro/mmbase/vob/EntityConfigLoaderTest.java
Log:
work in progress
Modified:
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/EntityConfigLoader.java
===================================================================
---
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/EntityConfigLoader.java
2009-06-29 14:36:10 UTC (rev 36473)
+++
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/EntityConfigLoader.java
2009-06-29 14:36:26 UTC (rev 36474)
@@ -4,16 +4,107 @@
import java.lang.reflect.ParameterizedType;
import java.util.*;
-import nl.vpro.mmbase.vob.Populator.*;
import nl.vpro.mmbase.vob.annotations.*;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.mmbase.util.logging.Logger;
import org.mmbase.util.logging.Logging;
import org.springframework.context.annotation.ClassPathBeanDefinitionScanner;
import org.springframework.context.support.GenericApplicationContext;
public class EntityConfigLoader {
+ public static final class EntityEmbedding{
+ public final String relationRole;
+ public final String embeddingType;
+ public final String embeddedType;
+ public final Class<?> EntityClass;
+ public final boolean isRoot;
+ public final QueryDirection queryDirection;
+ public EntityEmbedding(String relationRole, String embeddingType,
String embeddedType, Class<?> entityClass, boolean isRoot, QueryDirection
direction) {
+ this.isRoot = isRoot;
+ this.queryDirection = direction;
+ this.relationRole = relationRole;
+ this.embeddingType = embeddingType;
+ this.embeddedType = embeddedType;
+ EntityClass = entityClass;
+ }
+ public String toString(){
+ return new ReflectionToStringBuilder(this).toString();
+ }
+ }
+
+ public static final class EntityAggregation{
+ public final String relationRole;
+ public final Class<?> aggregatingEntityClass;
+ public final Class<?> aggregatedEntityClass;
+ public final QueryDirection queryDirection;
+ public EntityAggregation(String relationRole,
Class<?>aggregatingEntityClass, Class<?> aggregatedEntityClass, QueryDirection
direction) {
+ this.queryDirection = direction;
+ this.relationRole = relationRole;
+ this.aggregatingEntityClass = aggregatingEntityClass;
+ this.aggregatedEntityClass = aggregatedEntityClass;
+ }
+ public String toString(){
+ return new ReflectionToStringBuilder(this).toString();
+ }
+ }
+
+ public static final class QueryStep{
+ public String step;
+ public String relationRole;
+ public QueryDirection direction;
+ public QueryStep(String step, String relationRole, QueryDirection
direction) {
+ this.step = step;
+ this.relationRole = relationRole;
+ this.direction = direction;
+ }
+ public String toString(){
+ return new ReflectionToStringBuilder(this).toString();
+ }
+ }
+
+ public static final class Path{
+ public final List<QueryStep> steps;
+ public final String root;
+
+ public Path(String root) {
+ this.root = root;
+ steps = new ArrayList<QueryStep>();
+ }
+
+ public Path clone(){
+ Path clone = new Path(this.root);
+ clone.steps.addAll(this.steps);
+ return clone;
+ }
+
+ public String toString(){
+ return new ReflectionToStringBuilder(this).toString();
+ }
+
+ public String pathAsString(){
+ StringBuilder sb = new StringBuilder(root);
+ sb.append(",");
+ for(QueryStep step:steps){
+ sb.append(step.relationRole);
+ sb.append(",");
+ sb.append(step.step);
+ sb.append(",");
+ }
+ return sb.toString().substring(0, sb.length() - 1);
+ }
+
+ public String queryDirectionsAsString(){
+ StringBuilder sb = new StringBuilder();
+ for(QueryStep step:steps){
+ sb.append(step.direction.toString());
+ sb.append(",");
+ }
+ return sb.toString().substring(0, sb.length() - 1);
+ }
+ }
+
private static Logger log =
Logging.getLoggerInstance(EntityConfigLoader.class.getName());
private Map<String, Class<?>> entityRegistry = new HashMap<String,
Class<?>>();
private boolean configLoaded = false;
@@ -139,7 +230,7 @@
return result;
}
- public List<Path> findPathsToEntity(Class<?> rootEntity, Class<?>
targetEntity, Path path, EntityAggregation previous) {
+ private List<Path> findPathsToEntity(Class<?> rootEntity, Class<?>
targetEntity, Path path, EntityAggregation previous) {
List<Path> result = new ArrayList<Path>();
if(path == null){
@@ -194,7 +285,7 @@
}
/**
- * finds all occurences of the embedding of a given node type.
+ * finds all entities that embed a node of given type
* @param builder the node type you want to find embedding entities for.
* @return
*/
Modified:
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/Populator.java
===================================================================
--- speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/Populator.java
2009-06-29 14:36:10 UTC (rev 36473)
+++ speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/Populator.java
2009-06-29 14:36:26 UTC (rev 36474)
@@ -33,9 +33,11 @@
public Populator(final EntityConfigLoader entityConfigLoader ){
this(entityConfigLoader, new DefaultQueryHelper());
}
+
+ public EntityConfigLoader getEntityConfigLoader(){
+ return this.entityConfigLoader;
+ }
-
-
/**
* Call this method to convert a node to a graph of corresponding objects,
* including all annotated associations etc. This method will be called
@@ -259,98 +261,4 @@
private static <T> T uncheckedCast(final Object obj) {
return (T) obj;
}
-
-
-
-
- public static final class EntityEmbedding{
- public final String relationRole;
- public final String embeddingType;
- public final String embeddedType;
- public final Class<?> EntityClass;
- public final boolean isRoot;
- public final QueryDirection queryDirection;
- public EntityEmbedding(String relationRole, String embeddingType,
String embeddedType, Class<?> entityClass, boolean isRoot, QueryDirection
direction) {
- this.isRoot = isRoot;
- this.queryDirection = direction;
- this.relationRole = relationRole;
- this.embeddingType = embeddingType;
- this.embeddedType = embeddedType;
- EntityClass = entityClass;
- }
- public String toString(){
- return new ReflectionToStringBuilder(this).toString();
- }
- }
-
- public static final class EntityAggregation{
- public final String relationRole;
- public final Class<?> aggregatingEntityClass;
- public final Class<?> aggregatedEntityClass;
- public final QueryDirection queryDirection;
- public EntityAggregation(String relationRole,
Class<?>aggregatingEntityClass, Class<?> aggregatedEntityClass, QueryDirection
direction) {
- this.queryDirection = direction;
- this.relationRole = relationRole;
- this.aggregatingEntityClass = aggregatingEntityClass;
- this.aggregatedEntityClass = aggregatedEntityClass;
- }
- public String toString(){
- return new ReflectionToStringBuilder(this).toString();
- }
- }
-
- public static final class QueryStep{
- public String step;
- public String relationRole;
- public QueryDirection direction;
- public QueryStep(String step, String relationRole, QueryDirection
direction) {
- this.step = step;
- this.relationRole = relationRole;
- this.direction = direction;
- }
- public String toString(){
- return new ReflectionToStringBuilder(this).toString();
- }
- }
-
- public static final class Path{
- public final List<QueryStep> steps;
- public final String root;
-
- public Path(String root) {
- this.root = root;
- steps = new ArrayList<QueryStep>();
- }
-
- public Path clone(){
- Path clone = new Path(this.root);
- clone.steps.addAll(this.steps);
- return clone;
- }
-
- public String toString(){
- return new ReflectionToStringBuilder(this).toString();
- }
-
- public String pathAsString(){
- StringBuilder sb = new StringBuilder(root);
- sb.append(",");
- for(QueryStep step:steps){
- sb.append(step.relationRole);
- sb.append(",");
- sb.append(step.step);
- sb.append(",");
- }
- return sb.toString().substring(0, sb.length() - 1);
- }
-
- public String queryDirectionsAsString(){
- StringBuilder sb = new StringBuilder();
- for(QueryStep step:steps){
- sb.append(step.direction.toString());
- sb.append(",");
- }
- return sb.toString().substring(0, sb.length() - 1);
- }
- }
}
Modified:
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/QueryDirection.java
===================================================================
---
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/QueryDirection.java
2009-06-29 14:36:10 UTC (rev 36473)
+++
speeltuin/ernst/mmbase-vob/src/main/java/nl/vpro/mmbase/vob/QueryDirection.java
2009-06-29 14:36:26 UTC (rev 36474)
@@ -10,5 +10,8 @@
private String label;
QueryDirection(String label){this.label = label;}
+ /**
+ * returns a value that can be used in mmbase queries ('source',
'destination' or 'both)
+ */
public String toString(){return label;}
}
Modified:
speeltuin/ernst/mmbase-vob/src/test/java/nl/vpro/mmbase/vob/EntityConfigLoaderTest.java
===================================================================
---
speeltuin/ernst/mmbase-vob/src/test/java/nl/vpro/mmbase/vob/EntityConfigLoaderTest.java
2009-06-29 14:36:10 UTC (rev 36473)
+++
speeltuin/ernst/mmbase-vob/src/test/java/nl/vpro/mmbase/vob/EntityConfigLoaderTest.java
2009-06-29 14:36:26 UTC (rev 36474)
@@ -4,7 +4,7 @@
import java.util.List;
-import nl.vpro.mmbase.vob.Populator.*;
+import nl.vpro.mmbase.vob.EntityConfigLoader.*;
import nl.vpro.mmbase.vob.domain.*;
import org.junit.Before;
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs