Hi Andrew
I can't be sure but does this commit reslove this jira issue? https://issues.apache.org/jira/browse/OFBIZ-309 Thanks Scott [hidden email] wrote: > Author: jaz > Date: Thu Jan 4 15:45:08 2007 > New Revision: 492815 > > URL: http://svn.apache.org/viewvc?view=rev&rev=492815 > Log: > changed which implement other services to specifiy if the parameters should be optional or default to the inherited service; rather than always being optional. > > Modified: > ofbiz/trunk/framework/service/dtd/services.xsd > ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java > ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java > > Modified: ofbiz/trunk/framework/service/dtd/services.xsd > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/dtd/services.xsd?view=diff&rev=492815&r1=492814&r2=492815 > ============================================================================== > --- ofbiz/trunk/framework/service/dtd/services.xsd (original) > +++ ofbiz/trunk/framework/service/dtd/services.xsd Thu Jan 4 15:45:08 2007 > @@ -145,6 +145,15 @@ > </xs:element> > <xs:attributeGroup name="attlist.implements"> > <xs:attribute type="xs:string" name="service" use="required"/> > + <xs:attribute type="xs:string" name="optional" default="true"> > + <xs:simpleType> > + <xs:restriction base="xs:token"> > + <xs:enumeration value="true"/> > + <xs:enumeration value="false"/> > + </xs:restriction> > + </xs:simpleType> > + > + </xs:attribute> > </xs:attributeGroup> > <xs:element name="auto-attributes"> > <xs:complexType> > > Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java?view=diff&rev=492815&r1=492814&r2=492815 > ============================================================================== > --- ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java (original) > +++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java Thu Jan 4 15:45:08 2007 > @@ -824,7 +824,10 @@ > if (implServices != null && implServices.size() > 0 && dctx != null) { > Iterator implIter = implServices.iterator(); > while (implIter.hasNext()) { > - String serviceName = (String) implIter.next(); > + ModelServiceIface iface = (ModelServiceIface) implIter.next(); > + String serviceName = iface.getService(); > + boolean optional = iface.isOptional(); > + > ModelService model = dctx.getModelService(serviceName); > if (model != null) { > Iterator contextParamIter = model.contextParamList.iterator(); > @@ -836,12 +839,17 @@ > // TODO: this is another case where having different optional/required settings for IN and OUT would be quite valuable... > if (!"INOUT".equals(existingParam.mode) && !existingParam.mode.equals(newParam.mode)) { > existingParam.mode = "INOUT"; > - existingParam.optional = true; > - } > + if (existingParam.optional || newParam.optional) { > + existingParam.optional = true; > + } > + } > } else { > - // instead of calling: addParamClone(param), do it here because we want to make the inputs optional and such because earlier services in a group may create the parameters for later > ModelParam newParamClone = new ModelParam(newParam); > - newParamClone.optional = true; > + if (optional) { > + // default option is to make this optional, however the service can override and > + // force the clone to use the parents setting. > + newParamClone.optional = true; > + } > this.addParam(newParamClone); > } > } > > Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java?view=diff&rev=492815&r1=492814&r2=492815 > ============================================================================== > --- ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java (original) > +++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelServiceReader.java Thu Jan 4 15:45:08 2007 > @@ -402,8 +402,10 @@ > while (implIter.hasNext()) { > Element implement = (Element) implIter.next(); > String serviceName = UtilXml.checkEmpty(implement.getAttribute("service")); > + boolean optional = UtilXml.checkBoolean(implement.getAttribute("optional"), false); > if (serviceName.length() > 0) > - service.implServices.add(serviceName); > + service.implServices.add(new ModelServiceIface(serviceName, optional)); > + //service.implServices.add(serviceName); > } > } > > > > > |
Free forum by Nabble | Edit this page |