Scarab commit: svn commit: r10651 - trunk/src/java/org/tigris/scarab: om tools

[email protected]
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
Author: ronvoe122
Date: 2008-11-30 12:27:25-0800
New Revision: 10651

Modified:
   trunk/src/java/org/tigris/scarab/om/MITList.java
   trunk/src/java/org/tigris/scarab/om/MITListItem.java
   trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java

Log:
SCB2577, SCB2536: 
- avoid exception when determining the display name of an attribute from a MITList containing multiple modules
- ScarabRequestTool now delegates to MITList and MITListItem to determine the display name

Modified: trunk/src/java/org/tigris/scarab/om/MITList.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/MITList.java?view=diff&rev=10651&p1=trunk/src/java/org/tigris/scarab/om/MITList.java&p2=trunk/src/java/org/tigris/scarab/om/MITList.java&r1=10650&r2=10651
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/MITList.java	(original)
+++ trunk/src/java/org/tigris/scarab/om/MITList.java	2008-11-30 12:27:25-0800
@@ -1295,4 +1295,32 @@
 
         return sb.append(']').toString();
     }
+
+    /**
+     * Find the best name for an attribute according to this list
+     * If all items in this list use the same name for the attribute this name is returned.
+     * Otherwise the global name is returned.
+     * 
+     * @param attribute
+     * @return
+     * @throws TorqueException
+     */
+    public String getAttributeDisplayName(final Attribute attribute) 
+        throws TorqueException
+    {
+        String displayName = null;
+        for( MITListItem item : ((List<MITListItem>)getExpandedMITListItems()))
+        {
+            final String nameCandidate = item.getAttributeDisplayName(attribute);
+
+            displayName = displayName == null ? nameCandidate : displayName;
+            
+            if(!displayName.equals(nameCandidate))
+            {
+                displayName = attribute.getName();
+                break;
+            }            
+        }
+        return displayName;
+    }
 }

Modified: trunk/src/java/org/tigris/scarab/om/MITListItem.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/MITListItem.java?view=diff&rev=10651&p1=trunk/src/java/org/tigris/scarab/om/MITListItem.java&p2=trunk/src/java/org/tigris/scarab/om/MITListItem.java&r1=10650&r2=10651
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/MITListItem.java	(original)
+++ trunk/src/java/org/tigris/scarab/om/MITListItem.java	2008-11-30 12:27:25-0800
@@ -220,4 +220,23 @@
 
         return sb.toString();
     }
+
+    public String getAttributeDisplayName(final Attribute attribute) throws TorqueException
+    {
+        if (!isSingleIssueType())
+        {
+            // FIXME: we should in fact use isSingleModuleIssueType() here
+            //        but the reference of multiple modules 
+            //        is represented by moduleId == MULTIPE_KEY,
+            //        which has the value of 0
+            //        which is also the id of the global module
+            //        probably null is a better value for MULTIPE_KEY
+            throw new IllegalStateException(
+               "method should not be called on an item " +
+               "including issue types");
+        }
+        return getModule()
+           .getRModuleAttribute(attribute, getIssueType())
+           .getDisplayValue();
+    }
 }

Modified: trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java?view=diff&rev=10651&p1=trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java&p2=trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java&r1=10650&r2=10651
==============================================================================
--- trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java	(original)
+++ trunk/src/java/org/tigris/scarab/tools/ScarabRequestTool.java	2008-11-30 12:27:25-0800
@@ -693,9 +693,6 @@
 
     /**
      * Find the best name for an attribute against the current mitList.
-     * If all issuetypes current in the user's mitList use the same name for the attribute this name is returned.
-     * Otherwise the global name is returned.
-     *
      *
      * @param attribute the attribute a name is requested for
      * @return the name to use
@@ -711,46 +708,16 @@
 
     /**
      * Find the best name for an attribute against the current mitList.
-     * If all issuetypes current in the mitList use the same name for the attribute this name is returned.
-     * Otherwise the global name is returned.
      *
      * @param attribute the attribute a name is requested for
      * @param mitlist use a custom MITList instead of the user's current mitlist
      * @return the name to use
      * @throws TorqueException
      */
-    public String getRModuleAttributeDisplayName(final Attribute attribute, final MITList mitlist)
+    private String getRModuleAttributeDisplayName(final Attribute attribute, final MITList mitlist)
             throws TorqueException
     {
-        String result = null;
-
-        final String globalName = attribute.getName();
-
-        for(Iterator it = mitlist.getIssueTypeIds().iterator(); it.hasNext();)
-        {
-            final IssueType issueType = IssueTypeManager.getInstance((Integer) it.next());
-
-            final Module m = mitlist.getModule();
-
-            if(null != m && null != m.getRModuleAttribute(attribute, issueType))
-            {
-
-                final String name = m
-                    .getRModuleAttribute(attribute, issueType)
-                    .getDisplayValue();
-
-                if(null == result)
-                {
-                    result = name;
-                }
-
-                if(!result.equals(name))
-                {
-                    result = globalName;
-                }
-            }
-        }
-        return result;
+        return mitlist.getAttributeDisplayName(attribute);
     }
 
     /**
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.