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

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

Introduction

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

Prototype

public List configurationsAt(String key) 

Source Link

Document

Returns a list of sub configurations for all configuration nodes selected by the given key.

Usage

From source file:org.nnsoft.t2t.configuration.ConfigurationManager.java

private Rule getRule(HierarchicalConfiguration rule) {
    HierarchicalConfiguration match = rule.configurationAt("match");
    String pattern = match.getString("pattern");
    StatementPattern matchStatementPattern = parsePattern(pattern);

    Set<StatementPattern> applyStatementPatterns = new HashSet<StatementPattern>();
    HierarchicalConfiguration apply = rule.configurationAt("apply");
    @SuppressWarnings("unchecked")
    List<HierarchicalConfiguration> patterns = apply.configurationsAt("patterns");
    for (HierarchicalConfiguration applyPattern : patterns) {
        applyStatementPatterns.add(parsePattern(applyPattern.getString("pattern")));
    }/*w ww . ja v a  2  s . co  m*/
    return new Rule(matchStatementPattern, applyStatementPatterns);
}

From source file:org.onlab.stc.Compiler.java

/**
 * Recursively elaborates this definition to produce a final process flow graph.
 *
 * @param cfg         hierarchical definition
 * @param namespace   optional namespace
 * @param parentGroup optional parent group
 *//*from w w w  . j a  va2s.  c om*/
private void compile(HierarchicalConfiguration cfg, String namespace, Group parentGroup) {
    String opfx = pfx;
    pfx = pfx + ">";
    print("pfx=%s namespace=%s", pfx, namespace);

    // Scan all imports
    cfg.configurationsAt(IMPORT).forEach(c -> processImport(c, namespace, parentGroup));

    // Scan all steps
    cfg.configurationsAt(STEP).forEach(c -> processStep(c, namespace, parentGroup));

    // Scan all groups
    cfg.configurationsAt(GROUP).forEach(c -> processGroup(c, namespace, parentGroup));

    // Scan all parallel groups
    cfg.configurationsAt(PARALLEL).forEach(c -> processParallelGroup(c, namespace, parentGroup));

    // Scan all dependencies
    cfg.configurationsAt(DEPENDENCY).forEach(c -> processDependency(c, namespace));

    pfx = opfx;
}

From source file:org.onosproject.driver.netconf.XmlConfigParser.java

protected static List<ControllerInfo> parseStreamControllers(HierarchicalConfiguration cfg) {
    List<ControllerInfo> controllers = new ArrayList<>();
    List<HierarchicalConfiguration> fields = cfg
            .configurationsAt("data.capable-switch." + "logical-switches." + "switch.controllers.controller");
    for (HierarchicalConfiguration sub : fields) {
        controllers.add(new ControllerInfo(IpAddress.valueOf(sub.getString("ip-address")),
                Integer.parseInt(sub.getString("port")), sub.getString("protocol")));
    }//from   w  ww. j av a2  s .  co  m
    return controllers;
}

From source file:org.onosproject.driver.XmlConfigParser.java

public static List<ControllerInfo> parseStreamControllers(HierarchicalConfiguration cfg) {
    List<ControllerInfo> controllers = new ArrayList<>();
    List<HierarchicalConfiguration> fields = cfg
            .configurationsAt("data.capable-switch." + "logical-switches." + "switch.controllers.controller");
    for (HierarchicalConfiguration sub : fields) {
        controllers.add(new ControllerInfo(IpAddress.valueOf(sub.getString("ip-address")),
                Integer.parseInt(sub.getString("port")), sub.getString("protocol")));
    }/*  ww  w .ja  v  a  2s  . co  m*/
    return controllers;
}

From source file:org.onosproject.driver.XmlConfigParser.java

public static List<HierarchicalConfiguration> parseWaveServerCienaPorts(HierarchicalConfiguration cfg) {
    return cfg.configurationsAt("ws-ports.port-interface");
}

From source file:org.onosproject.drivers.ciena.waveserver.rest.CienaWaveserverDeviceDescription.java

public static List<HierarchicalConfiguration> parseWaveServerCienaPorts(HierarchicalConfiguration cfg) {
    return cfg.configurationsAt(PORTS);
}

From source file:org.onosproject.drivers.cisco.XmlParserCisco.java

/**
 * Parses device configuration and returns the descriptions of the device
 * interfaces./*w  ww. j  a  va 2 s.c  o  m*/
 *
 * @param cfg an hierarchical configuration
 * @return list of interface descriptions for the device
 */

public static List<DeviceInterfaceDescription> getInterfacesFromConfig(HierarchicalConfiguration cfg) {
    List<DeviceInterfaceDescription> intfs = Lists.newArrayList();
    List<HierarchicalConfiguration> subtrees = cfg
            .configurationsAt("data.xml-config-data.Device-Configuration.interface");
    for (HierarchicalConfiguration intfConfig : subtrees) {
        String intfName = getInterfaceName(intfConfig);
        DeviceInterfaceDescription.Mode intfMode = getInterfaceMode(intfConfig);
        List<VlanId> intfVlans = getInterfaceVlans(intfConfig, intfMode);
        short intfLimit = getInterfaceLimit(intfConfig);
        boolean intfLimited = (intfLimit == NO_LIMIT ? false : true);
        DeviceInterfaceDescription intf = new DefaultDeviceInterfaceDescription(intfName, intfMode, intfVlans,
                intfLimited, intfLimit);
        intfs.add(intf);
    }
    return intfs;
}

From source file:org.onosproject.drivers.fujitsu.FujitsuT100DeviceDescription.java

/**
 * Parses a configuration and returns a set of ports for the fujitsu T100.
 *
 * @param cfg a hierarchical configuration
 * @return a list of port descriptions/*from  www . j a v a  2  s  .c o  m*/
 */
private static List<PortDescription> parseFujitsuT100Ports(HierarchicalConfiguration cfg) {
    AtomicInteger counter = new AtomicInteger(1);
    List<PortDescription> portDescriptions = Lists.newArrayList();
    List<HierarchicalConfiguration> subtrees = cfg.configurationsAt("data.interfaces.interface");
    for (HierarchicalConfiguration portConfig : subtrees) {
        if (!portConfig.getString("name").contains("LCN") && !portConfig.getString("name").contains("LMP")
                && portConfig.getString("type").equals("ianaift:ethernetCsmacd")) {
            portDescriptions.add(parseT100OduPort(portConfig, counter.getAndIncrement()));
        } else if (portConfig.getString("type").equals("ianaift:otnOtu")) {
            portDescriptions.add(parseT100OchPort(portConfig, counter.getAndIncrement()));
        }
    }
    return portDescriptions;
}

From source file:org.onosproject.drivers.fujitsu.FujitsuVoltAlarmConsumer.java

/**
 * Parses XML string to get controller information.
 *
 * @param cfg a hierarchical configuration
 * @return a list of alarms// www  . ja  v  a 2 s  .  c o m
 */
private List<Alarm> parseVoltActiveAlerts(HierarchicalConfiguration cfg) {
    List<Alarm> alarms = new ArrayList<>();
    List<HierarchicalConfiguration> fields = cfg.configurationsAt(OLT_ACTIVE_ALERTS_KEY);

    for (HierarchicalConfiguration sub : fields) {
        List<HierarchicalConfiguration> childFields = sub.configurationsAt(ALERT_INFO);

        for (HierarchicalConfiguration child : childFields) {
            try {
                int seqNum = Integer.parseInt(child.getString(ALERT_SEQNUM));
                boolean cleared = Boolean.parseBoolean(child.getString(ALERT_CLEAR));
                String alertType = child.getString(ALERT_TYPE);
                String severity = child.getString(SEVERITY);

                List<HierarchicalConfiguration> idFields = child.configurationsAt(RESOURCE_ID);
                if (idFields.isEmpty()) {
                    log.error("{} does not exsit: SQ={}, TYPE={}, SEV={}, CLEARED={}", RESOURCE_ID, seqNum,
                            alertType, severity, cleared);
                    continue;
                }
                String alarmSrc = formAlarmSource(idFields);
                if (alarmSrc == null) {
                    log.error("Cannot build description: SQ={}, TYPE={}, SEV={}, CLEARED={}", seqNum, alertType,
                            severity, cleared);
                    continue;
                }
                long timeRaised = getTimeRaised(child);
                log.debug("VOLT: ACTIVE ALERT: SQ={}, TYPE={}, SEV={}, CLEARED={}, TIME={}", seqNum, alertType,
                        severity, cleared, timeRaised);

                SeverityLevel alarmLevel = AlertSeverity.convertToAlarmSeverityLevel(severity);
                if (alarmLevel.equals(SeverityLevel.INDETERMINATE)) {
                    log.warn("Unknown severity: {}", severity);
                }
                DefaultAlarm.Builder alarmBuilder = new DefaultAlarm.Builder(ncDeviceId,
                        alertType.toUpperCase(), alarmLevel, timeRaised)
                                .forSource(AlarmEntityId.alarmEntityId(alarmSrc));
                alarms.add(alarmBuilder.build());
            } catch (NumberFormatException e) {
                log.error("Non-number exception {}", e);
            } catch (Exception e) {
                log.error("Exception {}", e);
            }
        }
    }
    return alarms;
}

From source file:org.onosproject.drivers.fujitsu.FujitsuVoltAlarmConsumer.java

/**
 * Converts time and date information from device.
 * @param cfg a hierarchical configuration
 * @return converted time from device or system time
 *//*from w ww .j av  a  2s . com*/
private long getTimeRaised(HierarchicalConfiguration cfg) {
    String strDate;
    String strTime;
    long timeRaised;

    List<HierarchicalConfiguration> timeFields = cfg.configurationsAt(ALERT_TIME);
    if (timeFields.isEmpty()) {
        log.debug("{} does not exsit", ALERT_TIME);
    } else {
        for (HierarchicalConfiguration child : timeFields) {
            strDate = child.getString(DATE);
            strTime = child.getString(TIME);
            if ((strDate != null) && (strTime != null)) {
                try {
                    Date date = dateFormat.parse(strDate + SPACE + strTime);
                    timeRaised = date.getTime();
                    log.debug("{} {} coverted to {}", strDate, strTime, timeRaised);
                    return timeRaised;
                } catch (ParseException e) {
                    log.error("Cannot parse exception {} {} {}", strDate, strTime, e);
                }
            } else {
                log.error("{} or {} does not exsit", DATE, TIME);
            }
        }
    }
    // Use the system's time instead.
    return System.currentTimeMillis();
}