public JiraQueryBuilder sortColumnNames()

in src/main/java/org/apache/maven/plugins/jira/ParameterQueryBuilder.java [241:332]


    public JiraQueryBuilder sortColumnNames( String sortColumnNames )
    {
        // get the Sort order
        int validSortColumnNames = 0;
        if ( sortColumnNames != null )
        {
            String[] sortColumnNamesArray = sortColumnNames.split( "," );
            // N.B. Add in reverse order (it's the way JIRA 3 likes it!!)
            for ( int i = sortColumnNamesArray.length - 1; i >= 0; i-- )
            {
                String lowerColumnName = sortColumnNamesArray[i].trim().toLowerCase( Locale.ENGLISH );
                boolean descending = false;
                String fieldName = null;
                if ( lowerColumnName.endsWith( "desc" ) )
                {
                    descending = true;
                    lowerColumnName = lowerColumnName.substring( 0, lowerColumnName.length() - 4 ).trim();
                }
                else if ( lowerColumnName.endsWith( "asc" ) )
                {
                    descending = false;
                    lowerColumnName = lowerColumnName.substring( 0, lowerColumnName.length() - 3 ).trim();
                }

                switch ( lowerColumnName )
                {
                    case "key":
                        fieldName = "issuekey";
                        break;
                    case "summary":
                        fieldName = lowerColumnName;
                        break;
                    case "status":
                        fieldName = lowerColumnName;
                        break;
                    case "resolution":
                        fieldName = lowerColumnName;
                        break;
                    case "assignee":
                        fieldName = lowerColumnName;
                        break;
                    case "reporter":
                        fieldName = lowerColumnName;
                        break;
                    case "type":
                        fieldName = "issuetype";
                        break;
                    case "priority":
                        fieldName = lowerColumnName;
                        break;
                    case "version":
                        fieldName = "versions";
                        break;
                    case "fix version":
                        fieldName = "fixVersions";
                        break;
                    case "component":
                        fieldName = "components";
                        break;
                    case "created":
                        fieldName = lowerColumnName;
                        break;
                    case "updated":
                        fieldName = lowerColumnName;
                        break;
                    default:
                        // skip
                }
                if ( fieldName != null )
                {
                    query.append( "&sorter/field=" );
                    query.append( fieldName );
                    query.append( "&sorter/order=" );
                    query.append( descending ? "DESC" : "ASC" );
                    validSortColumnNames++;
                }
                else
                {
                    // Error in the configuration
                    getLog().error( "maven-changes-plugin: The configured value '" + lowerColumnName
                        + "' for sortColumnNames is not correct." );
                }
            }
            if ( validSortColumnNames == 0 )
            {
                // Error in the configuration
                getLog().error( "maven-changes-plugin: None of the configured sortColumnNames '" + sortColumnNames
                    + "' are correct." );
            }
        }
        return this;
    }