
package cust.report;

import java.util.*;
//import java.sql.Timestamp;

//import wt.viewmarkup.*;
//import wt.content.*;
//import wt.ownership.*;
//import wt.representation.*;

import wt.queue.*;
//import wt.queue.QueueHelper.*;

//import wt.locks.Lock;
//import wt.locks.Lockable;
//import wt.org.WTPrincipal;
//import wt.org.WTPrincipalReference;

//import wt.inf.container.*;

//import wt.fc.*;
//import wt.fc.WTObject;
import wt.fc.QueryResult;
import wt.fc.PersistenceHelper;
//import wt.fc.PersistenceManager;

import wt.query.QuerySpec;
//import wt.query.ArrayExpression;

//import com.ptc.wvs.server.cadagent.*;
//import com.ptc.wvs.common.ui.*;

import wt.method.RemoteMethodServer;
import wt.httpgw.GatewayAuthenticator;

import wt.util.WTException;

public class queMgr_01c {

	static String div = "\n\n************************************************************\n";
    private static WtQueue selectedQueue = null;
    private static WtQueueEntry selectedEntry = null;

	public static void main(String[] args) throws Exception {
		RemoteMethodServer rms = RemoteMethodServer.getDefault();
		GatewayAuthenticator auth = new GatewayAuthenticator();
		auth.setRemoteUser("wcadmin");
		rms.setAuthenticator(auth);

		new queMgr_01c();
	}

	public queMgr_01c() throws Exception {
		System.out.println("\n");

		// WtQueue.class
		QueryResult resWtQ2=PersistenceHelper.manager.find(new QuerySpec(WtQueue.class));
		while(resWtQ2.hasMoreElements()) {
			WtQueue wtobj=(WtQueue)resWtQ2.nextElement();
			selectedQueue = wtobj;
			showSelectedQueue2();
		}
	}

	private static void showSelectedQueue2() {
		if(selectedQueue == null) {
			System.out.println("No queue selected.");
			return;
		}
		System.out.println(div+"Selected queue\n--------------");
		System.out.println("Queue Name: " + selectedQueue.getName()+"\n");
		System.out.println("\tEntries\n\t-------");
		try {
			Enumeration enumeration;

            if(selectedQueue instanceof ProcessingQueue) {
                enumeration = QueueHelper.manager.queueEntries((ProcessingQueue)selectedQueue);
			}
            else {
                enumeration = QueueHelper.manager.queueEntries((ScheduleQueue)selectedQueue);
			}

			if(!enumeration.hasMoreElements()) { System.out.println("No entries to show."); }
			else {
				WtQueueEntry wtobj;
				for(; enumeration.hasMoreElements(); System.out.println(wtobj.getDisplayString()) ) {
					wtobj = (WtQueueEntry)enumeration.nextElement();

					System.out.println("Entry Number: "+wtobj.getEntryNumber());
					System.out.println("Queue Ref: "+wtobj.getQueueRef());
					System.out.println("Entry Owner: "+wtobj.getEntryOwner());
					//System.out.println("User=Principal: "+wtobj.getPrincipal());

					System.out.println("Target method: "+wtobj.getTargetMethod());
					System.out.println("Target class: "+wtobj.getTargetClass());
					System.out.println("Status: "+wtobj.getStatusInfo().getCode());
					System.out.println("Message: "+wtobj.getStatusInfo().getMessage());
					System.out.println("Reschedule Time: "+wtobj.getStatusInfo().getRescheduleTime());
					System.out.println("Time execution started: "+wtobj.getStartExec());
					System.out.println("Time execution finished: "+wtobj.getEndExec());
					//System.out.println("\nDisplay String: "+wtobj.getDisplayString());
					//System.out.println(div);
				}
			}
		}
		catch(WTException wtexception) {
			System.out.println(wtexception.getLocalizedMessage());
			return;
		}
	}
}