
// from [c/d]:/ptc/Windchill (location wc shell opens to) with java in src/ext/
// ant -f bin/tools.xml class -Dclass.includes=ext/pdf_plt_07.java
// java ext.pdf_plt_07 ljett%>D:\ptc\Windchill\src\ext\output\pdf_plt_07-ljett-102613_01.txt

package ext;

import java.util.*;
import java.rmi.RemoteException;
import java.net.URL;
import java.beans.PropertyVetoException;
import java.io.*;

import wt.util.*;
import wt.fc.*;
import wt.vc.*;
import wt.query.*;
import wt.epm.*;

import wt.httpgw.GatewayAuthenticator;
import wt.method.RemoteAccess;
import wt.method.RemoteMethodServer;

import wt.content.*;
import wt.representation.*;
import wt.folder.CabinetBased;

public class pdf_plt_07 implements RemoteAccess, Serializable {

	public static Enumeration FindEpmNumbered( String number ) throws WTException, WTPropertyVetoException {

		QuerySpec qs = new QuerySpec(EPMDocument.class);
		qs.appendSearchCondition(new SearchCondition(EPMDocument.class,EPMDocument.NUMBER,SearchCondition.LIKE,number) );
		final QueryResult qr = PersistenceHelper.manager.find(qs);

		while (qr.hasMoreElements()) {
			EPMDocument epmm = (EPMDocument)qr.nextElement();
			EPMDocumentType epmdocumenttype = epmm.getDocType();
			String epmTyp = epmdocumenttype.toString();

			if(epmTyp.equals("CADDRAWING")){
				//System.out.println( "\n=======================\nEPMDoc - Number: " + epmm.getNumber() + " - Name: " + epmm.getName()+ " - CadName: " + epmm.getCADName() );
				//System.out.println( "EPMDocument " + epmm.getNumber() + " -Version: " + epmm.getVersionIdentifier().getValue() + " - Iteration:"+epmm.getIterationIdentifier().getValue());

				String epmPrt = "NO:"+epmm.getNumber()+"|NM:"+epmm.getName()+"|Vers:"+epmm.getVersionIdentifier().getValue()+"."+epmm.getIterationIdentifier().getValue();

				try {
					//get Content object
					Representation defaultRep=RepresentationHelper.service.getDefaultRepresentation(epmm);
					//System.out.println( "Got default rep");
					ContentHolder holder=ContentHelper.service.getContents(defaultRep);
					java.util.Vector contents=ContentHelper.getContentListAll(holder);
					//System.out.println( "\nnumber of content items = " +contents.size());
					ApplicationData data=null;

					for (int i=0;i<contents.size();i++) {
						if (contents.get(i) instanceof ApplicationData) {
							//System.out.println( "Got App Data-"+i);
							data=(ApplicationData)contents.get(i);
							if (data!=null) {
								if (data.getFileName().endsWith("plt") || data.getFileName().endsWith("pdf")) {
									System.out.println( epmPrt+"|"+data.getFileName());
								}
							}
						}
					}
				}
				catch(Exception exception) {
					System.out.println( epmPrt+"|Exception");
					//exception.printStackTrace();
				}
			}
		}

		return new Enumeration() {
			public boolean hasMoreElements() {
				return qr.hasMoreElements();
			}
			public Object nextElement() throws NoSuchElementException {
				return ((Persistable[])qr.nextElement());
			}
		};
	}

	public static void main(String[] args) {
		RemoteMethodServer rms = RemoteMethodServer.getDefault();
		GatewayAuthenticator auth = new GatewayAuthenticator();
		auth.setRemoteUser("wcadmin");
		rms.setAuthenticator(auth);

		try {
			if ( args.length < 1 || args.length > 1 ) {
				System.out.println(Usage);
				System.exit(0);
			}
			else {
				QueStg = args[0].toUpperCase();

				Enumeration e = FindEpmNumbered(QueStg);
				while (e.hasMoreElements()) {
					System.out.println(((EPMDocument)e.nextElement()).getIdentity());
				}
			}
		}
		catch (WTException wtee) {
			wtee.printStackTrace();
		}
		catch (WTPropertyVetoException wtpe) {
			wtpe.printStackTrace();
		}
		finally {
			System.exit(0);
		}
	}

	static String QueStg;

	public static String Usage = "\nUsage:\n\njava/windchill [-mx1024m] "+
	"lj_cust.ObjMan -<query/rename> %.<query/rename string>\n\n"+
	"1st Argument = <query/rename>:\n\n-qw = query wtparts only\n-qe = query epmdocs only\n"+
	"-qb = query both (wtparts & epmdocs)\n\n-rw = rename wtparts only (query 1st)\n"+
	"-re = rename epmdocs only (query 1st)\n-rb = rename both (wtparts & epmdocs) (query 1st)\n\n"+
	"-rpw = rename .PRT to .P - wtparts only (query 1st)\n"+
	"-rpe = rename .PRT to .P - epmdocs only (query 1st)\n"+
	"-rpb = rename .PRT to .P - both (wtparts & epmdocs) (query 1st)\n\n"+
	"-raw = rename .ASM to .A - wtparts only (query 1st)\n"+
	"-rae = rename .ASM to .A - epmdocs only (query 1st)\n"+
	"-rab = rename .ASM to .A - both (wtparts & epmdocs) (query 1st)\n\n"+
	"1st Argument should be lower case.\n\n2nd Argument = %<query/rename string>\n\n"+
	"Should include % & . where % = * = wild card.\nTypical = %.PRT or %.ASM\n";
}
