Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/themes/ThemeMapping.java @ 2792:fe987587ebc9
Merged revisions 4539-4540,4543,4545-4546 via svnmerge from
file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk
........
r4539 | teichmann | 2012-05-27 20:02:13 +0200 (So, 27 Mai 2012) | 1 line
FixA: Added forgotten csv/report facets/generators to conf.
........
r4540 | teichmann | 2012-05-27 20:11:31 +0200 (So, 27 Mai 2012) | 1 line
FixA: Fixed class cast bug in report facet.
........
r4543 | teichmann | 2012-05-28 20:35:01 +0200 (Mo, 28 Mai 2012) | 1 line
FixA: Added facet to return delta w/t as CSV
........
r4545 | teichmann | 2012-05-28 22:59:27 +0200 (Mo, 28 Mai 2012) | 1 line
FixA: Made Delta W/t calculation finally work
........
r4546 | teichmann | 2012-05-28 23:34:24 +0200 (Mo, 28 Mai 2012) | 1 line
FixA: corrected fitting (Q->W instead W->Q).
........
flys-artifacts/tags/2.7@4547 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 29 May 2012 04:58:29 +0000 |
parents | 9562ca537143 |
children | e74e707ff650 |
line wrap: on
line source
package de.intevation.flys.themes; import org.apache.log4j.Logger; import java.io.Serializable; import java.util.regex.Matcher; import java.util.regex.Pattern; import de.intevation.flys.artifacts.FLYSArtifact; /** * Represents mapping to a theme (including conditions). */ public class ThemeMapping implements Serializable { /** The logger that is used in this class */ private static Logger logger = Logger.getLogger(ThemeMapping.class); /** Name from which to map. */ protected String from; /** Name to which to map. */ protected String to; /** Given pattern (held against facet description). */ protected String patternStr; /** Given masterAttr pattern (held against masterartifacts attributes). */ protected String masterAttr; /** Given output for which mapping is valid. */ protected String output; protected Pattern pattern; public ThemeMapping(String from, String to) { this(from, to, null, null, null); } public ThemeMapping( String from, String to, String patternStr, String masterAttr, String output) { this.from = from; this.to = to; this.patternStr = patternStr; this.masterAttr = masterAttr; this.output = output; this.pattern = Pattern.compile(patternStr); } public String getFrom() { return from; } /** * Get name of theme that is mapped to. */ public String getTo() { return to; } /** * Get pattern. */ public String getPatternStr() { return patternStr; } /** * Match regular expression against text. * * @param text string to be matched against. * @return true if pattern matches text or pattern is empty. */ public boolean applyPattern(String text) { if (patternStr == null || patternStr.equals("")) { return true; } Matcher m = pattern.matcher(text); return m.matches(); } /** * Inspects Artifacts data given the masterAttr-condition. * * The only condition implemented so far is 'key==value', for which * the Artifacts data with name "key" has to be of value "value" in order * for true to be returned. * * @param artifact Artifact of which to inspect data. * @return true if no condition is specified or condition is met. */ public boolean masterAttrMatches(FLYSArtifact artifact) { if (masterAttr == null || masterAttr.equals("")) { return true; } // Operator split. String[] parts = masterAttr.split("=="); if (parts.length != 2) { logger.error("ThemeMapping could not parse masterAttr.-condition:_" + masterAttr + "_"); return false; } // Test. return artifact.getDataAsString(parts[0]).equals(parts[1]); } /** * Returns true if no output condition exists, or the condition is met * in parameter output. */ public boolean outputMatches(String output) { if (this.output == null || this.output.equals("")) { return true; } return this.output.equals(output); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :