package jwis.retest;
import wt.doc.WTDocument;
import wt.fc.PersistenceHelper;
import wt.fc.QueryResult;
import wt.folder.Folder;
import wt.folder.FolderHelper;
import wt.folder.SubFolder;
import wt.inf.container.WTContainer;
import wt.inf.container.WTContainerRef;
import wt.method.RemoteAccess;
import wt.method.RemoteMethodServer;
import wt.pds.StatementSpec;
import wt.query.QueryException;
import wt.query.QuerySpec;
import wt.query.SearchCondition;
import wt.query.WhereExpression;
import wt.util.WTException;
/**
*
* @author Administrator
* 新建文档
*/
public class InitDocument implements RemoteAccess {
// 获取产品容器
public static WTContainer getContain(String containName){
int[] index = {0};
try {
QuerySpec spec = new QuerySpec(WTContainer.class);
SearchCondition sc = new SearchCondition(WTContainer.class, WTContainer.NAME,"=",containName);
spec.appendWhere(sc, index);
QueryResult rs = PersistenceHelper.manager.find((StatementSpec) spec);
while(rs.hasMoreElements()){
WTContainer container =(WTContainer) rs.nextElement();
return container;
}
} catch (QueryException e) {
e.printStackTrace();
} catch (WTException e) {
e.printStackTrace();
}
return null;
}
//根据产品id和文档的名称查询文档
public static WTDocument getDocument(String docName, WTContainer container){
int[] index = {0};
WTDocument doc = null;
QueryResult result = null;
long containerId = PersistenceHelper.getObjectIdentifier(container).getId();
try {
QuerySpec qs = new QuerySpec(WTDocument.class);
WhereExpression ws = new SearchCondition(WTDocument.class, WTDocument.NAME,SearchCondition.EQUAL,docName);
qs.appendWhere(ws, index);
qs.appendAnd();
ws = new SearchCondition(WTDocument.class,"containerReference.key.id",SearchCondition.EQUAL,containerId);
qs.appendWhere(ws, index);
result = PersistenceHelper.manager.find((StatementSpec) qs);
while(result.hasMoreElements()){
doc = (WTDocument) result.nextElement();
}
} catch (QueryException e) {
e.printStackTrace();
} catch (WTException e) {
e.printStackTrace();
}
return doc;
}
// 创建文件夹目录
public static void creatDirectory(String array[], WTContainerRef containerRef){
// 获得容器的目录
String path = ((WTContainer) containerRef.getObject()).getDefaultCabinet().getFolderPath();
if(array != null){
//下级目录的个数
int len = array.length;
Folder folder = null;
//根据array数组创建文件夹
for(int i = 0; i < len; i++){
try {
folder = FolderHelper.service.getFolder(path, containerRef);
path = path + '/' + array[i];
QueryResult result = FolderHelper.service.findSubFolders(folder);
//若不存在该文件夹,则新建该文件夹
if(!checkFolder(result,array[i])){
FolderHelper.service.createSubFolder(path, containerRef);
}
} catch (WTException e) {
e.printStackTrace();
}
}
}
}
// 判断文件夹是否存在
public static boolean checkFolder(QueryResult result, String str){
if(result == null){
return false;
}
while(result.hasMoreElements()){
Object object = result.nextElement();
if(object instanceof SubFolder){
SubFolder subfolder = (SubFolder)object;
if(subfolder.getName().equals(str)){
return true;
}
}
else{
return false;
}
}
return false;
}
// 主函数
@SuppressWarnings("deprecation")
public static void main(String[] args) throws Exception {
RemoteMethodServer server = RemoteMethodServer.getDefault();
server.setUserName("wcadmin");
server.setPassword("katch");
String contName = "test";
WTContainer cont = getContain(contName);
WTContainerRef contrf = WTContainerRef.newWTContainerRef(cont);
// 获取产品的oid
System.out.println("产品的OID为:"+contrf.getObjectId());
// 获取文档的信息
WTDocument document = getDocument("bus", cont);
System.out.println(document.getNumber());
String array[] = {"one","two","three"};
//创建文件夹(路径)
creatDirectory(array,contrf);
// 路径创建成功
System.out.println("多级文件目录创建成功!!");
}
}
import wt.doc.WTDocument;
import wt.fc.PersistenceHelper;
import wt.fc.QueryResult;
import wt.folder.Folder;
import wt.folder.FolderHelper;
import wt.folder.SubFolder;
import wt.inf.container.WTContainer;
import wt.inf.container.WTContainerRef;
import wt.method.RemoteAccess;
import wt.method.RemoteMethodServer;
import wt.pds.StatementSpec;
import wt.query.QueryException;
import wt.query.QuerySpec;
import wt.query.SearchCondition;
import wt.query.WhereExpression;
import wt.util.WTException;
/**
*
* @author Administrator
* 新建文档
*/
public class InitDocument implements RemoteAccess {
// 获取产品容器
public static WTContainer getContain(String containName){
int[] index = {0};
try {
QuerySpec spec = new QuerySpec(WTContainer.class);
SearchCondition sc = new SearchCondition(WTContainer.class, WTContainer.NAME,"=",containName);
spec.appendWhere(sc, index);
QueryResult rs = PersistenceHelper.manager.find((StatementSpec) spec);
while(rs.hasMoreElements()){
WTContainer container =(WTContainer) rs.nextElement();
return container;
}
} catch (QueryException e) {
e.printStackTrace();
} catch (WTException e) {
e.printStackTrace();
}
return null;
}
//根据产品id和文档的名称查询文档
public static WTDocument getDocument(String docName, WTContainer container){
int[] index = {0};
WTDocument doc = null;
QueryResult result = null;
long containerId = PersistenceHelper.getObjectIdentifier(container).getId();
try {
QuerySpec qs = new QuerySpec(WTDocument.class);
WhereExpression ws = new SearchCondition(WTDocument.class, WTDocument.NAME,SearchCondition.EQUAL,docName);
qs.appendWhere(ws, index);
qs.appendAnd();
ws = new SearchCondition(WTDocument.class,"containerReference.key.id",SearchCondition.EQUAL,containerId);
qs.appendWhere(ws, index);
result = PersistenceHelper.manager.find((StatementSpec) qs);
while(result.hasMoreElements()){
doc = (WTDocument) result.nextElement();
}
} catch (QueryException e) {
e.printStackTrace();
} catch (WTException e) {
e.printStackTrace();
}
return doc;
}
// 创建文件夹目录
public static void creatDirectory(String array[], WTContainerRef containerRef){
// 获得容器的目录
String path = ((WTContainer) containerRef.getObject()).getDefaultCabinet().getFolderPath();
if(array != null){
//下级目录的个数
int len = array.length;
Folder folder = null;
//根据array数组创建文件夹
for(int i = 0; i < len; i++){
try {
folder = FolderHelper.service.getFolder(path, containerRef);
path = path + '/' + array[i];
QueryResult result = FolderHelper.service.findSubFolders(folder);
//若不存在该文件夹,则新建该文件夹
if(!checkFolder(result,array[i])){
FolderHelper.service.createSubFolder(path, containerRef);
}
} catch (WTException e) {
e.printStackTrace();
}
}
}
}
// 判断文件夹是否存在
public static boolean checkFolder(QueryResult result, String str){
if(result == null){
return false;
}
while(result.hasMoreElements()){
Object object = result.nextElement();
if(object instanceof SubFolder){
SubFolder subfolder = (SubFolder)object;
if(subfolder.getName().equals(str)){
return true;
}
}
else{
return false;
}
}
return false;
}
// 主函数
@SuppressWarnings("deprecation")
public static void main(String[] args) throws Exception {
RemoteMethodServer server = RemoteMethodServer.getDefault();
server.setUserName("wcadmin");
server.setPassword("katch");
String contName = "test";
WTContainer cont = getContain(contName);
WTContainerRef contrf = WTContainerRef.newWTContainerRef(cont);
// 获取产品的oid
System.out.println("产品的OID为:"+contrf.getObjectId());
// 获取文档的信息
WTDocument document = getDocument("bus", cont);
System.out.println(document.getNumber());
String array[] = {"one","two","three"};
//创建文件夹(路径)
creatDirectory(array,contrf);
// 路径创建成功
System.out.println("多级文件目录创建成功!!");
}
}