/* * Permutation.java * * Created on June 27, 2006, 2:10 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package permutation; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; import javax.jws.WebResult; import javax.jws.WebService; import javax.jws.WebMethod; import javax.jws.WebParam; @WebService(targetNamespace="www.permutation.example") public class Permutation { private static Logger m_logger; static { try { m_logger = Logger.getLogger("www.permutation.example"); FileHandler fh = new FileHandler("c:/netbeans/projects/permutation.txt"); m_logger.addHandler(fh); } catch(Throwable th) { } } /* Sample Web Service Operation */ @WebMethod(operationName="computePermutations") @WebResult(name="combinations") public long compute(@WebParam(name="collectionSize") int n, @WebParam(name="itemsChosen") int r) { if (r > n) { throw new RuntimeException("Items chosen " + r + " must be less than or equal to collection size " + n); } long temp = 1; int j = 0; for(int i = n - r + 1; i <= n; i++) { temp *= i; temp /= ++j; } m_logger.log(Level.INFO, "The combinations for {0} choose {1} is {2}", new Object[]{Integer.valueOf(n), Integer.valueOf(r),Long.valueOf(temp)}); return temp; } }