Configure {@link DatabaseFactory} without a tango db

@param argv
@param currentIdx
@return The list of no db devices
@throws DevFailed
351237
private List<String> configureNoDB(final String argv[], final int currentIdx) throws DevFailed {
        final List<String> noDbDevices = new ArrayList<String>();
        if (!ArrayUtils.contains(argv, NODB)) {
            throw DevFailedUtils.newDevFailed(INIT_ERROR, getUsage());
        } else {
            for (int j = currentIdx + 1; j < argv.length; j++) {
                if (!argv[j].startsWith("-")) {
                    // several devices separated by commons
                    final String[] devices = argv[j].split(",");
                    if (devices.length > 1) {
                        Collections.addAll(noDbDevices, devices);
                    } else {
                        noDbDevices.add(argv[j]);
                    }
                    logger.warn("Device with no db: " + argv[j]);
                } else {
                    break;
                }
            }
            // only one class can be loaded with no db (the last one)
            DatabaseFactory.setNoDbDevices(noDbDevices.toArray(new String[0]), lastClass);
        }
        return noDbDevices;

    }
1240207
public void addTangoChangeListener(ITangoChangeListener listener, String attrName, String[] filters, boolean stateless)
            throws DevFailed {
        TangoChange tangoChange;
        String key = deviceName+"/"+attrName;
        if ((tangoChange = tango_change_source.get(key)) == null) {
            tangoChange = new TangoChange(deviceProxy, attrName, filters);
            tango_change_source.put(key, tangoChange);
        }

        synchronized (moni) {
            tangoChange.addTangoChangeListener(listener, stateless);
        }
    }
202161
public List<String> getDevicePipeList(String deviceName, String wildcard) throws DevFailed {
        return databaseDAO.getDevicePipeList(this, deviceName, wildcard);
    }
546001
public void addTangoUserListener(ITangoUserListener listener, String attrName, String[] filters, boolean stateless)
            throws DevFailed {
        TangoUser tangoUser;
        String key = deviceName+"/"+attrName;
        if ((tangoUser = tango_user_source.get(key)) == null) {
            tangoUser = new TangoUser(deviceProxy, attrName, filters);
            tango_user_source.put(key, tangoUser);
        }

        synchronized (moni) {
            tangoUser.addTangoUserListener(listener, stateless);
        }
    }
1093632
public void add_device(String devname, String classname, String servname) throws DevFailed {
		databaseDAO.add_device(this, devname, classname, servname);
    }
375813
public int (final DeviceAttribute da, final boolean fwd) throws DevFailed {
	final int rid = _i(da, fwd, next_req_id());
	arp.put(new Integer(rid), new Boolean(fwd));
	return rid;
    }
95846
public DbDevImportInfo import_device(Database database, String deviceName)
            throws DevFailed {
        DevVarLongStringArray info;

        //	ALWAYS Authorized (e.g. import TAC itself)
        int tmp_access = database.access;
        database.access = TangoConst.ACCESS_WRITE;
        try {
            DeviceData argIn = new DeviceData();
            argIn.insert(deviceName);
            //System.out.println("DbImportDevice " + deviceName);
            DeviceData argOut = command_inout(database, "DbImportDevice", argIn);
            info = argOut.extractLongStringArray();
            database.access = tmp_access;
        } catch (DevFailed e) {
            database.access = tmp_access;
            throw e;
        }
        return new DbDevImportInfo(info);
    }
1252198
public DbAttribute[] get_device_attribute_property(Database database, String deviceName, String[] attnames)
            throws DevFailed {
        if (!database.isAccess_checked()) checkAccess(database);

        DeviceData argIn = new DeviceData();
        DeviceData argOut;
        int mode = 2;

        try {
            //	value is an array
            argIn.insert(ApiUtil.toStringArray(deviceName, attnames));
            argOut = command_inout(database, "DbGetDeviceAttributeProperty2", argIn);
        } catch (DevFailed e) {
            if (e.errors[0].reason.equals("API_CommandNotFound")) {
                //	Value is just one element
                argOut = command_inout(database, "DbGetDeviceAttributeProperty", argIn);
                mode = 1;
            } else
                throw e;
        }
        return ApiUtil.toDbAttributeArray(argOut.extractStringArray(), mode);
    }
1213541
public DbPipe getDevicePipeProperties(Database database, String deviceName, String pipeName) throws DevFailed {

        DeviceData argIn = new DeviceData();
        argIn.insert(new String[]{deviceName, pipeName});
        DeviceData argOut = database.command_inout("DbGetDevicePipeProperty", argIn);
        return ApiUtil.toDbPipe(pipeName, argOut.extractStringArray());
    }
1314776
public void addTangoPeriodicListener(ITangoPeriodicListener listener, String attrName, String[] filters, boolean stateless)
            throws DevFailed {
        TangoPeriodic tangoPeriodic;

        String key = deviceName+"/"+attrName;
        if ((tangoPeriodic = tango_periodic_source.get(key)) == null) {
            tangoPeriodic = new TangoPeriodic(deviceProxy, attrName, filters);
            tango_periodic_source.put(key, tangoPeriodic);
        }

        synchronized (moni) {
            tangoPeriodic.addTangoPeriodicListener(listener, stateless);
        }
    }
958388
public String getDeviceFromAlias(Database database, String alias) throws DevFailed {
        DeviceData argIn = new DeviceData();
        argIn.insert(alias);
        DeviceData argOut = command_inout(database, "DbGetAliasDevice", argIn);
        return argOut.extractString();
    }
799586
public Database get_db_obj(final DeviceProxy deviceProxy) throws DevFailed {
        checkIfUseDb(deviceProxy, "get_db_obj()");
        return ApiUtil.get_db_obj(deviceProxy.url.host, deviceProxy.url.strPort);
    }
724286
public static Database change_db_obj(final String host, final String port) throws DevFailed {
	    return apiutilDAO.change_db_obj(host, port);
    }
1195326
public Database set_db_obj(final String host, final String port) throws DevFailed {
	return change_db_obj(host, port);
    }
1346300
public void init(final Connection connection, final String host, final String port)
	    	throws DevFailed {
		connection.url = new TangoUrl(buildUrlName(TangoUrl.getCanonicalName(host), port));
		connection.setDevice_is_dbase(true);
		connection.transparent_reconnection = true; // Always true for Database

		ApiUtil.get_orb();
		connect_to_dbase(connection);
		connection.devname = connection.device.name();
		connection.setAlready_connected(true);
    }
724673
public String[] get_class_inheritance_for_device(Database database, String deviceName)
            throws DevFailed {
        if (!database.isAccess_checked()) checkAccess(database);

        String[] result = {"Device_3Impl"};
        try {
            DeviceData argIn = new DeviceData();
            argIn.insert(deviceName);
            DeviceData argOut = command_inout(database, "DbGetClassInheritanceForDevice", argIn);
            result = argOut.extractStringArray();
        } catch (DevFailed e) {
            //	Check if an old API else re-throw
            if (!e.errors[0].reason.equals("API_CommandNotFound"))
                throw e;
        }

        return result;
    }
1191683
public String[] getServices(String servicename, String instname) throws DevFailed {
		return databaseDAO.getServices(this, servicename, instname);
	}