You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2009/11/13 08:20:16 UTC
svn commit: r835764 - in
/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model:
DynamicViewEntity.java ModelViewEntity.java
Author: doogie
Date: Fri Nov 13 07:20:15 2009
New Revision: 835764
URL: http://svn.apache.org/viewvc?rev=835764&view=rev
Log:
Methods to convert dynamic views back to xml.
Modified:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/DynamicViewEntity.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/DynamicViewEntity.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/DynamicViewEntity.java?rev=835764&r1=835763&r2=835764&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/DynamicViewEntity.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/DynamicViewEntity.java Fri Nov 13 07:20:15 2009
@@ -18,12 +18,18 @@
*******************************************************************************/
package org.ofbiz.entity.model;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.UtilXml;
import org.ofbiz.entity.Delegator;
import org.ofbiz.entity.model.ModelViewEntity.ComplexAliasMember;
import org.ofbiz.entity.model.ModelViewEntity.ModelAlias;
@@ -77,6 +83,66 @@
return modelViewEntity;
}
+ public String getViewXml(String entityName) throws IOException {
+ Document doc = UtilXml.makeEmptyXmlDocument();
+ Element viewElement = getViewElement(doc, entityName);
+ return UtilXml.writeXmlDocument(viewElement);
+ }
+
+ public Element getViewElement(Document doc, String entityName) {
+ Element viewElement = doc.createElement("view-entity");
+ viewElement.setAttribute("entity-name", entityName);
+
+ for (ModelMemberEntity member: memberModelMemberEntities.values()) {
+ Element memberElement = doc.createElement("member-entity");
+ memberElement.setAttribute("entity-alias", member.getEntityAlias());
+ memberElement.setAttribute("entity-name", member.getEntityName());
+ viewElement.appendChild(memberElement);
+ }
+ for (ModelAliasAll aliasAll: aliasAlls) {
+ Element aliasAllElement = doc.createElement("alias-all");
+ aliasAllElement.setAttribute("entity-alias", aliasAll.getEntityAlias());
+ if (UtilValidate.isNotEmpty(aliasAll.getPrefix())) aliasAllElement.setAttribute("prefix", aliasAll.getPrefix());
+ if (aliasAll.getGroupBy()) aliasAllElement.setAttribute("group-by", "true");
+ if (UtilValidate.isNotEmpty(aliasAll.getFunction())) aliasAllElement.setAttribute("function", aliasAll.getFunction());
+ for (String excludeField: aliasAll) {
+ Element excludeElement = doc.createElement("exclude");
+ excludeElement.setAttribute("field", excludeField);
+ aliasAllElement.appendChild(excludeElement);
+ }
+ viewElement.appendChild(aliasAllElement);
+ }
+ for (ModelAlias alias: aliases) {
+ Element aliasElement = doc.createElement("alias");
+ aliasElement.setAttribute("entity-alias", alias.getEntityAlias());
+ aliasElement.setAttribute("name", alias.getName());
+ if (!alias.getName().equals(alias.getField())) aliasElement.setAttribute("field", alias.getField());
+ String colAlias = ModelUtil.dbNameToVarName(alias.getColAlias());
+ if (!alias.getName().equals(colAlias)) aliasElement.setAttribute("col-alias", colAlias);
+ if (alias.getIsPk() != null) aliasElement.setAttribute("prim-key", alias.getIsPk().toString());
+ if (alias.getGroupBy()) aliasElement.setAttribute("group-by", "true");
+ if (UtilValidate.isNotEmpty(alias.getFunction())) aliasElement.setAttribute("function", alias.getFunction());
+ // TODO: description, complex-alias
+ viewElement.appendChild(aliasElement);
+ }
+ for (ModelViewLink viewLink: viewLinks) {
+ Element viewLinkElement = doc.createElement("view-link");
+ viewLinkElement.setAttribute("entity-alias", viewLink.getEntityAlias());
+ if (viewLink.isRelOptional()) viewLinkElement.setAttribute("rel-optional", "true");
+ viewLinkElement.setAttribute("rel-entity-alias", viewLink.getRelEntityAlias());
+ for (ModelKeyMap keyMap: viewLink) {
+ Element keyMapElement = doc.createElement("key-map");
+ keyMapElement.setAttribute("field-name", keyMap.getFieldName());
+ if (!keyMap.getFieldName().equals(keyMap.getRelFieldName())) keyMapElement.setAttribute("rel-field-name", keyMap.getRelFieldName());
+ viewLinkElement.appendChild(keyMapElement);
+ }
+ // TODO: conditions
+ viewElement.appendChild(viewLinkElement);
+ }
+ // TODO: relations
+ return viewElement;
+ }
+
public String getOneRealEntityName() {
// return first entity name for memberModelMemberEntities Map
if (this.memberModelMemberEntities.size() == 0) {
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java?rev=835764&r1=835763&r2=835764&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/model/ModelViewEntity.java Fri Nov 13 07:20:15 2009
@@ -730,7 +730,7 @@
}
}
- public static class ModelAliasAll implements Serializable {
+ public static class ModelAliasAll implements Serializable, Iterable<String> {
protected String entityAlias = "";
protected String prefix = "";
protected Set<String> fieldsToExclude = null;
@@ -784,6 +784,10 @@
return this.fieldsToExclude.contains(fieldName);
}
}
+
+ public Iterator<String> iterator() {
+ return fieldsToExclude.iterator();
+ }
}
public static class ModelAlias implements Serializable {
@@ -997,7 +1001,7 @@
}
}
- public static class ModelViewLink implements Serializable {
+ public static class ModelViewLink implements Serializable, Iterable<ModelKeyMap> {
protected String entityAlias = "";
protected String relEntityAlias = "";
protected boolean relOptional = false;
@@ -1063,6 +1067,10 @@
return this.keyMaps.iterator();
}
+ public Iterator<ModelKeyMap> iterator() {
+ return this.keyMaps.iterator();
+ }
+
public List<ModelKeyMap> getKeyMapsCopy() {
List<ModelKeyMap> newList = FastList.newInstance();
newList.addAll(this.keyMaps);