/*
* Copyright 2014 cruxframework.org.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package org.cruxframework.crux.core.client.converter;
import org.cruxframework.crux.core.client.utils.StringUtils;
/**
* @author Thiago da Rosa de Bustamante
*
*/
public abstract class TypeConverters
{
private TypeConverters(){}
@TypeConverter.Converter("stringInteger")
public static class StringIntegerConverter implements TypeConverter<String, Integer>
{
@Override
public Integer to(String a)
{
return (!StringUtils.isEmpty(a)?Integer.parseInt(a):null);
}
@Override
public String from(Integer b)
{
return (b!=null?b.toString():null);
}
}
@TypeConverter.Converter("integerString")
public static class IntegerStringConverter implements TypeConverter<Integer, String>
{
@Override
public String to(Integer a)
{
return (a!=null?a.toString():null);
}
@Override
public Integer from(String b)
{
return (!StringUtils.isEmpty(b)?Integer.parseInt(b):null);
}
}
@TypeConverter.Converter("stringDouble")
public static class StringDoubleConverter implements TypeConverter<String, Double>
{
@Override
public Double to(String a)
{
return (!StringUtils.isEmpty(a)?Double.parseDouble(a):null);
}
@Override
public String from(Double b)
{
return (b!=null?b.toString():null);
}
}
@TypeConverter.Converter("doubleString")
public static class DoubleStringConverter implements TypeConverter<Double, String>
{
@Override
public String to(Double a)
{
return (a!=null?a.toString():null);
}
@Override
public Double from(String b)
{
return (!StringUtils.isEmpty(b)?Double.parseDouble(b):null);
}
}
@TypeConverter.Converter("doubleNumber")
public static class DoubleNumberConverter implements TypeConverter<Double, Number>
{
@Override
public Number to(Double a)
{
return a;
}
@Override
public Double from(Number b)
{
return (b==null?null:b.doubleValue());
}
}
@TypeConverter.Converter("numberDouble")
public static class NumberDoubleConverter implements TypeConverter<Number, Double>
{
@Override
public Double to(Number a)
{
return (a==null?null:a.doubleValue());
}
@Override
public Number from(Double b)
{
return b;
}
}
@TypeConverter.Converter("integerNumber")
public static class IntegerNumberConverter implements TypeConverter<Integer, Number>
{
@Override
public Number to(Integer a)
{
return a;
}
@Override
public Integer from(Number b)
{
return (b==null?null:b.intValue());
}
}
@TypeConverter.Converter("numberInteger")
public static class IntegerDoubleConverter implements TypeConverter<Number, Integer>
{
@Override
public Integer to(Number a)
{
return (a==null?null:a.intValue());
}
@Override
public Number from(Integer b)
{
return b;
}
}
@TypeConverter.Converter("longString")
public static class LongStringConverter implements TypeConverter<Long, String>
{
@Override
public String to(Long a)
{
return (a!=null?a.toString():null);
}
@Override
public Long from(String b)
{
return (!StringUtils.isEmpty(b)?Long.parseLong(b):null);
}
}
@TypeConverter.Converter("stringLong")
public static class StringLongConverter implements TypeConverter<String, Long>
{
@Override
public Long to(String a)
{
return (!StringUtils.isEmpty(a)?Long.parseLong(a):null);
}
@Override
public String from(Long b)
{
return (b!=null?b.toString():null);
}
}
}