Files
loongoffice/scripting/workben/ifc/scripting/_XScriptNameResolver.java
Noel Grandin 0c37eeebb0 Java cleanup, use generic containers where possible
Change-Id: Icd830004de3e121f5b96393e7d7b447775833419
Reviewed-on: https://gerrit.libreoffice.org/3569
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
2013-04-24 08:57:57 +00:00

175 lines
5.5 KiB
Java

/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
package ifc.scripting;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Collection;
import drafts.com.sun.star.script.framework.runtime.XScriptNameResolver;
import drafts.com.sun.star.script.framework.storage.XScriptInfo;
import drafts.com.sun.star.script.framework.storage.XScriptStorageManager;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.ucb.XSimpleFileAccess;
import com.sun.star.beans.XPropertySet;
import com.sun.star.uno.XComponentContext;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XInterface;
import lib.MultiMethodTest;
import lib.StatusException;
import lib.Parameters;
public class _XScriptNameResolver extends MultiMethodTest {
public XScriptNameResolver oObj = null;
private XScriptStorageManager storageManager = null;
/**
* Retrieves object relation.
*/
public void before() throws StatusException {
}
public void _resolve() {
boolean result = true;
Collection c =
(Collection) tEnv.getObjRelation("_resolve");
Iterator tests;
if (c != null) {
tests = c.iterator();
while (tests.hasNext()) {
result &= runResolveTest((Parameters)tests.next());
}
}
else {
result = false;
}
tRes.tested("resolve()", result);
}
private boolean runResolveTest(Parameters data) {
String description = data.get("description");
String location = data.get("location");
String logicalname = data.get("logicalname");
String expected = data.get("expected");
String output = "";
int storageId = getStorageId(location);
log.println(description + ": " + logicalname);
HashMap<String,Object> map = new HashMap<String,Object>();
map.put("SCRIPTING_DOC_STORAGE_ID", new Integer(storageId));
map.put("SCRIPTING_DOC_URI", util.utils.getFullTestURL(location));
Parameters params = new Parameters(map);
Object[] args = new Object[] {params};
try {
XInterface ifc = (XInterface) oObj.resolve(logicalname, args);
if (ifc == null)
output = "null";
else if (UnoRuntime.queryInterface(XScriptInfo.class, ifc) == null)
output = "null";
else
output = "XScriptInfo.class";
}
catch (com.sun.star.lang.IllegalArgumentException iae) {
log.println("caught IllegalArgumentException: " + iae);
output = "com.sun.star.lang.IllegalArgumentException";
}
catch (com.sun.star.script.CannotConvertException cce) {
log.println("caught CannotConvertException: " + cce);
output = "com.sun.star.script.CannotConvertException";
}
catch (com.sun.star.uno.RuntimeException re) {
log.println("caught RuntimeException: " + re);
output = "com.sun.star.uno.RuntimeException";
}
log.println("expected: " + expected + ", output: " + output);
if (output.equals(expected))
return true;
else
return false;
}
private int getStorageId(String location) {
if (location.equals("share"))
return 0;
if (location.equals("user"))
return 1;
XSimpleFileAccess access = null;
String uri = util.utils.getFullTestURL(location);
if (storageManager == null) {
try {
XPropertySet xProp = UnoRuntime.queryInterface(
XPropertySet.class, tParam.getMSF());
XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class,
xProp.getPropertyValue("DefaultContext"));
XInterface ifc = (XInterface)
xContext.getValueByName("/singletons/drafts.com.sun.star." +
"script.framework.storage.theScriptStorageManager");
storageManager = UnoRuntime.queryInterface(XScriptStorageManager.class, ifc);
}
catch( Exception e ) {
return -1;
}
}
access = getXSimpleFileAccess();
if (access == null)
return -1;
int id = storageManager.createScriptStorageWithURI(access, uri);
return id;
}
private XSimpleFileAccess getXSimpleFileAccess() {
XSimpleFileAccess access = null;
try {
Object fa = ((XMultiServiceFactory) tParam.getMSF()).createInstance(
"com.sun.star.ucb.SimpleFileAccess");
access = UnoRuntime.queryInterface(XSimpleFileAccess.class, fa);
}
catch (com.sun.star.uno.Exception e) {
return null;
}
return access;
}
}