+ /**
+ * Read a property into the PIP configuration.
+ *
+ * @param id the ID of the property
+ * @param properties the properties object to read from
+ * @param key the key of the property being checked
+ * @throws PIPException on exceptions thrown on reading the property
+ */
+ private void readProperty(String id, Properties properties, Object key) throws PIPException {
+ if (!key.toString().startsWith(id)) {
+ return;
+ }
+ if (key.equals(id + ".classname")) {
+ //
+ // We already saved this
+ //
+ } else if (key.equals(id + "." + StdConfigurableEngine.PROP_NAME)) {
+ this.name = properties.getProperty(key.toString());
+ } else if (key.equals(id + "." + StdConfigurableEngine.PROP_DESCRIPTION)) {
+ this.description = properties.getProperty(key.toString());
+ } else if (key.equals(id + "." + StdConfigurableEngine.PROP_ISSUER)) {
+ this.issuer = properties.getProperty(key.toString());
+ } else if (key.equals(id + ".resolvers")) {
+ //
+ // It has resolvers, make sure this is set to true if
+ // it has been already.
+ //
+ this.setRequiresResolversFlag(true);
+ //
+ // Parse the resolvers
+ //
+ Collection<PipResolver> resolvers = PipResolver.importResolvers(id + ".resolver",
+ properties.getProperty(key.toString()), properties, "super-admin");
+ for (PipResolver resolver : resolvers) {
+ this.addPipresolver(resolver);
+ }
+ } else if (key.toString().startsWith(id + ".resolver")) {
+ //
+ // Ignore, the PipResolver will parse these values
+ //
+ } else {
+ //
+ // Config Parameter
+ //
+ this.addPipconfigParam(new PipConfigParam(key.toString().substring(id.length() + 1),
+ properties.getProperty(key.toString())));
+ }
+ }