StringBuffer result=new StringBuffer(ADAPTOR_PREFIX_MARKER); result.append(".woa/wa/");  result.append(valueForBinding("actionClass")); result.append('/'); result.append(valueForBinding("directActionName")); result.append('?');  if (hasBinding("bindingDictionary")) { NSDictionary bdgs = (NSDictionary)valueForBinding("bindingDictionary"); if (bdgs != null) { NSArray allKeys = bdgs.allKeys(); for (Enumeration e = allKeys.objectEnumerator(); e.hasMoreElements();) { String key = (String)e.nextElement(); String value = bdgs.objectForKey(key).toString(); appendSeparatorIfLastNot('&', '?', result); result.append(key); result.append("="); result.append(ERXCrypto.blowfishEncode(value)); } } } if(hasBinding("unencryptedBindingDictionary")) { NSDictionary bdgs = (NSDictionary)valueForBinding("unencryptedBindingDictionary"); if (bdgs != null) { NSArray allKeys = bdgs.allKeys(); for (Enumeration e = allKeys.objectEnumerator(); e.hasMoreElements();) { String key = (String)e.nextElement(); String value = bdgs.objectForKey(key).toString(); appendSeparatorIfLastNot('&', '?', result); result.append(key); result.append("="); result.append(value); } } } if (allObjectsForFormValues().count() > 0) { appendSeparatorIfLastNot('&', '?', result); result.append(encodeEnterpriseObjectsPrimaryKeyForUrl(allObjectsForFormValues(), entityNameSeparator(), shouldEncryptObjectFormValues())); }  result.append(SUFFIX_MARKER); return result.toString();
String directActionName = null; NSDictionary encryptedBindingDict   = null; NSDictionary unencryptedBindingDict = null; NSArray formValuesObjects = null;     if(this.hasBinding("actionClass")) { StringBuffer daBuffer = new StringBuffer(); daBuffer.append(this.valueForBinding("actionClass")); daBuffer.append('/'); daBuffer.append(this.valueForBinding("directActionName")); directActionName = daBuffer.toString(); } else { directActionName = (String)this.valueForBinding("directActionName"); }  if((directActionName == null) || (directActionName.length() == 0)) throw new IllegalArgumentException("ERXDirectActionHyperlink: directActionName must be specified.");    if(hasBinding("bindingDictionary")) encryptedBindingDict = (NSDictionary)valueForBinding("bindingDictionary");  if(hasBinding("unencryptedBindingDictionary")) unencryptedBindingDict = (NSDictionary)valueForBinding("unencryptedBindingDictionary");   if(allObjectsForFormValues().count() > 0) formValuesObjects = allObjectsForFormValues();   return directActionHyperlink(this.context(), this.shouldEncryptObjectFormValues(), formValuesObjects, entityNameSeparator(), encryptedBindingDict, unencryptedBindingDict, this.application().name(), directActionName, this.relative(), null);
    public String href() {        //FIXME: Need to make this optional        StringBuffer result=new StringBuffer(ADAPTOR_PREFIX_MARKER);        result.append(".woa/wa/");        // FIXME: Should make actionClass optional        result.append(valueForBinding("actionClass"));        result.append('/');        result.append(valueForBinding("directActionName"));        result.append('?');         // FIXME: Rename binding to encryptedBindingDictionary        if (hasBinding("bindingDictionary")) {            NSDictionary bdgs = (NSDictionary)valueForBinding("bindingDictionary");            if (bdgs != null) {                NSArray allKeys = bdgs.allKeys();                for (Enumeration e = allKeys.objectEnumerator();                     e.hasMoreElements();) {                    String key = (String)e.nextElement();                    String value = bdgs.objectForKey(key).toString();                    appendSeparatorIfLastNot('&', '?', result);                    result.append(key);                    result.append("=");                    result.append(ERXCrypto.blowfishEncode(value));                }            }        }        if(hasBinding("unencryptedBindingDictionary")) {            NSDictionary bdgs = (NSDictionary)valueForBinding("unencryptedBindingDictionary");            if (bdgs != null) {                NSArray allKeys = bdgs.allKeys();                for (Enumeration e = allKeys.objectEnumerator();                     e.hasMoreElements();) {                    String key = (String)e.nextElement();                    String value = bdgs.objectForKey(key).toString();                    appendSeparatorIfLastNot('&', '?', result);                    result.append(key);                    result.append("=");                    result.append(value);                }            }        }        if (allObjectsForFormValues().count() > 0) {            appendSeparatorIfLastNot('&', '?', result);            result.append(encodeEnterpriseObjectsPrimaryKeyForUrl(allObjectsForFormValues(), entityNameSeparator(), shouldEncryptObjectFormValues()));        }        // FIXME: Need to make this optional as well        result.append(SUFFIX_MARKER);        return result.toString();    }