1 package org.paneris.bibliomania;
2
3 import org.melati.poem.ValidationPoemException;
4 import org.paneris.bibliomania.generated.BookFormatBase;
5
6 import org.apache.oro.text.regex.MalformedPatternException;
7 import org.apache.oro.text.regex.Perl5Compiler;
8 import org.apache.oro.text.regex.Perl5Pattern;
9
10 public class BookFormat extends BookFormatBase {
11 public BookFormat() {}
12
13 private Perl5Pattern regexp = null;
14 private boolean regexpValid = true;
15
16 public void setDescriptionregexp(String re) {
17 try {
18 Perl5Pattern newRegexp = (Perl5Pattern)new Perl5Compiler().compile(
19 re, Perl5Compiler.CASE_INSENSITIVE_MASK);
20 super.setDescriptionregexp(re);
21 regexp = newRegexp;
22 regexpValid = true;
23 }
24 catch (MalformedPatternException e) {
25 throw new ValidationPoemException(null, e);
26 }
27 }
28
29 public Perl5Pattern getDescriptionPerl5Regexp() {
30 if (!regexpValid)
31 return null;
32
33 if (regexp != null)
34 return regexp;
35 else
36 try {
37 regexp =
38 (Perl5Pattern)new Perl5Compiler().compile(
39 getDescriptionregexp(), Perl5Compiler.CASE_INSENSITIVE_MASK);
40 regexpValid = true;
41 return regexp;
42 }
43 catch (MalformedPatternException e) {
44 regexpValid = false;
45 return regexp;
46 }
47 }
48 }