/*
* @copyright(disclaimer)
* *
* DISCLAIMER OF WARRANTIES. *
* *
* The following IBM Content Manager Enterprise Edition code is sample code *
* created by IBM Corporation. IBM grants you a nonexclusive copyright *
* license to use this sample code example to generate similar function *
* tailored to your own specific needs. This sample code is not part of any *
* standard IBM product and is provided to you solely for the purpose of *
* assisting you in the development of your applications. This example has *
* not been thoroughly tested under all conditions. IBM, therefore cannot *
* guarantee nor may you imply reliability, serviceability, or function of *
* these programs. The code is provided "AS IS", without warranty of any *
* kind. IBM shall not be liable for any damages arising out of your or any *
* other parties use of the sample code, even if IBM has been advised of the *
* possibility of such damages. If you do not agree with these terms, do not *
* use the sample code. *
* *
* Licensed Materials - Property of IBM *
* 5724-B19, 5697-H60 *
* � Copyright IBM Corp. 1994, 2013 All Rights Reserved. *
* *
* US Government Users Restricted Rights - Use, duplication or disclosure *
* restricted by GSA ADP Schedule Contract with IBM Corp. *
* *
* @endCopyright
*/
/*
* Description : Execute a parametric query against an ImagePlus/390 server
* Search for documents in a folder IPSAMP.
*
*/
import com.ibm.mm.sdk.common.*;
import com.ibm.mm.sdk.client.*;
import java.io.*;
import java.lang.*;
public class TClientExecuteIP implements DKConstantIP
{
// Main method
public static void main(String argv[])
{
// Indicate this is a Console Application on Windows NT/95 for error
// message display in dos console code page. If this was a Windows
// GUI (Graphic User Interface) Application this would not be necessary
// because DK_CM_SS_WINDOWS is the default.
DKEnvironment.setSubSystem(DK_CM_SS_CONSOLE);
if (argv.length < 3)
{
System.out.println("Invoke Syntax: " );
System.out.println(" java TClientExecuteIP <libsrv> <userid> <pw>" );
return;
}
String libSrv = argv[0];
String userid = argv[1];
String pw = argv[2];
DKDatastoreIP dsIP = null;
try
{
System.out.println(" *** ImagePlus Connector *** ");
dsIP = new DKDatastoreIP();
System.out.println("---Connecting to ImagePlus server---");
String connectString = new String("APPL=01;FAFIP=9.67.43.83;IODMIP=9.67.43.83;FAFPORT=3061;IODMPORT=3082;FAFPROT=4000;IODMPROT=4000;FAFSITE=CS61");
dsIP.connect(libSrv, userid, pw, connectString);
System.out.println("datastore ImagePlus connected");
String pcmd = null;
DKDDO pDDO = null;
int i = 0;
short j = 0;
short k = 0;
int resultCounter = 0;
int numDataItems = 0;
Object a = null;
dkCollection pCol = null;
String strDataName;
dkIterator pIter = null;
dkDataObjectBase pDO = null;
dkXDO pXDO = null;
DKPidXDO pidXDO = null;
String pidString;
DKPidXDOIP pidXDOIP = null;
// prepare the parametric query string
pcmd = "SEARCH=( ENTITY=DOCUMENT,"
+ "MAX_RESULTS=10,"
+ "COND=(FolderId == \"IPSAMP\") );"
+ "OPTION=(CONTENT=YES)";
DKParametricQuery pq = (DKParametricQuery) dsIP.createQuery( pcmd
, DK_PARAMETRIC_QL_TYPE
, null);
System.out.println("---Executing query against ImagePlus server---");
System.out.println(" parametric query string " + pq.queryString() );
//do PQ only:
DKResultSetCursorIP resCur = (DKResultSetCursorIP)dsIP.execute( pq );
for ( pDDO = resCur.fetchNext()
; resCur.isValid() && !resCur.isEnd()
; pDDO = resCur.fetchNext() )
{
if (pDDO != null)
{
// pDDO.retrieve(); // used when CONTENT=NO
}
System.out.println("=====> Item " + ++resultCounter + " <=====");
i++;
numDataItems = pDDO.dataCount();
k = pDDO.propertyId(DK_PROPERTY_ITEM_TYPE);
if (k > 0)
{
Short sVal = (Short)pDDO.getProperty(k);
j = sVal.shortValue();
switch (j)
{
case DK_DOCUMENT :
{
System.out.println("Item is document ");
break;
}
case DK_FOLDER :
{
System.out.println("Item is folder ");
break;
}
} // end switch...
} // end valid property
System.out.println("Pid : " + pDDO.getPidObject().getPrimaryId());
System.out.println("Number of Data Items : " + numDataItems);
for (j = 1; j <= numDataItems; j++)
{
a = pDDO.getData(j);
strDataName = pDDO.getDataName(j);
System.out.println(j + ": Attribute Name : " + strDataName );
if (a instanceof Integer)
{
System.out.println(" Integer Value : " + a);
}
else if (a instanceof Short)
{
System.out.println(" Short Value : " + a);
}
else if (a instanceof DKTimestamp)
{
System.out.println(" Timestamp value : " + a);
}
else if (a instanceof DKDate)
{
System.out.println(" Date value : " + a);
}
else if (a instanceof String)
{
System.out.println(" String Value : " + a);
}
else if (a instanceof dkCollection)
{
System.out.println(" Collection Values: ");
pCol = (dkCollection)a;
pIter = pCol.createIterator();
i = 0;
while (pIter.more() == true)
{
i++;
a = pIter.next();
pDO = (dkDataObjectBase)a;
if (pDO.protocol() == DK_PDDO)
{
System.out.println( " " + i + ": DKDDO primary id = "
+ ((DKDDO)pDO).getPid().getPrimaryId());
}
else if (pDO.protocol() == DK_XDO)
{
pXDO = (dkXDO)pDO;
pidXDOIP = (DKPidXDOIP)pXDO.getPidObject();
pidString = pidXDOIP.getPrimaryId();
System.out.println( " " + i + ": DKXDOIP primary id = "
+ pidString );
pidXDOIP = (DKPidXDOIP) pXDO.getPidObject();
System.out.println( " Part # = "
+ pidXDOIP.getPartId() );
pidXDOIP = (DKPidXDOIP) pXDO.getPidObject();
System.out.println( " Part Type = "
+ pXDO.getAffiliatedType() );
pXDO.retrieve();
if ( !pXDO.isNull() )
{
byte[] tmpIn;
tmpIn = new byte[3];
System.out.print("View the document? (y/n)");
System.in.read( tmpIn );
if ( tmpIn[0] == 'y'
|| tmpIn[0] == 'Y' )
{
pXDO.open();
}
}
}
} // end while
} // end if collection
else if (a != null)
{
System.out.println(" Attribute Value : " + a.toString());
}
else
{
System.out.println(" Attribute Value : <null>");
}
} // endfor
} // end forCursor
resCur.destroy();
dsIP.disconnect();
System.out.println("datastore ImagePlus disconnected");
dsIP.destroy();
}
catch (DKException exc)
{
try
{
if ( dsIP != null )
dsIP.destroy();
}
catch (Exception e)
{
e.printStackTrace();
}
System.out.println("Exception name " + exc.name());
System.out.println("Exception message " + exc.getMessage());
exc.printStackTrace();
}
catch (Exception exc)
{
try
{
if ( dsIP != null )
dsIP.destroy();
}
catch (Exception e)
{
e.printStackTrace();
}
System.out.println("Exception message " + exc.getMessage());
exc.printStackTrace();
}
}
}