1 28 29 package com.idaremedia.antx.go; 30 31 import java.util.List ; 32 33 import org.apache.tools.ant.Project; 34 import org.apache.tools.ant.taskdefs.condition.Os; 35 36 import com.idaremedia.antx.helpers.Tk; 37 38 54 55 public final class IffOs 56 { 57 70 public static boolean pass(String string, Project P, boolean ifNot) 71 { 72 if (Tk.isWhitespace(string)) { 73 return false; 74 } 75 76 string = Tk.resolveString(P,string); 77 78 List l= Tk.splitList(string); 79 String family = l.get(0).toString(); 80 81 String next; 82 String name = null; 83 if (l.size()>1) { 84 next = l.get(1).toString(); 85 if (!ignore(next)) { 86 name= next; 87 } 88 } 89 String arch = null; 90 if (l.size()>2) { 91 next= l.get(2).toString(); 92 if (!ignore(next)) { 93 arch = next; 94 } 95 } 96 String vers = null; 97 if (l.size()>3) { 98 next = l.get(3).toString(); 99 if (!ignore(next)) { 100 vers = next; 101 } 102 } 103 boolean is= false; 104 try { 105 is=Os.isOs(family,name,arch,vers); 106 } catch(Exception unknownOS) { 107 108 } 109 return ifNot ? !is : is; 110 } 111 112 113 121 public static final class Is extends Go.TestSkeleton { 122 public Is() { 123 } 124 public Is(String choice) { 125 super(choice); 126 } 127 public boolean pass(Project P) { 128 verifyInited(); 129 return IffOs.pass(getParameter(),P,false); 130 } 131 public String getParameterName() { 132 return "ifOS"; 133 } 134 } 135 136 137 138 146 public static final class IsNot extends Go.TestSkeleton { 147 public IsNot() { 148 } 149 public IsNot(String choice) { 150 super(choice); 151 } 152 public boolean pass(Project P) { 153 verifyInited(); 154 return IffOs.pass(getParameter(),P,true); 155 } 156 public String getParameterName() { 157 return "unlessOS"; 158 } 159 } 160 161 162 private static boolean ignore(String s) 163 { 164 return Tk.isWhitespace(s) || "*".equals(s.trim()); 165 } 166 167 168 171 private IffOs() { 172 } 173 } 174 175 176 | Popular Tags |