/** * Returns the property if available or <code>null</code> otherwise. * Subproperties can be requested by submitting the sequence of properties. */ public Property getProperty(String... name) { if (name == null || name.length == 0) return null; for (Property p : properties) { if (Objects.equals(name[0], p.name)) { if (name.length == 1) return p; else return p.getProperty(Arrays.copyOfRange(name, 1, name.length)); } } return null; }