/******************************************************************************* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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.apache.ofbiz.widget.model; import org.apache.ofbiz.widget.model.AbstractModelAction.EntityAnd; import org.apache.ofbiz.widget.model.AbstractModelAction.EntityCondition; import org.apache.ofbiz.widget.model.AbstractModelAction.EntityOne; import org.apache.ofbiz.widget.model.AbstractModelAction.GetRelated; import org.apache.ofbiz.widget.model.AbstractModelAction.GetRelatedOne; import org.apache.ofbiz.widget.model.AbstractModelAction.PropertyMap; import org.apache.ofbiz.widget.model.AbstractModelAction.PropertyToField; import org.apache.ofbiz.widget.model.AbstractModelAction.Script; import org.apache.ofbiz.widget.model.AbstractModelAction.Service; import org.apache.ofbiz.widget.model.AbstractModelAction.SetField; import org.apache.ofbiz.widget.model.ModelFormAction.CallParentActions; /** * An object that generates XML from widget models. * The generated XML is unformatted - if you want to * "pretty print" the XML, then use a transformer. * */ public class XmlWidgetActionVisitor extends XmlAbstractWidgetVisitor implements ModelActionVisitor { public static final String module = XmlWidgetActionVisitor.class.getName(); public XmlWidgetActionVisitor(Appendable writer) { super(writer); } @Override public void visit(CallParentActions callParentActions) throws Exception { writer.append("<call-parent-actions/>"); } @Override public void visit(EntityAnd entityAnd) throws Exception { writer.append("<entity-and/>"); // TODO: Create ByAndFinder visitor } @Override public void visit(org.apache.ofbiz.widget.model.ModelTreeAction.EntityAnd entityAnd) throws Exception { writer.append("<entity-and/>"); // TODO: Create ByAndFinder visitor } @Override public void visit(EntityCondition entityCondition) throws Exception { writer.append("<entity-condition/>"); // TODO: Create ByConditionFinder visitor } @Override public void visit(org.apache.ofbiz.widget.model.ModelTreeAction.EntityCondition entityCondition) throws Exception { writer.append("<entity-condition/>"); // TODO: Create ByConditionFinder visitor } @Override public void visit(EntityOne entityOne) throws Exception { writer.append("<entity-one/>"); // TODO: Create PrimaryKeyFinder visitor } @Override public void visit(GetRelated getRelated) throws Exception { writer.append("<get-related"); visitAttribute("value-field", getRelated.getValueNameAcsr()); visitAttribute("list", getRelated.getListNameAcsr()); visitAttribute("relation-name", getRelated.getRelationName()); visitAttribute("map", getRelated.getMapAcsr()); visitAttribute("order-by-list", getRelated.getOrderByListAcsr()); visitAttribute("use-cache", getRelated.getUseCache()); writer.append("/>"); } @Override public void visit(GetRelatedOne getRelatedOne) throws Exception { writer.append("<get-related-one"); visitAttribute("value-field", getRelatedOne.getValueNameAcsr()); visitAttribute("to-value-field", getRelatedOne.getToValueNameAcsr()); visitAttribute("relation-name", getRelatedOne.getRelationName()); visitAttribute("use-cache", getRelatedOne.getUseCache()); writer.append("/>"); } @Override public void visit(PropertyMap propertyMap) throws Exception { writer.append("<property-map"); visitAttribute("resource", propertyMap.getResourceExdr()); visitAttribute("map-name", propertyMap.getMapNameAcsr()); visitAttribute("global", propertyMap.getGlobalExdr()); writer.append("/>"); } @Override public void visit(PropertyToField propertyToField) throws Exception { writer.append("<property-map"); visitAttribute("resource", propertyToField.getResourceExdr()); visitAttribute("property", propertyToField.getPropertyExdr()); visitAttribute("field", propertyToField.getFieldAcsr()); visitAttribute("default", propertyToField.getDefaultExdr()); visitAttribute("no-locale", propertyToField.getNoLocale()); visitAttribute("arg-list-name", propertyToField.getArgListAcsr()); visitAttribute("global", propertyToField.getGlobalExdr()); writer.append("/>"); } @Override public void visit(Script script) throws Exception { writer.append("<script"); visitAttribute("location", script.getLocation()); visitAttribute("method", script.getMethod()); writer.append("/>"); } @Override public void visit(org.apache.ofbiz.widget.model.ModelTreeAction.Script script) throws Exception { writer.append("<script"); visitAttribute("location", script.getLocation()); visitAttribute("method", script.getMethod()); writer.append("/>"); } @Override public void visit(Service service) throws Exception { writer.append("<service"); visitAttribute("service-name", service.getServiceNameExdr()); visitAttribute("result-map", service.getResultMapNameAcsr()); visitAttribute("auto-field-map", service.getAutoFieldMapExdr()); writer.append(">"); // TODO: Create Field Map visitor writer.append("<field-map/>"); writer.append("</service>"); } @Override public void visit(org.apache.ofbiz.widget.model.ModelFormAction.Service service) throws Exception { writer.append("<service"); visitAttribute("service-name", service.getServiceNameExdr()); visitAttribute("result-map", service.getResultMapNameAcsr()); visitAttribute("auto-field-map", service.getAutoFieldMapExdr()); visitAttribute("result-map-list", service.getResultMapListNameExdr()); visitAttribute("ignore-error", service.getIgnoreError()); writer.append(">"); // TODO: Create Field Map visitor writer.append("<field-map/>"); writer.append("</service>"); } @Override public void visit(org.apache.ofbiz.widget.model.ModelTreeAction.Service service) throws Exception { writer.append("<service"); visitAttribute("service-name", service.getServiceNameExdr()); visitAttribute("result-map", service.getResultMapNameAcsr()); visitAttribute("auto-field-map", service.getAutoFieldMapExdr()); visitAttribute("result-map-list", service.getResultMapListNameExdr()); visitAttribute("result-map-value", service.getResultMapValueNameExdr()); visitAttribute("value", service.getValueNameExdr()); writer.append(">"); // TODO: Create Field Map visitor writer.append("<field-map/>"); writer.append("</service>"); } @Override public void visit(SetField setField) throws Exception { writer.append("<set"); visitAttribute("field", setField.getField()); visitAttribute("from-field", setField.getFromField()); visitAttribute("value", setField.getValueExdr()); visitAttribute("default-value", setField.getDefaultExdr()); visitAttribute("global", setField.getGlobalExdr()); visitAttribute("type", setField.getType()); visitAttribute("to-scope", setField.getToScope()); visitAttribute("from-scope", setField.getFromScope()); writer.append("/>"); } @Override public void visit(org.apache.ofbiz.widget.model.ModelMenuAction.SetField setField) throws Exception { writer.append("<set"); visitAttribute("field", setField.getField()); visitAttribute("from-field", setField.getFromField()); visitAttribute("value", setField.getValueExdr()); visitAttribute("default-value", setField.getDefaultExdr()); visitAttribute("global", setField.getGlobalExdr()); visitAttribute("type", setField.getType()); visitAttribute("to-scope", setField.getToScope()); visitAttribute("from-scope", setField.getFromScope()); writer.append("/>"); } }