1 /** 2 * Copyright 2007 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.tonicsystems.jarjar; 18 19 import com.tonicsystems.jarjar.util.*; 20 import java.io.IOException; 21 import java.util.*; 22 23 class ZapProcessor implements JarProcessor 24 { 25 private List<Wildcard> wildcards; 26 ZapProcessor(List<Zap> zapList)27 public ZapProcessor(List<Zap> zapList) { 28 wildcards = PatternElement.createWildcards(zapList); 29 } 30 process(EntryStruct struct)31 public boolean process(EntryStruct struct) throws IOException { 32 String name = struct.name; 33 if (name.endsWith(".class")) 34 return !zap(name.substring(0, name.length() - 6)); 35 return true; 36 } 37 zap(String desc)38 private boolean zap(String desc) { 39 // TODO: optimize 40 for (Wildcard wildcard : wildcards) { 41 if (wildcard.matches(desc)) 42 return true; 43 } 44 return false; 45 } 46 } 47 48