001    package biz.hammurapi.sql.syntax;
002    
003    import java.io.Serializable;
004    import java.sql.PreparedStatement;
005    import java.sql.SQLException;
006    
007    import biz.hammurapi.sql.Variant;
008    
009    /**
010     * Greater than
011     * @author Pavel
012     *
013     */
014    public class GreaterThan implements StatementFragment, Serializable {
015            
016            private Variant variant;
017            private String columnName;
018            
019            public GreaterThan(String columnName, boolean value) {
020                    variant = new Variant(value);
021                    this.columnName = columnName;
022            }
023    
024            public GreaterThan(String columnName, byte value) {
025                    variant = new Variant(value);
026                    this.columnName = columnName;
027            }
028    
029            public GreaterThan(String columnName, char value) {
030                    variant = new Variant(value);
031                    this.columnName = columnName;
032            }
033    
034            public GreaterThan(String columnName, double value) {
035                    variant = new Variant(value);
036                    this.columnName = columnName;
037            }
038    
039            public GreaterThan(String columnName, float value) {
040                    variant = new Variant(value);
041                    this.columnName = columnName;
042            }
043    
044            public GreaterThan(String columnName, int value) {
045                    variant = new Variant(value);
046                    this.columnName = columnName;
047            }
048    
049            public GreaterThan(String columnName, long value) {
050                    variant = new Variant(value);
051                    this.columnName = columnName;
052            }
053    
054            public GreaterThan(String columnName, String value) {
055                    variant = new Variant(value);
056                    this.columnName = columnName;
057            }
058    
059            public GreaterThan(String columnName, Object value) {
060                    variant = new Variant(value);
061                    this.columnName = columnName;
062            }
063    
064            public GreaterThan(String columnName, Object value, int sqlType) {
065                    variant = new Variant(value, sqlType);
066                    this.columnName = columnName;
067            }
068    
069            public GreaterThan(String columnName, short value) {
070                    variant = new Variant(value);
071                    this.columnName = columnName;
072            }
073    
074            public String toSqlString() {           
075                    return columnName + ">?";
076            }
077    
078            public int parameterize(PreparedStatement ps, int idx) throws SQLException {
079                    return variant.parameterize(ps, idx);
080            }
081    
082            public int hashCode() {
083                    final int prime = 31;
084                    int result = 1;
085                    result = prime * result
086                                    + ((columnName == null) ? 0 : columnName.hashCode());
087                    result = prime * result + ((variant == null) ? 0 : variant.hashCode());
088                    return result;
089            }
090    
091            public boolean equals(Object obj) {
092                    if (this == obj)
093                            return true;
094                    if (obj == null)
095                            return false;
096                    if (getClass() != obj.getClass())
097                            return false;
098                    final GreaterThan other = (GreaterThan) obj;
099                    if (columnName == null) {
100                            if (other.columnName != null)
101                                    return false;
102                    } else if (!columnName.equals(other.columnName))
103                            return false;
104                    if (variant == null) {
105                            if (other.variant != null)
106                                    return false;
107                    } else if (!variant.equals(other.variant))
108                            return false;
109                    return true;
110            }
111    
112    }