That seems like a useful thing to add.  I was never happy with the duplicated 
validations.


Chuck


On 2012-08-05, at 10:43 PM, Johann Werner wrote:

> So perhaps a dynamic component should check for an existing API file during 
> instantiation and perform its validation rules? That way these validations 
> would not be duplicated.
> 
> jw
> 
> 
> Am 06.08.2012 um 07:14 schrieb Chuck Hill:
> 
>> Hi Johann,
>> 
>> If the error is WOLips is ignored (or validation turned off), then this code 
>> is needed to give a useful error message.  WIthout it, it would be hard to 
>> track down the cause.
>> 
>> Chuck
>> 
>> 
>> On 2012-08-04, at 8:34 AM, Johann Werner wrote:
>> 
>>> Hi list,
>>> 
>>> in many dynamic element classes there are some checks in the constructor if 
>>> certain bindings exist or not. Example from ERAttachmentLink:
>>> 
>>> public ERAttachmentLink(String name, NSDictionary<String, WOAssociation> 
>>> associations, WOElement template) {
>>>   super(name, associations, template);
>>>   _associations = associations.mutableClone();
>>>   _attachment = _associations.removeObjectForKey("attachment");
>>>   _download = _associations.removeObjectForKey("download");
>>>   if (_attachment == null) {
>>>     throw new WODynamicElementCreationException("<ERAttachmentLink> The 
>>> 'attachment' binding is required.");
>>>   }
>>>   _configurationName = 
>>> _associations.removeObjectForKey("configurationName");
>>> }
>>> 
>>> Most of the components do have an API file (for those missing we will have 
>>> to fix and add them) that WOLips uses to do binding validation within the 
>>> component editor. In the API file you can set a binding as mandatory or 
>>> even more complex rules by manually editing the file in a text editor. An 
>>> API file should be present for a component as you will get instant feedback 
>>> in the component editor while changing bindings.
>>> 
>>> Now looking at the checks in code this is sort of duplicated code. In the 
>>> example above if I don't add the attachment binding to the ERAttachmendLink 
>>> on a page of mine the component editor will already show an error whereas 
>>> the exception that the binding is missing will only be thrown when a user 
>>> will hit the enclosing page. So do we really need that extra logic in the 
>>> constructors? I would tend to no (at least for those validations that can 
>>> be covered by an API file), remove them and prefer keeping the API files 
>>> correct. What is your opinion?
>>> 
>>> jw
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>>> 
>>> This email sent to [email protected]
>> 
>> -- 
>> Chuck Hill             Senior Consultant / VP Development
>> 
>> Practical WebObjects - for developers who want to increase their overall 
>> knowledge of WebObjects or who are trying to solve specific problems.    
>> http://www.global-village.net/gvc/practical_webobjects
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 

-- 
Chuck Hill             Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall 
knowledge of WebObjects or who are trying to solve specific problems.    
http://www.global-village.net/gvc/practical_webobjects









 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to