001package io.ebeaninternal.server.type; 002 003import io.ebean.text.TextException; 004import io.ebeaninternal.server.core.BasicTypeConverter; 005import io.ebeanservice.docstore.api.mapping.DocPropertyType; 006import com.fasterxml.jackson.core.JsonGenerator; 007import com.fasterxml.jackson.core.JsonParser; 008 009import java.io.DataInput; 010import java.io.DataOutput; 011import java.io.IOException; 012import java.sql.SQLException; 013import java.sql.Types; 014 015/** 016 * ScalarType for Short and short. 017 */ 018public class ScalarTypeShort extends ScalarTypeBase<Short> { 019 020 public ScalarTypeShort() { 021 super(Short.class, true, Types.SMALLINT); 022 } 023 024 @Override 025 public void bind(DataBind b, Short value) throws SQLException { 026 if (value == null) { 027 b.setNull(Types.SMALLINT); 028 } else { 029 b.setShort(value); 030 } 031 } 032 033 @Override 034 public Short read(DataReader dataReader) throws SQLException { 035 return dataReader.getShort(); 036 } 037 038 @Override 039 public Object toJdbcType(Object value) { 040 return BasicTypeConverter.toShort(value); 041 } 042 043 @Override 044 public Short toBeanType(Object value) { 045 return BasicTypeConverter.toShort(value); 046 } 047 048 @Override 049 public String formatValue(Short v) { 050 return v.toString(); 051 } 052 053 @Override 054 public Short parse(String value) { 055 return Short.valueOf(value); 056 } 057 058 @Override 059 public Short convertFromMillis(long systemTimeMillis) { 060 throw new TextException("Not Supported"); 061 } 062 063 @Override 064 public boolean isDateTimeCapable() { 065 return false; 066 } 067 068 @Override 069 public Short readData(DataInput dataInput) throws IOException { 070 if (!dataInput.readBoolean()) { 071 return null; 072 } else { 073 return dataInput.readShort(); 074 } 075 } 076 077 @Override 078 public void writeData(DataOutput dataOutput, Short value) throws IOException { 079 080 if (value == null) { 081 dataOutput.writeBoolean(false); 082 } else { 083 dataOutput.writeBoolean(true); 084 dataOutput.writeShort(value); 085 } 086 } 087 088 @Override 089 public Short jsonRead(JsonParser parser) throws IOException { 090 return parser.getShortValue(); 091 } 092 093 @Override 094 public void jsonWrite(JsonGenerator writer, Short value) throws IOException { 095 writer.writeNumber(value); 096 } 097 098 @Override 099 public DocPropertyType getDocType() { 100 return DocPropertyType.SHORT; 101 } 102 103}