Example usage for org.apache.commons.configuration HierarchicalConfiguration getStringArray

List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getStringArray

Introduction

In this page you can find the example usage for org.apache.commons.configuration HierarchicalConfiguration getStringArray.

Prototype

public String[] getStringArray(String key) 

Source Link

Document

Get an array of strings associated with the given configuration key.

Usage

From source file:edu.cwru.sepia.Main.java

private static Agent[] getAgents(HierarchicalConfiguration config) {
    String[] participatingAgents = config.getStringArray("agents.ParticipatingAgents");
    Agent[] agents = new Agent[participatingAgents.length];

    for (int i = 0; i < participatingAgents.length; i++) {
        String key = "agents." + participatingAgents[i];
        HierarchicalConfiguration agentConfig = config.configurationAt(key);
        String className = agentConfig.getString("ClassName");
        int playerId = agentConfig.getInt("PlayerId");
        String[] arguments = agentConfig.getStringArray("ConstructorArguments");
        try {//w w w .j a va2s . c  o  m
            Class<?> classDef = Class.forName(className);
            Agent agent = null;
            try {
                if (arguments != null && arguments.length != 0)
                    agent = (Agent) classDef.getConstructor(int.class, String[].class).newInstance(playerId,
                            arguments);
            } catch (Exception e) {
            }
            if (agent == null) {
                @SuppressWarnings("unchecked")
                Constructor<? extends Agent> constructor = (Constructor<? extends Agent>) classDef
                        .getConstructor(int.class);
                agent = (Agent) constructor.newInstance(playerId);
            }
            agents[i] = agent;
        } catch (Exception ex) {
            String errorMessage = String.format("Unable to instantiate %s with playerId %d%s.", className,
                    playerId,
                    (arguments == null ? "" : " and additional arguments " + Arrays.toString(arguments)));
            logger.log(Level.SEVERE, errorMessage, ex);
            throw new RuntimeException(ex);//make sure the program fails and the error gets propagated
        }
        agents[i].setConfiguration(agentConfig);
    }

    return agents;
}

From source file:com.vmware.qe.framework.datadriven.impl.supplier.XMLDataParser.java

/**
 * Segregate the data based on the namespace.<br>
 * /*w  ww  .j  a  v a 2 s .c o  m*/
 * @param dataFromFile HierarchicalConfiguration data loaded from file.
 * @param clazz the test class.
 * @return Map of namespace/test vs the testData.
 * @throws Exception
 */
private static Map<String, HierarchicalConfiguration> segregate(HierarchicalConfiguration dataFromFile,
        Class<?> clazz) throws Exception {
    Map<String, HierarchicalConfiguration> dataMap = new HashMap<String, HierarchicalConfiguration>();
    log.debug("Data : " + ConfigurationUtils.toString(dataFromFile));
    List<HierarchicalConfiguration> allNameSpaces = null;
    String[] classNames = null;
    allNameSpaces = dataFromFile.configurationsAt(TAG_NAMESPACE);
    log.debug(allNameSpaces.size() + " namespaces given.");
    for (int i = 0; i < allNameSpaces.size(); i++) {
        HierarchicalConfiguration aNameSpaceData = allNameSpaces.get(i);
        classNames = aNameSpaceData.getStringArray(TAG_CLASS_NAME);
        // data is added to individual testData in the same namespace is added
        // to the dataMap using testClassName as key
        for (String testClassName : classNames) {
            log.debug(" ** Namespace: " + i + " > " + testClassName);
            if (!dataMap.containsKey(testClassName)) {
                dataMap.put(testClassName, aNameSpaceData);
            } else {
                append(dataMap.get(testClassName), aNameSpaceData);
            }
        }
    }
    log.debug("Data keys: " + dataMap.keySet());
    log.debug("Load size: " + dataMap.size());
    return dataMap;
}

From source file:de.unigoettingen.sub.search.opac.ConfigOpac.java

/**
 * The function getRestrictionsForCatalogue() returns the content of all
 * <kbd>&lt;restriction&gt;</kbd> elements from the
 * <kbd>&lt;catalogue&gt;</kbd> entry with the given <kbd>title</kbd> from
 * <kbd>kitodo_opac.xml</kbd>.
 *
 * <p>/*from w w w .  j  ava  2  s . com*/
 * The function will return an empty list if there are no such entries for
 * the given catalogue.
 * </p>
 *
 * @param title
 *            Title parameter of the <kbd>&lt;catalogue&gt;</kbd> entry to
 *            examine
 * @return List
 */
public static List<String> getRestrictionsForCatalogue(String title) throws FileNotFoundException {
    List<String> result = new LinkedList<>();
    List<HierarchicalConfiguration> catalogues = getConfig().configurationsAt(CATALOGUE);
    for (HierarchicalConfiguration catalogue : catalogues) {
        if (title.equals(catalogue.getString("[@title]"))) {
            result.addAll(Arrays.asList(catalogue.getStringArray("restriction")));
            break;
        }
    }
    return result;
}

From source file:com.vangent.hieos.hl7v2util.acceptor.config.ListenerConfig.java

/**
 *
 * @param hc// www  . j  av  a  2 s .com
 * @throws HL7v2UtilException
 */
private void loadCipherSuites(HierarchicalConfiguration hc) throws HL7v2UtilException {
    cipherSuites = hc.getStringArray(CIPHER_SUITES);
    if (cipherSuites == null || cipherSuites.length == 0) {
        throw new HL7v2UtilException("Must specify " + CIPHER_SUITES + " in configuration.");
    }
}

From source file:com.vmware.qe.framework.datadriven.impl.filter.DataFilterBasedOnTestId.java

@Override
public boolean canRun(String className, HierarchicalConfiguration dataToFilter,
        HierarchicalConfiguration context) {
    String testIdKey = className + "-testids";
    String testIdArray[];//from   w  w  w  . j a v  a 2  s.  co m
    testIdArray = context.getStringArray(testIdKey);
    testIdArray = testIdArray == null ? DDConfig.getSingleton().getData().getStringArray(testIdKey)
            : testIdArray;
    List<String> testIds = Arrays.asList(testIdArray);
    if (testIds.isEmpty()) {
        return true;
    }
    String testId = dataToFilter.getString(TAG_TESTID_ATTR, "");
    boolean canRun = false;
    // Ignoring testIds if they are not in the selected test-ids to run
    if (testIds != null && !testIds.isEmpty()) {
        canRun = testIds.contains(testId);
    }
    log.debug("CanRun: {}", canRun);
    return canRun;
}

From source file:com.vmware.qe.framework.datadriven.impl.filter.DataFilterBasedOnProperty.java

/**
 * filters test based on given filterKey/filterValue. If the any of the filter key/value pairs
 * found from data object, then returns true.
 * // w  w w . j a v  a2s  . com
 * @param data test data
 * @return true if test is selected after applying filter, false otherwise
 */
private boolean checkAgainstFilterProperties(HierarchicalConfiguration data,
        HierarchicalConfiguration context) {
    boolean included = true;
    String filterKeys[] = null;
    String filterValues[] = null;
    if (context.containsKey(ARG_FILTER_KEY) && !context.getString(ARG_FILTER_KEY).trim().equals("")) {
        filterKeys = context.getStringArray(ARG_FILTER_KEY);
        filterValues = context.getStringArray(ARG_FILTER_VALUE);
    } else if (DDConfig.getSingleton().getData().containsKey(ARG_FILTER_KEY)
            && !DDConfig.getSingleton().getData().getString(ARG_FILTER_KEY).trim().equals("")) {
        filterKeys = DDConfig.getSingleton().getData().getStringArray(ARG_FILTER_KEY);
        filterValues = DDConfig.getSingleton().getData().getStringArray(ARG_FILTER_VALUE);
    }
    if (filterKeys != null && filterValues != null) {
        included = false;
        for (int index = 0; index < filterKeys.length; index++) {
            String filterKey = filterKeys[index];
            String filterValue = null;
            if (index >= filterValues.length) {
                filterValue = "";
            } else {
                filterValue = filterValues[index];
            }
            if (data.containsKey(filterKey) && data.getString(filterKey, "").equals(filterValue)) {
                included = true;
                break;
            }
        }
    }
    return included;
}

From source file:com.epam.cme.mdp3.core.cfg.Configuration.java

/**
 * Loads and parse CME MDP Configuration.
 *
 * @param uri URI to CME MDP Configuration (config.xml, usually available on CME FTP)
 * @throws ConfigurationException if failed to parse configuration file
 * @throws MalformedURLException  if URI to Configuration is malformed
 *//*from  w ww .  j  a v  a  2  s. co  m*/
private void load(final URI uri) throws ConfigurationException, MalformedURLException {
    // todo: if to implement the same via standard JAXB then dep to apache commons configuration will be not required
    final XMLConfiguration configuration = new XMLConfiguration();
    configuration.setDelimiterParsingDisabled(true);
    configuration.load(uri.toURL());
    for (final HierarchicalConfiguration channelCfg : configuration.configurationsAt("channel")) {
        final ChannelCfg channel = new ChannelCfg(channelCfg.getString("[@id]"),
                channelCfg.getString("[@label]"));

        for (final HierarchicalConfiguration connCfg : channelCfg.configurationsAt("connections.connection")) {
            final String id = connCfg.getString("[@id]");
            final FeedType type = FeedType.valueOf(connCfg.getString("type[@feed-type]"));
            final TransportProtocol protocol = TransportProtocol
                    .valueOf(connCfg.getString("protocol").substring(0, 3));
            final Feed feed = Feed.valueOf(connCfg.getString("feed"));
            final String ip = connCfg.getString("ip");
            final int port = connCfg.getInt("port");
            final List<String> hostIPs = Arrays.asList(connCfg.getStringArray("host-ip"));

            final ConnectionCfg connection = new ConnectionCfg(feed, id, type, protocol, ip, hostIPs, port);
            channel.addConnection(connection);
            connCfgs.put(connection.getId(), connection);
        }
        channelCfgs.put(channel.getId(), channel);
    }
}

From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.knx.KNXDeviceLoaderETSImpl.java

private void parseEntites(KNXConnector knxConnector, ObjectBroker objectBroker,
        Hashtable<String, EntityImpl> entityById, Hashtable<String, DatapointImpl> datapointById, NetworkImpl n,
        Hashtable<String, String> resourceById, Hashtable<String, String> groupAddressByDatapointID,
        boolean enableGroupComm, boolean enableHistories) {
    for (int entityIdx = 0; entityIdx < sizeOfConfiguration(
            devicesConfig.getProperty("entities.entity[@id]")); entityIdx++) {
        // Entity
        HierarchicalConfiguration entityConfig = devicesConfig
                .configurationAt("entities.entity(" + entityIdx + ")");

        String entityId = entityConfig.getString("[@id]");
        String entityName = arrayToString(entityConfig.getStringArray("[@name]"));
        String entityDescription = arrayToString(entityConfig.getStringArray("[@description]"));
        String entityOrderNumber = entityConfig.getString("[@orderNumber]");
        String entityManufacturerId = entityConfig.getString("[@manufacturerId]");

        EntityImpl entity = new EntityImpl(entityId, entityName, entityDescription,
                resourceById.get(entityManufacturerId), entityOrderNumber);
        entityById.put(entityId, entity);
        n.getEntities().addEntity(entity);
        objectBroker.addObj(entity, true);

        // Translations
        for (int transIdx = 0; transIdx < sizeOfConfiguration(
                entityConfig.getProperty("translations.translation[@language]")); transIdx++) {
            HierarchicalConfiguration transConfig = entityConfig
                    .configurationAt("translations.translation(" + transIdx + ")");

            String language = transConfig.getString("[@language]");
            String attribute = transConfig.getString("[@attribute]");
            String value = arrayToString(transConfig.getStringArray("[@value]"));

            try {
                entity.addTranslation(language, attribute, value);
            } catch (Exception e) {
                log.warning(e.getMessage());
            }//  ww  w. j a v  a 2s .  c  om
        }

        // DPs
        for (int datapointIdx = 0; datapointIdx < sizeOfConfiguration(
                entityConfig.getProperty("datapoints.datapoint[@id]")); datapointIdx++) {
            HierarchicalConfiguration datapointConfig = entityConfig
                    .configurationAt("datapoints.datapoint(" + datapointIdx + ")");

            String dataPointName = arrayToString(datapointConfig.getStringArray("[@name]"));
            String dataPointTypeIds = datapointConfig.getString("[@datapointTypeIds]");
            String dataPointId = datapointConfig.getString("[@id]");
            String dataPointDescription = arrayToString(datapointConfig.getStringArray("[@description]"));
            String dataPointWriteFlag = datapointConfig.getString("[@writeFlag]");
            String dataPointReadFlag = datapointConfig.getString("[@readFlag]");
            // String dataPointPriority = datapointConfig.getString("[@priority]");
            // String dataPointCommunicationFlag = datapointConfig.getString("[@communicationFlag]");
            // String dataPointReadOnInitFlag = datapointConfig.getString("[@readOnInitFlag]");
            // String dataPointTransmitFlag = datapointConfig.getString("[@transmitFlag]");
            // String updateFlag = datapointConfig.getString("[@updateFlag]");

            // use only the first DPTS
            if (dataPointTypeIds.indexOf(" ") >= 0) {
                dataPointTypeIds = dataPointTypeIds.substring(0, dataPointTypeIds.indexOf(" "));
            }

            log.info("Found data point type id: " + dataPointTypeIds);
            String clazzName = "at.ac.tuwien.auto.iotsys.gateway.obix.objects.knx.datapoint.impl."
                    + dataPointTypeIds.replace('-', '_') + "_ImplKnx";
            Class<?> clazz = null;

            try {
                log.info("Loading: " + clazzName);
                clazz = Class.forName(clazzName);
            } catch (ClassNotFoundException e) {
                log.warning(clazzName
                        + " not found. Cannot instantiate according sub data point type. Trying fallback to generic main type.");
                int firstIndexOf = dataPointTypeIds.indexOf('-');
                int secondIndexOf = dataPointTypeIds.indexOf('-', firstIndexOf + 1);
                clazzName = "at.ac.tuwien.auto.iotsys.gateway.obix.objects.knx.datapoint.impl." + "DPT_"
                        + dataPointTypeIds.substring(firstIndexOf + 1, secondIndexOf) + "_ImplKnx"; //

                try {
                    log.info("Loading: " + clazzName);
                    clazz = Class.forName(clazzName);
                } catch (ClassNotFoundException e1) {
                    e1.printStackTrace();
                    log.warning(clazzName + " not found. Cannot instantiate according main data point type.");
                }
            }

            try {
                if (clazz != null) {
                    Constructor<?> constructor = clazz.getConstructor(KNXConnector.class, DataPointInit.class);
                    Object[] object = new Object[2];
                    object[0] = knxConnector;

                    DataPointInit dptInit = new DataPointInit();
                    dptInit.setDisplay(dataPointDescription);
                    dptInit.setDisplayName(dataPointName);
                    dptInit.setReadable(
                            EnumsImpl.getInstance().getEnum(EnumEnabled.HREF).getBool(dataPointReadFlag));
                    dptInit.setName(dataPointId);
                    dptInit.setGroupAddress(
                            new GroupAddress(Integer.parseInt(groupAddressByDatapointID.get(dataPointId))));
                    dptInit.setWritable(
                            EnumsImpl.getInstance().getEnum(EnumEnabled.HREF).getBool(dataPointWriteFlag));

                    object[1] = dptInit;
                    DatapointImpl dataPoint = (DatapointImpl) constructor.newInstance(object);

                    datapointById.put(dataPointId, dataPoint);
                    entity.addDatapoint(dataPoint);

                    if (enableGroupComm)
                        objectBroker.enableGroupComm(dataPoint);
                    if (enableHistories)
                        objectBroker.addHistoryToDatapoints(dataPoint);
                    objectBroker.addObj(dataPoint, true);

                    // Search for child "value"
                    Obj dpValue = dataPoint.get("value");
                    if (dpValue != null) {
                        dpValue.setDisplayName(dataPointDescription);
                    }

                    // Translations (DP)
                    for (int transIdx = 0; transIdx < sizeOfConfiguration(
                            datapointConfig.getProperty("translations.translation[@language]")); transIdx++) {
                        HierarchicalConfiguration transConfig = datapointConfig
                                .configurationAt("translations.translation(" + transIdx + ")");

                        String language = transConfig.getString("[@language]");
                        String attribute = transConfig.getString("[@attribute]");
                        String value = arrayToString(transConfig.getStringArray("[@value]"));

                        try {
                            dataPoint.addTranslation(language, attribute, value);

                            // translation for DisplayName of value
                            if (attribute.toLowerCase().trim().equals("description") && dpValue != null) {
                                dpValue.addTranslation(language, TranslationAttribute.displayName, value);
                            }
                        } catch (Exception e) {
                            log.warning(e.getMessage());
                        }
                    }
                }
            } catch (NoSuchMethodException e) {
                log.warning(clazzName + " no such method. Cannot instantiate according datapoint.");
            } catch (SecurityException e) {
                log.warning(clazzName + " security exception. Cannot instantiate according datapoint.");
            } catch (InstantiationException e) {
                log.warning(clazzName + " instantiation exception. Cannot instantiate according datapoint.");
            } catch (IllegalAccessException e) {
                log.warning(clazzName + " illegal access exception. Cannot instantiate according datapoint.");
            } catch (IllegalArgumentException e) {
                log.warning(clazzName + " illegal argument exception. Cannot instantiate according datapoint.");
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                log.warning(
                        clazzName + " invocation target exception. Cannot instantiate according datapoint.");
                e.printStackTrace();
            }
        }
    }
}

From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.knx.KNXDeviceLoaderETSImpl.java

private void parseBuildingView(HierarchicalConfiguration partConfig, Obj parent, Network n,
        ObjectBroker objectBroker, Hashtable<String, EntityImpl> entityById) {
    for (int partsIdx = 0; partsIdx < sizeOfConfiguration(partConfig.getProperty("part.[@id]")); partsIdx++) {
        String partId = partConfig.getString("part(" + partsIdx + ").[@id]");
        String partName = arrayToString(partConfig.getStringArray("part(" + partsIdx + ").[@name]"));
        String partDescription = arrayToString(
                partConfig.getStringArray("part(" + partsIdx + ").[@description]"));
        String partType = partConfig.getString("part(" + partsIdx + ").[@type]");

        PartImpl part = new PartImpl(partId, partName, partDescription, partType);

        // add part to parent part
        if (parent instanceof ViewBuildingImpl)
            ((ViewBuildingImpl) parent).addPart(part);
        else if (parent instanceof PartImpl)
            ((PartImpl) parent).addPart(part);
        else/*from www .  j a  v a2s .  c  o  m*/
            parent.add(part);

        objectBroker.addObj(part, true);

        // add instances to part
        HierarchicalConfiguration concretePart = partConfig.configurationAt("part(" + partsIdx + ")");

        for (int instanceIdx = 0; instanceIdx < sizeOfConfiguration(
                concretePart.getProperty("instance.[@id]")); instanceIdx++) {
            String instanceId = concretePart.getString("instance(" + instanceIdx + ").[@id]");
            Obj instance = part.addInstance(entityById.get(instanceId));
            objectBroker.addObj(instance);
        }

        // recursively add more parts
        parseBuildingView(concretePart, part, n, objectBroker, entityById);

    }
}

From source file:at.ac.tuwien.auto.iotsys.gateway.connectors.knx.KNXDeviceLoaderETSImpl.java

private void parseDomainView(HierarchicalConfiguration domainConfig, Obj parent, Network n,
        ObjectBroker objectBroker, Hashtable<String, EntityImpl> entityById,
        Hashtable<String, DatapointImpl> datapointById) {
    for (int domainIdx = 0; domainIdx < sizeOfConfiguration(
            domainConfig.getProperty("domain.[@id]")); domainIdx++) {
        String domainId = domainConfig.getString("domain(" + domainIdx + ").[@id]");
        String domainName = arrayToString(domainConfig.getStringArray("domain(" + domainIdx + ").[@name]"));
        String domainDescription = arrayToString(
                domainConfig.getStringArray("domain(" + domainIdx + ").[@description]"));

        DomainImpl domain = new DomainImpl(domainId, domainName, domainDescription);

        // add part to parent part
        if (parent instanceof ViewDomainsImpl)
            ((ViewDomainsImpl) parent).addDomain(domain);
        else if (parent instanceof DomainImpl)
            ((DomainImpl) parent).addDomain(domain);
        else/*from w w  w  . j a va  2s .c o m*/
            parent.add(domain);

        objectBroker.addObj(domain, true);

        // add instances to part
        HierarchicalConfiguration concreteDomain = domainConfig.configurationAt("domain(" + domainIdx + ")");

        for (int instanceIdx = 0; instanceIdx < sizeOfConfiguration(
                concreteDomain.getProperty("instance.[@id]")); instanceIdx++) {
            String instanceId = concreteDomain.getString("instance(" + instanceIdx + ").[@id]");
            Obj addInstance = domain.addInstance(entityById.get(instanceId));
            objectBroker.addObj(addInstance, true);
        }

        // recursively add more domains
        parseDomainView(concreteDomain, domain, n, objectBroker, entityById, datapointById);
    }
}