001/* 002 * Copyright (C) 2014 konik.io 003 * 004 * This file is part of Konik library. 005 * 006 * Konik library is free software: you can redistribute it and/or modify 007 * it under the terms of the GNU Affero General Public License as published by 008 * the Free Software Foundation, either version 3 of the License, or 009 * (at your option) any later version. 010 * 011 * Konik library is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 * GNU Affero General Public License for more details. 015 * 016 * You should have received a copy of the GNU Affero General Public License 017 * along with Konik library. If not, see <http://www.gnu.org/licenses/>. 018 */ 019package io.konik.jaxb.adapter; 020 021import static io.konik.util.Strings.isNullOrEmpty; 022import io.konik.jaxb.bindable.UniversalCommunication; 023 024import java.util.regex.Pattern; 025 026import javax.xml.bind.annotation.adapters.XmlAdapter; 027 028/** 029 * 030 * = The Currency Adapter 031 */ 032public class UniversalCommunicationAdapter extends XmlAdapter<UniversalCommunication, String> { 033 034 Pattern emailRegEx = Pattern.compile(".+@.+\\..+"); 035 036 @Override 037 public UniversalCommunication marshal(String mailOrTel) throws Exception { 038 UniversalCommunication communication = new UniversalCommunication(); 039 if (isNullOrEmpty(mailOrTel) || emailRegEx.matcher(mailOrTel).matches()){ 040 communication.setMail(mailOrTel); 041 }else { 042 communication.setCompleteNumber(mailOrTel); 043 } 044 return communication; 045 } 046 047 @Override 048 public String unmarshal(UniversalCommunication communication) throws Exception { 049 if (isNullOrEmpty(communication.getCompleteNumber())) { 050 return communication.getMail(); 051 } 052 return communication.getCompleteNumber(); 053 } 054 055}