001 package com.khubla.pragmatach.contrib.clientproxygenerator; 002 003 import java.io.InputStream; 004 import java.io.InputStreamReader; 005 import java.util.ArrayList; 006 import java.util.List; 007 008 import au.com.bytecode.opencsv.CSVReader; 009 010 /** 011 * @author tome 012 */ 013 public class RouteUrl { 014 /** 015 * read 016 */ 017 public static List<RouteUrl> readRoutes(InputStream inputStream) throws Exception { 018 try { 019 final List<RouteUrl> ret = new ArrayList<RouteUrl>(); 020 final CSVReader reader = new CSVReader(new InputStreamReader(inputStream)); 021 String[] nextLine; 022 while ((nextLine = reader.readNext()) != null) { 023 if (nextLine[0].charAt(0) != '#') { 024 final String method = nextLine[0]; 025 final String context = nextLine[1]; 026 final List<String> parts = new ArrayList<String>(); 027 for (int i = 2; i < nextLine.length; i++) { 028 String nl = nextLine[i]; 029 if ((null != nl) && (nl.length() > 0)) { 030 parts.add(nl); 031 } 032 } 033 ret.add(new RouteUrl(parts, method, context)); 034 } 035 } 036 reader.close(); 037 return ret; 038 } catch (final Exception e) { 039 throw new Exception("Exception in readRoutes", e); 040 } 041 } 042 043 /** 044 * url parts 045 */ 046 private final List<String> parts; 047 /** 048 * method 049 */ 050 private final String method; 051 /** 052 * context 053 */ 054 private final String context; 055 056 /** 057 * ctor 058 */ 059 public RouteUrl(List<String> parts, String method, String context) { 060 this.parts = parts; 061 this.method = method; 062 this.context = context; 063 } 064 065 public String getContext() { 066 return context; 067 } 068 069 public String getMethod() { 070 return method; 071 } 072 073 public List<String> getParts() { 074 return parts; 075 } 076 }