001 package com.khubla.pragmatach.contrib.controllertester; 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 parts.add(nextLine[i]); 029 } 030 ret.add(new RouteUrl(parts, method, context)); 031 } 032 } 033 reader.close(); 034 return ret; 035 } catch (final Exception e) { 036 throw new Exception("Exception in readRoutes", e); 037 } 038 } 039 040 /** 041 * url parts 042 */ 043 private final List<String> parts; 044 /** 045 * method 046 */ 047 private final String method; 048 /** 049 * context 050 */ 051 private final String context; 052 053 /** 054 * ctor 055 */ 056 public RouteUrl(List<String> parts, String method, String context) { 057 this.parts = parts; 058 this.method = method; 059 this.context = context; 060 } 061 062 public String getContext() { 063 return context; 064 } 065 066 public String getMethod() { 067 return method; 068 } 069 070 public List<String> getParts() { 071 return parts; 072 } 073 }