/* * Copyright 2007-2008 Yoav Abrahami * * 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 com.abra.j2xb.exampleBeans.customType; import com.abra.j2xb.beans.propertyEditors.MOPropertyEditor; import com.abra.j2xb.beans.model.MOValueValidationResult; import com.abra.j2xb.beans.model.MOPropertySimpleTypeDescriptor; import com.abra.j2xb.beans.xmlBinding.XmlValue; import com.abra.j2xb.beans.exceptions.MOBeansException; import com.abra.j2xb.annotations.xmlAnnotations.MoXmlBaseSimpleType; /** * @author Yoav Abrahami * @version 1.0, May 1, 2008 * @since JDK1.5 */ public class IPAddressPropertyEditor implements MOPropertyEditor { public Object fromString(Class<?> propertyValueType, String value) { return new IPAddressValue(value); } public String toString(Class<?> propertyValueType, Object value) { return value.toString(); } public MOValueValidationResult validateStringEncoding(Class propertyValueType, String value) { if (IPAddressValue.isValidStringValue(value)) return new MOValueValidationResult(); else return new MOValueValidationResult(false, propertyValueType, String.format("the value [%s] is not a valid ip address", value)); } public Object fromXmlValue(MOPropertySimpleTypeDescriptor simpleTypeDescriptor, XmlValue value) throws MOBeansException { return new IPAddressValue((String)value.getValue()); } public XmlValue toXmlValue(MOPropertySimpleTypeDescriptor simpleTypeDescriptor, Object value) { return new XmlValue(value.toString(), MoXmlBaseSimpleType.xmlString); } public boolean isCompatibleSimpleType(MoXmlBaseSimpleType xmlSimpleType) { return xmlSimpleType == MoXmlBaseSimpleType.xmlString; } public MoXmlBaseSimpleType getXmlDefaultSimpleType(MoXmlBaseSimpleType xmlSimpleType) { return MoXmlBaseSimpleType.xmlString; } public String[] getEnumerations(Class<?> propertyValueType) { return new String[0]; } public boolean supportsStringValidations() { return false; } public boolean supportsNumberValidations() { return false; } public int compareValues(Object obj_a, Object obj_b) { return obj_a.toString().compareTo(obj_b.toString()); } }