       1 /*
       2  * $Id$
       3  *
       4  * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
       5  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       6  *
       7  * This code is free software; you can redistribute it and/or modify it
       8  * under the terms of the GNU General Public License version 2 only, as
       9  * published by the Free Software Foundation.  Oracle designates this
      10  * particular file as subject to the "Classpath" exception as provided
      11  * by Oracle in the LICENSE file that accompanied this code.
      12  *
      13  * This code is distributed in the hope that it will be useful, but WITHOUT
      14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      15  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      16  * version 2 for more details (a copy is included in the LICENSE file that
      17  * accompanied this code).
      18  *
      19  * You should have received a copy of the GNU General Public License version
      20  * 2 along with this work; if not, write to the Free Software Foundation,
      21  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
      22  *
      23  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
      24  * or visit www.oracle.com if you need additional information or have any
      25  * questions.
      26  */
      27 package com.sun.javatest.cof;
      28
      29 import java.io.*;
      30 import java.nio.charset.StandardCharsets;
      31 import java.util.ArrayList;
      32 import java.util.HashMap;
      33 import java.util.List;
      34 import java.util.StringTokenizer;
      35
      36 /**
      37  * Reads and stores master test list content
      38  */
      39 public class MTL {
      40
      41     private final File mtl;
      42     private HashMap<String, ArrayList<String>> table;
      43
      44     MTL(File mtlFile) {
      45         mtl = mtlFile;
      46     }
      47
      48     private void init() {
      49         if (table == null) {
      50             table = new HashMap<>();
      51             BufferedReader r = null;
      52             try {
      53                 r = new BufferedReader(new InputStreamReader(new FileInputStream(mtl), StandardCharsets.UTF_8));
      54                 String line;
      55                 while ((line = r.readLine()) != null) {
      56                     StringTokenizer st = new StringTokenizer(line);
      57                     ArrayList<String> cases = new ArrayList<>();
      58                     String testName = null;
      59                     if (st.hasMoreTokens()) {
      60                         testName = st.nextToken();
      61                     }
      62                     while (st.hasMoreTokens()) {
      63                         cases.add(st.nextToken());
      64                     }
      65                     if (testName != null) {
      66                         table.put(testName, cases);
      67                     }
      68                 }
      69             } catch (IOException ex) {
      70                 throw new IllegalArgumentException(ex);
      71             } finally {
      72                 try {
      73                     if (r != null)
      74                         r.close();
      75                 } catch (IOException ex) {
      76                     ex.printStackTrace();
      77                 }
      78             }
      79         }
      80     }
      81
      82     List<String> getTestCases(String name) {
      83         init();
      84         return table.get(name);
      85     }
      86 }
    --- EOF ---