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
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.