Ignore:
Timestamp:
01/28/14 16:08:11 (10 years ago)
Author:
pharms
Message:
  • added support for parameterizing the parsing of GUI models to ignore ids or indexes
Location:
trunk/autoquest-plugin-html/src/main/java/de/ugoe/cs/autoquest/plugin/html/commands
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-plugin-html/src/main/java/de/ugoe/cs/autoquest/plugin/html/commands/CMDcorrectHTMLLogDirs.java

    r1272 r1339  
    1717import java.io.File; 
    1818import java.util.Arrays; 
     19import java.util.HashMap; 
    1920import java.util.List; 
    2021import java.util.logging.Level; 
     
    9091            String serverName = null; 
    9192             
    92             HTMLLogParser parser = new HTMLLogParser(); 
     93            HTMLLogParser parser = new HTMLLogParser(new HashMap<String, List<String>>()); 
    9394            try { 
    9495                parser.parseFile(file); 
  • trunk/autoquest-plugin-html/src/main/java/de/ugoe/cs/autoquest/plugin/html/commands/CMDparseDirHTML.java

    r1220 r1339  
    1818import java.util.Arrays; 
    1919import java.util.Collection; 
     20import java.util.HashMap; 
     21import java.util.LinkedList; 
    2022import java.util.List; 
     23import java.util.Map; 
    2124import java.util.logging.Level; 
     25import java.util.regex.Matcher; 
     26import java.util.regex.Pattern; 
    2227 
    2328import de.ugoe.cs.autoquest.CommandHelpers; 
     
    4853    @Override 
    4954    public void run(List<Object> parameters) { 
    50         String path; 
    51         String sequencesName = "sequences"; 
     55        String path = null; 
     56        String sequencesName = null; 
     57        Map<String, List<String>> parseParams = new HashMap<String, List<String>>(); 
    5258 
    5359        try { 
    54             path = (String) parameters.get(0); 
    55             if (parameters.size() >= 2) { 
    56                 sequencesName = (String) parameters.get(1); 
     60            for (int i = 0; i < parameters.size(); i++) { 
     61                String param = (String) parameters.get(i); 
     62                if (!param.startsWith("-")) { 
     63                    if (path == null) { 
     64                        path = param; 
     65                    } 
     66                    else if (sequencesName == null) { 
     67                        sequencesName = param; 
     68                    } 
     69                } 
     70                else { 
     71                    Pattern parseParamPattern = Pattern.compile("-(\\w*)=([\\w=\\[\\]\\(\\)/]*)"); 
     72                    Matcher matcher = parseParamPattern.matcher(param); 
     73                     
     74                    if (matcher.matches()) { 
     75                        String key = matcher.group(1); 
     76                        List<String> values = parseParams.get(key); 
     77                         
     78                        if (values == null) { 
     79                            values = new LinkedList<String>(); 
     80                            parseParams.put(key, values); 
     81                        } 
     82                         
     83                        values.add(matcher.group(2)); 
     84                    } 
     85                    else { 
     86                        String message = "parse parameter does not follow format: -<key>=<value>"; 
     87                        Console.printerrln(message); 
     88                        throw new IllegalArgumentException(message); 
     89                    } 
     90                } 
    5791            } 
    5892        } 
    5993        catch (Exception e) { 
    6094            throw new IllegalArgumentException("illegal parameters provided: " + e); 
     95        } 
     96         
     97        if (sequencesName == null) { 
     98            sequencesName = "sequences"; 
    6199        } 
    62100 
     
    67105        } 
    68106 
    69         HTMLLogParser parser = new HTMLLogParser(); 
     107        HTMLLogParser parser = new HTMLLogParser(parseParams); 
    70108 
    71109        parseFile(folder, parser); 
     
    123161    @Override 
    124162    public String help() { 
    125         return "parseDirHTML <directory> {<sequencesName>}"; 
     163        return "parseDirHTML <directory> {<sequencesName>} {<clearId>} {<clearIndex>}"; 
    126164    } 
    127165 
  • trunk/autoquest-plugin-html/src/main/java/de/ugoe/cs/autoquest/plugin/html/commands/CMDparseHTML.java

    r1179 r1339  
    1616 
    1717import java.util.Collection; 
     18import java.util.HashMap; 
     19import java.util.LinkedList; 
    1820import java.util.List; 
     21import java.util.Map; 
     22import java.util.regex.Matcher; 
     23import java.util.regex.Pattern; 
    1924 
    2025import de.ugoe.cs.autoquest.CommandHelpers; 
     
    4348    @Override 
    4449    public void run(List<Object> parameters) { 
    45         String filename; 
    46         String sequencesName = "sequences"; 
     50        String filename = null; 
     51        String sequencesName = null; 
     52        Map<String, List<String>> parseParams = new HashMap<String, List<String>>(); 
    4753 
    4854        try { 
    49             filename = (String) parameters.get(0); 
    50             if (parameters.size() >= 2) { 
    51                 sequencesName = (String) parameters.get(1); 
     55            for (int i = 0; i < parameters.size(); i++) { 
     56                String param = (String) parameters.get(i); 
     57                if (!param.startsWith("-")) { 
     58                    if (filename == null) { 
     59                        filename = param; 
     60                    } 
     61                    else if (sequencesName == null) { 
     62                        sequencesName = param; 
     63                    } 
     64                } 
     65                else { 
     66                    Pattern parseParamPattern = Pattern.compile("-(\\w*)=([\\w=\\[\\]\\(\\)/]*)"); 
     67                    Matcher matcher = parseParamPattern.matcher(param); 
     68                     
     69                    if (matcher.matches()) { 
     70                        String key = matcher.group(1); 
     71                        List<String> values = parseParams.get(key); 
     72                         
     73                        if (values == null) { 
     74                            values = new LinkedList<String>(); 
     75                            parseParams.put(key, values); 
     76                        } 
     77                         
     78                        values.add(matcher.group(2)); 
     79                    } 
     80                    else { 
     81                        String message = "parse parameter does not follow format: -<key>=<value>"; 
     82                        Console.printerrln(message); 
     83                        throw new IllegalArgumentException(message); 
     84                    } 
     85                } 
    5286            } 
    5387        } 
    5488        catch (Exception e) { 
    55             throw new IllegalArgumentException(); 
     89            throw new IllegalArgumentException("illegal parameters provided: " + e); 
    5690        } 
    5791 
    58         HTMLLogParser parser = new HTMLLogParser(); 
     92        if (sequencesName == null) { 
     93            sequencesName = "sequences"; 
     94        } 
     95 
     96        HTMLLogParser parser = new HTMLLogParser(parseParams); 
    5997 
    6098        try { 
Note: See TracChangeset for help on using the changeset viewer.