// Path: es.alrocar.poiproxy/src/main/java/es/alrocar/poiproxy/request/OauthRequestService.java
// public class OauthRequestService implements RequestService {
// 
// 	@Override
// 	public byte[] download(String URL, String fileName, String downloadPath,
// 			Auth authElem) throws Exception {
// 		AuthTypeEnum authType = AuthTypeEnum.valueOf(authElem.getType());
// 
// 		OAuthService service = new ServiceBuilder().provider(authType._class)
// 				.apiKey(authElem.getApiKey())
// 				.apiSecret(authElem.getApiSecret()).build();
// 
// 		OAuthRequest request = new OAuthRequest(Verb.GET, URL);
// 		Token myToken = new Token(authElem.getAccessToken(),
// 				authElem.getAccessTokenSecret());
// 
// 		service.signRequest(myToken, request);
// 		Response response = request.send();
// 
// 		return response.getBody().getBytes();
// 	}
// }
// 
// Path: es.alrocar.poiproxy/src/main/java/es/alrocar/poiproxy/request/RequestService.java
// public interface RequestService {
// 
// 	/**
// 	 * 
// 	 * @param URL
// 	 *            The URL where download data from
// 	 * @param fileName
// 	 *            The name of the file to store the data in
// 	 * @param downloadPath
// 	 *            The path where to store the file
// 	 * @param authElement
// 	 *            The {@link Auth} configuration that can have, apiKeys,
// 	 *            credentials, etc.
// 	 * @return An array of bytes with the data
// 	 * @throws Exception
// 	 */
// 	public byte[] download(String URL, String fileName, String downloadPath,
// 			Auth authElement) throws Exception;
// }
// 
// Path: es.alrocar.poiproxy/src/main/java/es/alrocar/poiproxy/request/SimpleHttpRequestServiceForceJson.java
// public class SimpleHttpRequestServiceForceJson implements RequestService, Api {
// 
// 	private DownloaderJson d = new DownloaderJson();
// 
// 	@Override
// 	public byte[] download(String URL, String fileName, String downloadPath, Auth authElem) throws Exception {
// 		return d.downloadFromUrl(URL, fileName, downloadPath, null);
// 	}
// 
// 	@Override
// 	public OAuthService createService(OAuthConfig config) {
// 		// TODO Auto-generated method stub
// 		return null;
// 	}
// }


import org.scribe.builder.api.Api;
import org.scribe.builder.api.TwitterApi;
import es.alrocar.poiproxy.request.OauthRequestService;
import es.alrocar.poiproxy.request.RequestService;
import es.alrocar.poiproxy.request.SimpleHttpRequestServiceForceJson;
/*
 * Licensed to Prodevelop SL under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The Prodevelop SL licenses this file
 * to you 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.
 * 
 * For more information, contact:
 *
 *   Prodevelop, S.L.
 *   Pza. Don Juan de Villarrasa, 14 - 5
 *   46001 Valencia
 *   Spain
 *
 *   +34 963 510 612
 *   +34 963 510 968
 *   prode@prodevelop.es
 *   http://www.prodevelop.es
 * 
 * @author Alberto Romeu Carrasco http://www.albertoromeu.com
 */

package es.alrocar.poiproxy.configuration;



public enum AuthTypeEnum {

	none("simple", null, null),

// Path: es.alrocar.poiproxy/src/main/java/es/alrocar/poiproxy/request/OauthRequestService.java
// public class OauthRequestService implements RequestService {
// 
// 	@Override
// 	public byte[] download(String URL, String fileName, String downloadPath,
// 			Auth authElem) throws Exception {
// 		AuthTypeEnum authType = AuthTypeEnum.valueOf(authElem.getType());
// 
// 		OAuthService service = new ServiceBuilder().provider(authType._class)
// 				.apiKey(authElem.getApiKey())
// 				.apiSecret(authElem.getApiSecret()).build();
// 
// 		OAuthRequest request = new OAuthRequest(Verb.GET, URL);
// 		Token myToken = new Token(authElem.getAccessToken(),
// 				authElem.getAccessTokenSecret());
// 
// 		service.signRequest(myToken, request);
// 		Response response = request.send();
// 
// 		return response.getBody().getBytes();
// 	}
// }
// 
// Path: es.alrocar.poiproxy/src/main/java/es/alrocar/poiproxy/request/RequestService.java
// public interface RequestService {
// 
// 	/**
// 	 * 
// 	 * @param URL
// 	 *            The URL where download data from
// 	 * @param fileName
// 	 *            The name of the file to store the data in
// 	 * @param downloadPath
// 	 *            The path where to store the file
// 	 * @param authElement
// 	 *            The {@link Auth} configuration that can have, apiKeys,
// 	 *            credentials, etc.
// 	 * @return An array of bytes with the data
// 	 * @throws Exception
// 	 */
// 	public byte[] download(String URL, String fileName, String downloadPath,
// 			Auth authElement) throws Exception;
// }
// 
// Path: es.alrocar.poiproxy/src/main/java/es/alrocar/poiproxy/request/SimpleHttpRequestServiceForceJson.java
// public class SimpleHttpRequestServiceForceJson implements RequestService, Api {
// 
// 	private DownloaderJson d = new DownloaderJson();
// 
// 	@Override
// 	public byte[] download(String URL, String fileName, String downloadPath, Auth authElem) throws Exception {
// 		return d.downloadFromUrl(URL, fileName, downloadPath, null);
// 	}
// 
// 	@Override
// 	public OAuthService createService(OAuthConfig config) {
// 		// TODO Auto-generated method stub
// 		return null;
// 	}
// }


// Path: es.alrocar.poiproxy/src/main/java/es/alrocar/poiproxy/configuration/AuthTypeEnum.java
import org.scribe.builder.api.Api;
import org.scribe.builder.api.TwitterApi;
import es.alrocar.poiproxy.request.OauthRequestService;
import es.alrocar.poiproxy.request.RequestService;
import es.alrocar.poiproxy.request.SimpleHttpRequestServiceForceJson;

/*
 * Licensed to Prodevelop SL under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The Prodevelop SL licenses this file
 * to you 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.
 * 
 * For more information, contact:
 *
 *   Prodevelop, S.L.
 *   Pza. Don Juan de Villarrasa, 14 - 5
 *   46001 Valencia
 *   Spain
 *
 *   +34 963 510 612
 *   +34 963 510 968
 *   prode@prodevelop.es
 *   http://www.prodevelop.es
 * 
 * @author Alberto Romeu Carrasco http://www.albertoromeu.com
 */

package es.alrocar.poiproxy.configuration;



public enum AuthTypeEnum {

	none("simple", null, null),

	twitter_oauth("twitter_oauth", TwitterApi.class, OauthRequestService.class),