public com.actuate.schemas.SelectFilesResponse selectFiles(
		com.actuate.schemas.FileSearch fileSearch,
		String name,
		ArrayOfString nameList) {
		if (null == authenticationId)
			login();

		com.actuate.schemas.ArrayOfString resultDef =
			newArrayOfString(
				new String[] {
					"Description",
					"FileType",
					"Id",
					"Name",
					"Owner",
					"PageCount",
					"Size",
					"TimeStamp",
					"UserPermissions",
					"Version",
					"VersionName" });

		com.actuate.schemas.SelectFiles selectFiles =
			new com.actuate.schemas.SelectFiles();
		selectFiles.setResultDef(resultDef);

		if (fileSearch != null)
			selectFiles.setSearch(fileSearch);
		else if (name != null)
			selectFiles.setName(name);
		else if (nameList != null)
			selectFiles.setNameList(nameList);

		com.actuate.schemas.SelectFilesResponse selectFilesResponse = null;
		try {
			selectFilesResponse = proxy.selectFiles(selectFiles);

			com.actuate.schemas.ArrayOfFile itemList =
				selectFilesResponse.getItemList();
			com.actuate.schemas.File[] files = itemList.getFile();
			if (files != null) {
				for (int i = 0; i < files.length; i++) {
					printFile(System.out, files[i]);
				}
			}
		} catch (RemoteException e) {
			System.out.println("error !!!");
			e.printStackTrace();
		}
		return selectFilesResponse;
	}