/* * This file is a component of thundr, a software library from 3wks. * Read more: http://3wks.github.io/thundr/ * Copyright (C) 2014 3wks, <thundr@3wks.com.au> * * 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.threewks.thundr.http.service.ning; import java.net.HttpCookie; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.atomicleopard.expressive.ETransformer; import com.atomicleopard.expressive.Expressive; import com.ning.http.client.Cookie; import jodd.util.StringUtil; class NingTransformers { protected static ETransformer<HttpCookie, Cookie> toNingCookie = new ETransformer<HttpCookie, Cookie>() { @SuppressWarnings("deprecation") @Override public Cookie from(HttpCookie from) { Cookie cookie = new Cookie(from.getDomain(), from.getName(), from.getValue(), from.getPath(), (int) from.getMaxAge(), from.getSecure(), from.getVersion()); List<Integer> ports = ports(from.getPortlist()); if (Expressive.isNotEmpty(ports)) { cookie.setPorts(ports); } return cookie; } }; protected static ETransformer<Cookie, HttpCookie> fromNingCookie = new ETransformer<Cookie, HttpCookie>() { @Override public HttpCookie from(Cookie from) { HttpCookie cookie = new HttpCookie(from.getName(), from.getValue()); cookie.setDomain(from.getDomain()); cookie.setPath(from.getPath()); cookie.setMaxAge(from.getMaxAge()); cookie.setSecure(from.isSecure()); cookie.setVersion(from.getVersion()); cookie.setPortlist(StringUtils.join(from.getPorts(), ",")); cookie.setHttpOnly(from.isHttpOnly()); return cookie; } }; private static List<Integer> ports(String portString) { List<Integer> ports = new ArrayList<Integer>(); if (portString != null) { for (String string : StringUtil.split(portString, ",")) { ports.add(Integer.parseInt(StringUtils.trimToEmpty(string))); } } return ports.isEmpty() ? null : ports; } }