/* * _WOJExtensionsUtil.java * (c) Copyright 2001 Apple Computer, Inc. All rights reserved. * This a modified version. * Original license: http://www.opensource.apple.com/apsl/ */ package com.webobjects.woextensions; import com.webobjects.appserver.WOComponent; import com.webobjects.eocontrol.EOEnterpriseObject; import com.webobjects.eocontrol.EOSortOrdering; import com.webobjects.foundation.NSArray; import com.webobjects.foundation.NSComparator; import com.webobjects.foundation.NSMutableArray; /** * <span class="ja"> * woextensions の private クラス * </span> */ public class _WOJExtensionsUtil { public static boolean booleanValue(Object associationValue) { boolean associationEvaluation = true; if (associationValue!=null) { // is this a number. If it is, evaluate it. if (associationValue instanceof Number) { if (((Number) associationValue).intValue()==0) { associationEvaluation = false; } } else if (associationValue instanceof String) { String associationValueString = (String)associationValue; // is this no or false ? if (associationValueString.equalsIgnoreCase("no") || associationValueString.equalsIgnoreCase("false")) { associationEvaluation = false; } else { // is this a string representing a number ? Try to evaluate it. try { if (Integer.parseInt(associationValueString)==0) { associationEvaluation = false; } } catch (NumberFormatException e) { throw new RuntimeException("error parsing boolean from value "+ associationValueString); } } } else if (associationValue instanceof Boolean) { associationEvaluation = ((Boolean) associationValue).booleanValue(); } else { // do nothing, it's non-null, so it's true ! } } else { associationEvaluation = false; } return associationEvaluation; } protected static void _sortEOsUsingSingleKey(NSMutableArray<? extends EOEnterpriseObject> array, String aKey) throws NSComparator.ComparisonException { NSArray<EOSortOrdering> orderings = new NSArray<EOSortOrdering>(EOSortOrdering.sortOrderingWithKey(aKey, EOSortOrdering.CompareAscending)); EOSortOrdering.sortArrayUsingKeyOrderArray(array, orderings); } protected static Object valueForBindingOrNull(String binding,WOComponent component) { // wod bindings of the type binding = null are converted to False Boolean // associations, which isn't always what we want. This utility method // assumes that a Boolean value means the binding value was intended to // be null if (binding == null) { return null; } Object result = component.valueForBinding(binding); if (result instanceof Boolean) { result = null; } return result; } }