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}