1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.tonicsystems.jarjar;
18
19 import com.tonicsystems.jarjar.util.*;
20 import java.io.File;
21 import java.io.IOException;
22 import java.util.*;
23 import org.apache.tools.ant.BuildException;
24
25 public class JarJarTask extends AntJarProcessor
26 {
27 private List<PatternElement> patterns = new ArrayList<PatternElement>();
28
29 public void addConfiguredRule(Rule rule) {
30 if (rule.getPattern() == null || rule.getResult() == null)
31 throw new IllegalArgumentException("The <rule> element requires both \"pattern\" and \"result\" attributes.");
32 patterns.add(rule);
33 }
34
35 public void addConfiguredZap(Zap zap) {
36 if (zap.getPattern() == null)
37 throw new IllegalArgumentException("The <zap> element requires a \"pattern\" attribute.");
38 patterns.add(zap);
39 }
40
41 public void addConfiguredKeep(Keep keep) {
42 if (keep.getPattern() == null)
43 throw new IllegalArgumentException("The <keep> element requires a \"pattern\" attribute.");
44 patterns.add(keep);
45 }
46
47 public void execute() throws BuildException {
48 MainProcessor proc = new MainProcessor(patterns, verbose, false);
49 execute(proc);
50 try {
51 proc.strip(getDestFile());
52 } catch (IOException e) {
53 throw new BuildException(e);
54 }
55 }
56
57 protected void cleanHelper() {
58 super.cleanHelper();
59 patterns.clear();
60 }
61 }