
package lj_cust;

import wt.auth.*;
import wt.fc.*;
import wt.query.*;
import wt.part.*;
import wt.epm.*;
import wt.doc.*;
import wt.util.*;
import wt.vc.*;

import java.util.*;

import wt.fc.WTObject;

import wt.workflow.*;
import wt.workflow.engine.*;

import wt.inf.team.*;
import wt.inf.container.*;
import wt.inf.container.WTContainer;

import wt.org.*;
import wt.org.WTPrincipal;
import wt.org.WTOrganization;

import wt.projmgmt.admin.*;

import wt.change2.*;
import wt.change2.ChangeActivity2;
import wt.change2.ChangeRequest2;
import wt.change2.ChangeIssue;
import wt.change2.ChangeOrder2;
import wt.change2.ChangeHelper2;

import wt.change2.WTChangeIssue;
import wt.change2.WTChangeOrder2;
import wt.change2.WTChangeRequest2;
import wt.change2.WTChangeActivity2;

import wt.change2.ChangeOrderIfc;
import wt.change2.ChangeRequestIfc;
import wt.change2.ChangeItem;

import wt.workflow.definer.*;
import wt.workflow.robots.*;
import wt.workflow.work.*;
import wt.workflow.WfException;

import wt.content.ApplicationData;
import wt.method.RemoteMethodServer;
import wt.httpgw.GatewayAuthenticator;

public class LJ_Objects_05f {

	public static void main(String[] args) throws Exception{
		RemoteMethodServer rms = RemoteMethodServer.getDefault();
		GatewayAuthenticator auth = new GatewayAuthenticator();
		auth.setRemoteUser("wcadmin");
		rms.setAuthenticator(auth);

		String ObjStg;
		String div = "\n\n************************************************************\n";

		System.out.println(div);

		//	WTOrganization

		QueryResult resORG=PersistenceHelper.manager.find(new QuerySpec(WTOrganization.class));
		while(resORG.hasMoreElements()) {
			WTOrganization orgm = (WTOrganization)resORG.nextElement();
			System.out.println( "WTOrganization: " + orgm.getName() );
		}
		System.out.println("\nNumber of WTOrganization: "+resORG.size() + div);

		//	WTPartMaster.class

		QueryResult resWTP=PersistenceHelper.manager.find(new QuerySpec(WTPartMaster.class));
		while(resWTP.hasMoreElements()) {
			WTPartMaster wtpm = (WTPartMaster)resWTP.nextElement();

			IdentificationObject identificationobject = ((Identified)wtpm).getIdentificationObject();
			WTPartMasterIdentity identity=(WTPartMasterIdentity)identificationobject;

			System.out.println( "Identity: " + identity );
			System.out.println( "WtPartMaster - Number: " + wtpm.getNumber() + " - Name: " + wtpm.getName() );
		}
		System.out.println("\nNumber of WTPartMaster Objects: "+resWTP.size() + div);

		//	WTPart.class

		QueryResult resWTP2=PersistenceHelper.manager.find(new QuerySpec(WTPart.class));
		while(resWTP2.hasMoreElements()) {
			WTPart wtp2m = (WTPart)resWTP2.nextElement();
			System.out.println( "WtPart - Number: " + wtp2m.getNumber() + " - Name: " + wtp2m.getName() );
		}
		System.out.println("\nNumber of WTPart Objects: "+resWTP2.size() + div);

		//	EPMDocumentMaster.class

		QueryResult resEPM=PersistenceHelper.manager.find(new QuerySpec(EPMDocumentMaster.class));
		while(resEPM.hasMoreElements()) {
			EPMDocumentMaster epmm = (EPMDocumentMaster)resEPM.nextElement();
			System.out.println( "EPMDocMaster - Number: " + epmm.getNumber() + " - Name: " + epmm.getName()+ " - CadName: " + epmm.getCADName() );
		}
		System.out.println("\nNumber of EPMDocumentMaster Objects: "+resEPM.size() + div);

		//	EPMDocument.class

		QueryResult resEPM2=PersistenceHelper.manager.find(new QuerySpec(EPMDocument.class));
		while(resEPM2.hasMoreElements()) {
			EPMDocument epm2m = (EPMDocument)resEPM2.nextElement();
			System.out.println( "EPMDoc - Number: " + epm2m.getNumber() + " - Name: " + epm2m.getName()+ " - CadName: " + epm2m.getCADName() );
		}
		System.out.println("\nNumber of EPMDocument Objects: "+resEPM2.size() + div);

		//	WTDocumentMaster.class

		QueryResult resWTD=PersistenceHelper.manager.find(new QuerySpec(WTDocumentMaster.class));
		while(resWTD.hasMoreElements()) {
			WTDocumentMaster wtdm = (WTDocumentMaster)resWTD.nextElement();
			System.out.println( "WtDocumentMaster - Number: " + wtdm.getNumber() + " - Name: " + wtdm.getName() );
		}
		System.out.println("\nNumber of WTDocumentMaster Objects: "+resWTD.size() + div);

		//	WTDocument.class

		QueryResult resWTD2=PersistenceHelper.manager.find(new QuerySpec(WTDocument.class));
		while(resWTD2.hasMoreElements()) {
			WTDocument wtd2m = (WTDocument)resWTD2.nextElement();
			System.out.println( "WtDocument - Number: " + wtd2m.getNumber() + " - Name: " + wtd2m.getName() );
		}
		System.out.println("\nNumber of WTDocument Objects: "+resWTD2.size() + div);

		//	WTContainer.class

		QueryResult resWTC=PersistenceHelper.manager.find(new QuerySpec(WTContainer.class));
		while(resWTC.hasMoreElements()) {
			WTContainer wtcm = (WTContainer)resWTC.nextElement();
			System.out.println( "WTContainer: " + wtcm.getName() );
		}
		System.out.println("\nNumber of WTContainers: "+resWTC.size() + div);

		//	ContainerTeam.class

		QueryResult resCTT=PersistenceHelper.manager.find(new QuerySpec(ContainerTeam.class));
		while(resCTT.hasMoreElements()) {
			ContainerTeam cttm = (ContainerTeam)resCTT.nextElement();
			System.out.println( "ContainerTeam: " + cttm.getName() );
		}
		System.out.println("\nNumber of ContainerTeams: "+resCTT.size() + div);

		//	WTGroup.class

		QueryResult resWTG=PersistenceHelper.manager.find(new QuerySpec(WTGroup.class));
		while(resWTG.hasMoreElements()) {
			WTGroup wtgm = (WTGroup)resWTG.nextElement();
			System.out.println( "WTGroup: " + wtgm.getName() );
		}
		System.out.println("\nNumber of WTGroups: " + resWTG.size() + div);

		// WTPrincipal.class

		QueryResult resWTPr=PersistenceHelper.manager.find(new QuerySpec(WTPrincipal.class));
		while(resWTPr.hasMoreElements()) {
			WTPrincipal wtprin = (WTPrincipal)resWTPr.nextElement();
			System.out.println( "Name: " + wtprin.getName() + " & class: " + wtprin.getClass().getName() );
		}
		System.out.println("\nNumber of WTPrincipal: " + resWTPr.size() + div);

		// Project2.class

		QueryResult resPJL=PersistenceHelper.manager.find(new QuerySpec(Project2.class));
		while(resPJL.hasMoreElements()) {
			Project2 wtpjl = (Project2)resPJL.nextElement();
			System.out.println( "Name: " + wtpjl.getName() );
			System.out.println( "Desc: " + wtpjl.getDescription() + "\n" );
		}
		System.out.println("\nNumber of Project2: " + resPJL.size() + div);

		// PR  - wt.change2.WTChangeIssue
		// ECR - wt.change2.WTChangeRequest2
		// ECN - wt.change2.WTChangeOrder2

		// WTChangeOrder2.class

		QueryResult resCHO=PersistenceHelper.manager.find(new QuerySpec(WTChangeOrder2.class));
		while(resCHO.hasMoreElements()) {
			System.out.println( "\n======================\n" );

			WTChangeOrder2 wtcho = (WTChangeOrder2)resCHO.nextElement();
			System.out.println( "Name: " + wtcho.getName()+ " & Number: " + wtcho.getNumber() );
			System.out.println( "Desc: " + wtcho.getDescription() );

			// ECN checking for ???

			QueryResult ca2co = ChangeHelper2.service.getChangeActivities(wtcho);
			System.out.println( "ca2co: " + ca2co + "\n");
			System.out.println("Number of ca2co: " + ca2co.size() + "\n" );

			if (ca2co.size()>0) {
				WTChangeActivity2 eca=(WTChangeActivity2)ca2co.nextElement();
				System.out.println("Related ECA Name: " + eca.getName() + " & Number: " + eca.getNumber() + "\n" );
			}
		}
		System.out.println("\nNumber of WTChangeOrder2: " + resCHO.size() + div);

		// WTChangeIssue.class

		QueryResult resCHI=PersistenceHelper.manager.find(new QuerySpec(WTChangeIssue.class));
		while(resCHI.hasMoreElements()) {
			System.out.println( "\n======================\n\n" );

			WTChangeIssue wtchi = (WTChangeIssue)resCHI.nextElement();
			System.out.println( "Name: " + wtchi.getName() + " & Number: " + wtchi.getNumber() );
			System.out.println( "Desc: " + wtchi.getDescription() + "\n" );

			// PR checking for ECR

			QueryResult cr2ci = ChangeHelper2.service.getChangeRequest(wtchi);
			System.out.println( "cr2ci: " + cr2ci );
			System.out.println("Number of cr2ci: " + cr2ci.size() + "\n" );

			if (cr2ci.size()>0) {
				WTChangeRequest2 ecr=(WTChangeRequest2)cr2ci.nextElement();
				System.out.println("Related ECR Name: " + ecr.getName() + " & Number: " + ecr.getNumber() + "\n" );
			}
		}
		System.out.println("\nNumber of WTChangeIssue: " + resCHI.size() + div);

		// WTChangeRequest2.class

		QueryResult resCHR=PersistenceHelper.manager.find(new QuerySpec(WTChangeRequest2.class));
		while(resCHR.hasMoreElements()) {
			System.out.println( "\n======================\n\n");

			WTChangeRequest2 wtchr = (WTChangeRequest2)resCHR.nextElement();
			System.out.println( "Name: " + wtchr.getName() + " & Number: " + wtchr.getNumber() );
			System.out.println( "Desc: " + wtchr.getDescription() + "\n" );

			// ECR checking for ECN

			QueryResult co2cr = ChangeHelper2.service.getChangeOrders(wtchr);
			System.out.println( "co2cr: " + co2cr );
			System.out.println("Number of co2cr: " + co2cr.size() + "\n" );

			if (co2cr.size()>0) {
				WTChangeOrder2 ecn=(WTChangeOrder2)co2cr.nextElement();
				System.out.println("Related ECN Name: " + ecn.getName() + " & Number: " + ecn.getNumber() + "\n" );
			}
		}
		System.out.println("\nNumber of WTChangeRequest2: " + resCHR.size() + div);

		// WfProcessTemplate.class

		QueryResult resWFPT=PersistenceHelper.manager.find(new QuerySpec(WfProcessTemplate.class));
		while(resWFPT.hasMoreElements()) {
			WfProcessTemplate wtwfpt = (WfProcessTemplate)resWFPT.nextElement();
			System.out.println( "Name: " + wtwfpt.getName() );
			System.out.println( "Desc: " + wtwfpt.getDescription() + "\n" );
		}
		System.out.println("\nNumber of WfProcessTemplate: " + resWFPT.size() + div);

		// WTChangeActivity2

		QueryResult resWFCA=PersistenceHelper.manager.find(new QuerySpec(WTChangeActivity2.class));
		while(resWFCA.hasMoreElements()) {
			WTChangeActivity2 wtwfca = (WTChangeActivity2)resWFCA.nextElement();
			System.out.println( "Name: " + wtwfca.getName() + " & Number: " + wtwfca.getNumber()  );
			System.out.println( "Desc: " + wtwfca.getDescription() + "\n" );
		}
		System.out.println("\nNumber of WTChangeActivity2: " + resWFCA.size() + div);

		// WorkItem

		QueryResult resWFWI=PersistenceHelper.manager.find(new QuerySpec(WorkItem.class));
		while(resWFWI.hasMoreElements()) {
			WorkItem wtwfwi = (WorkItem)resWFWI.nextElement();
			//System.out.println( "Name: " + wtwfwi.getName() + " & Number: " + wtwfwi.getNumber()  );
			System.out.println( "Desc: " + wtwfwi.getDescription() + "\n" );
		}
		System.out.println("\nNumber of WorkItem: " + resWFWI.size() + div);

		// WfAssignedActivity.class

		QueryResult resWFAA=PersistenceHelper.manager.find(new QuerySpec(WfAssignedActivity.class));
		while(resWFAA.hasMoreElements()) {
			WfAssignedActivity wtwfaa = (WfAssignedActivity)resWFAA.nextElement();
			System.out.println( "Name: " + wtwfaa.getName() );
			System.out.println( "Desc: " + wtwfaa.getDescription() + "\n" );

			/**
			//WfAssignedActivity act=(WfAssignedActivity)wtwfaa;
			java.util.Enumeration assignments=wtwfaa.getAssignments();

			while (assignments.hasMoreElements()) {
				WfAssignment assignment=(WfAssignment)assignments.nextElement();
				System.out.println("Role:"+((WfRoleAssignee)(assignment.getAssignee())).getRole().getStringValue());

				java.util.Enumeration ballots=assignment.checkBallotStatus().elements();

				while(ballots.hasMoreElements()) {
					WfBallot ballot=(WfBallot)ballots.nextElement();
					String vote=(String)ballot.getEventList().get(0);
					System.out.println("Vote:"+vote);
				}
			}
			*/
		}
		System.out.println("\nNumber of WfAssignedActivity: " + resWFAA.size() + div);

		// WfProcess.class

		QueryResult resWFP=PersistenceHelper.manager.find(new QuerySpec(WfProcess.class));
		while(resWFP.hasMoreElements()) {
			WfProcess wfprocess = (WfProcess)resWFP.nextElement();
			WTContainer container = WTContainerHelper.getContainer(wfprocess);

			WTUser initiator = (WTUser)(wfprocess).getCreator().getPrincipal();

			String contName=container.getName();

			System.out.println( "\n======================\n\nwfprocess: \n" + wfprocess + "\n" );

			System.out.println( "User: " + initiator );

			System.out.println( "Container Name: " + contName );
			System.out.println( "WfProcess_Name: " + wfprocess.getName() );
			System.out.println( "WfProcess Desc: " + wfprocess.getDescription() + "\n" );
			System.out.println( "WfProcess Context: " + wfprocess.getContext() );
		}
		System.out.println("\nNumber of WfProceses: " + resWFP.size() + div);

		System.out.println(div);
	}
}
