~ubuntu-branches/ubuntu/wily/libhibernate3-java/wily-proposed

« back to all changes in this revision

Viewing changes to src/org/hibernate/sql/HSQLCaseFragment.java

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2007-10-14 14:43:34 UTC
  • Revision ID: james.westby@ubuntu.com-20071014144334-eamc8i0q10gs1aro
Tags: upstream-3.2.5
ImportĀ upstreamĀ versionĀ 3.2.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//$Id: HSQLCaseFragment.java 3890 2004-06-03 16:31:32Z steveebersole $
 
2
package org.hibernate.sql;
 
3
 
 
4
import java.util.Iterator;
 
5
import java.util.Map;
 
6
 
 
7
/**
 
8
 * The HSQL CASEWHEN function.
 
9
 * <br>
 
10
 * <code>casewhen(..., ..., ...) as ...</code>
 
11
 * <br>
 
12
 * @author Wolfgang Jung
 
13
 */
 
14
public class HSQLCaseFragment extends CaseFragment {
 
15
 
 
16
        public String toFragmentString() {
 
17
                StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 );
 
18
                StringBuffer buf2 = new StringBuffer( cases.size() );
 
19
 
 
20
                Iterator iter = cases.entrySet().iterator();
 
21
                while ( iter.hasNext() ) {
 
22
                        Map.Entry me = (Map.Entry) iter.next();
 
23
                        buf.append(" casewhen(")
 
24
                                .append( me.getKey() )
 
25
                                .append(" is not null")
 
26
                                .append(", ")
 
27
                                .append( me.getValue() )
 
28
                                .append(", ");
 
29
                        buf2.append(")");
 
30
                }
 
31
 
 
32
                buf.append("-1"); //null caused some problems
 
33
                buf.append( buf2.toString() );
 
34
                if ( returnColumnName!=null ) {
 
35
                        buf.append(" as ")
 
36
                                .append(returnColumnName);
 
37
                }
 
38
                return buf.toString();
 
39
        }
 
40
}
 
41