
package ext;

import java.util.*;
import wt.util.*;
import wt.fc.*;
import wt.vc.*;
import wt.query.*;
import wt.part.*;
import wt.epm.*;
import wt.httpgw.GatewayAuthenticator;
import wt.method.RemoteMethodServer;

public class PA_Ren_06 {

	public static Enumeration FindWtpNumbered( ) throws WTException, WTPropertyVetoException {

		String number = "%.ASM";

		QuerySpec qs = new QuerySpec(WTPartMaster.class);
		qs.appendSearchCondition(new SearchCondition(WTPartMaster.class,WTPartMaster.NUMBER,SearchCondition.LIKE,number) );
		final QueryResult qr = PersistenceHelper.manager.find(qs);

		while (qr.hasMoreElements()) {
			WTPartMaster wtpm = (WTPartMaster)qr.nextElement();
			//System.out.println( "WtPart - Number: " + wtpm.getNumber() + " - Name: " + wtpm.getName() );

			String subNo = wtpm.getNumber().substring(0, wtpm.getNumber().lastIndexOf("."));
			String fullNo = subNo+".PRT";
			String fullNoP = subNo+".P";

			try {
				Enumeration w = FindWtpNo( fullNo, fullNoP );
				while (w.hasMoreElements()) {
					System.out.println(((WTPart)w.nextElement()).getIdentity());
				}
			}
			catch (WTException wtee) {
				wtee.printStackTrace();
			}
			catch (WTPropertyVetoException wtpe) {
				wtpe.printStackTrace();
			}
		}

		return new Enumeration() {
			public boolean hasMoreElements() {
				return qr.hasMoreElements();
			}
			public Object nextElement() throws NoSuchElementException {
				return ((Persistable[])qr.nextElement());
			}
		};
	}

	public static Enumeration FindWtpNo( String PRTnumber, String Pnumber ) throws WTException, WTPropertyVetoException {

		QuerySpec qs1 = new QuerySpec(WTPartMaster.class);
		qs1.appendSearchCondition(new SearchCondition(WTPartMaster.class,WTPartMaster.NUMBER,SearchCondition.LIKE,PRTnumber) );
		final QueryResult qr1 = PersistenceHelper.manager.find(qs1);

		while (qr1.hasMoreElements()) {
			WTPartMaster wtpm1 = (WTPartMaster)qr1.nextElement();

			System.out.println( "\nWtPart - Number1: " + wtpm1.getNumber() + " - Name1: " + wtpm1.getName() );
			System.out.println( "PRTnumber: " + PRTnumber + " - Pnumber: " + Pnumber );

			IdentificationObject identificationobject = ((Identified)wtpm1).getIdentificationObject();
			WTPartMasterIdentity identity=(WTPartMasterIdentity)identificationobject;
			identity.setNumber(Pnumber);
			IdentityHelper.service.changeIdentity((Identified)wtpm1,identity);
		}

		return new Enumeration() {
			public boolean hasMoreElements() {
				return qr1.hasMoreElements();
			}
			public Object nextElement() throws NoSuchElementException {
				return ((Persistable[])qr1.nextElement());
			}
		};
	}

	public static Enumeration FindEpmNumbered( ) throws WTException, WTPropertyVetoException {

		String number = "%.ASM";

		QuerySpec qs = new QuerySpec(EPMDocumentMaster.class);
		qs.appendSearchCondition(new SearchCondition(EPMDocumentMaster.class,EPMDocumentMaster.NUMBER,SearchCondition.LIKE,number) );
		final QueryResult qr = PersistenceHelper.manager.find(qs);

		while (qr.hasMoreElements()) {
			EPMDocumentMaster epmm = (EPMDocumentMaster)qr.nextElement();
			//System.out.println( "EPMDocument - Number: " + epmm.getNumber() + " - Name: " + epmm.getName() );

			String subNo = epmm.getNumber().substring(0, epmm.getNumber().lastIndexOf("."));
			String fullNo = subNo+".PRT";
			String fullNoP = subNo+".P";

			try {
				Enumeration w = FindEpmNo( fullNo, fullNoP );
				while (w.hasMoreElements()) {
					System.out.println(((EPMDocument)w.nextElement()).getIdentity());
				}
			}
			catch (WTException wtee) {
				wtee.printStackTrace();
			}
			catch (WTPropertyVetoException wtpe) {
				wtpe.printStackTrace();
			}
		}

		return new Enumeration() {
			public boolean hasMoreElements() {
				return qr.hasMoreElements();
			}
			public Object nextElement() throws NoSuchElementException {
				return ((Persistable[])qr.nextElement());
			}
		};
	}

	public static Enumeration FindEpmNo( String PRTnumber, String Pnumber ) throws WTException, WTPropertyVetoException {

		QuerySpec qs1 = new QuerySpec(EPMDocumentMaster.class);
		qs1.appendSearchCondition(new SearchCondition(EPMDocumentMaster.class,EPMDocumentMaster.NUMBER,SearchCondition.LIKE,PRTnumber) );
		final QueryResult qr1 = PersistenceHelper.manager.find(qs1);

		while (qr1.hasMoreElements()) {
			EPMDocumentMaster epmm1 = (EPMDocumentMaster)qr1.nextElement();

			System.out.println( "\nEPMDocument - Number1: " + epmm1.getNumber() + " - Name1: " + epmm1.getName() );
			System.out.println( "PRTnumber: " + PRTnumber + " - Pnumber: " + Pnumber );

			IdentificationObject identificationobject = ((Identified)epmm1).getIdentificationObject();
			EPMDocumentMasterIdentity identity=(EPMDocumentMasterIdentity)identificationobject;
			identity.setNumber(Pnumber);
			IdentityHelper.service.changeIdentity((Identified)epmm1,identity);
		}

		return new Enumeration() {
			public boolean hasMoreElements() {
				return qr1.hasMoreElements();
			}
			public Object nextElement() throws NoSuchElementException {
				return ((Persistable[])qr1.nextElement());
			}
		};
	}

	public static void main(String[] args) {
		RemoteMethodServer rms = RemoteMethodServer.getDefault();
		GatewayAuthenticator auth = new GatewayAuthenticator();
		auth.setRemoteUser("wcadmin");
		rms.setAuthenticator(auth);

		try {
			Enumeration w = FindWtpNumbered();
			while (w.hasMoreElements()) {
				System.out.println(((WTPart)w.nextElement()).getIdentity());
			}
			Enumeration e = FindEpmNumbered();
			while (e.hasMoreElements()) {
				System.out.println(((EPMDocument)e.nextElement()).getIdentity());
			}
		}
		catch (WTException wtee) {
			wtee.printStackTrace();
		}
		catch (WTPropertyVetoException wtpe) {
			wtpe.printStackTrace();
		}
		finally {
			System.exit(0);
		}
	}
}
