/* * @(#)CreateTimedThreadAction.java 1.3 02/08/21 * * Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved. */ package com.sun.media; import java.lang.reflect.Method; import java.lang.reflect.Constructor; /** * The reason this class is in this package and not util is because * it is used to create threads like StopTimeThread, TimedStartThread * in BasicController which are package private classes. * These cannot be instantiated from the util package */ public class CreateTimedThreadAction implements java.security.PrivilegedAction { private Class objclass; private Class baseClass; private Object arg1; private long nanoseconds; static Constructor cons; static { try { cons = CreateTimedThreadAction.class.getConstructor(new Class[] { Class.class, Class.class, Object.class, long.class}); } catch (Throwable e) { } } public CreateTimedThreadAction(Class objclass, Class baseClass, Object arg1, long nanoseconds) { try { this.objclass = objclass; this.baseClass = baseClass; this.arg1 = arg1; this.nanoseconds = nanoseconds; } catch (Throwable e) { } } public Object run() { try { Constructor cons = objclass.getConstructor(new Class[] {baseClass, long.class}); Object object = cons.newInstance(new Object[] {arg1, new Long(nanoseconds)}); return object; } catch (Throwable e) { return null; } } }