/** * Create a required service info and add it to the map. */ protected RequiredServiceInfo createRequiredServiceInfo(RequiredService rs, ClassLoader cl) { RequiredServiceBinding binding = createBinding(rs.binding()); List<NFRPropertyInfo> nfprops = createNFRProperties(rs.nfprops()); for(NFRProperty prop: rs.nfprops()) { nfprops.add(new NFRPropertyInfo(prop.name(), new ClassInfo(prop.value().getName()), new MethodInfo(prop.methodname(), prop.methodparametertypes()))); } RequiredServiceInfo rsis = new RequiredServiceInfo(rs.name(), rs.type(), rs.multiple(), Object.class.equals(rs.multiplextype())? null: rs.multiplextype(), binding, nfprops, Arrays.asList(rs.tags())); return rsis; }
rsis[j] = new RequiredServiceInfo(reqs[j].name(), reqs[j].type(), reqs[j].multiple(), Object.class.equals(reqs[j].multiplextype())? null: reqs[j].multiplextype(), binding, nfprops, Arrays.asList(reqs[j].tags())); configinfo.setRequiredServices(rsis);
RequiredServiceInfo rsis = new RequiredServiceInfo(vals[i].name(), vals[i].type(), vals[i].multiple(), Object.class.equals(vals[i].multiplextype())? null: vals[i].multiplextype(), binding, nfprops); if(rsers.containsKey(vals[i].name())) RequiredServiceInfo old = (RequiredServiceInfo)rsers.get(vals[i].name()); if(old.isMultiple()!=rsis.isMultiple() || !old.getType().getType(cl).equals(rsis.getType().getType(cl))) throw new RuntimeException("Extension hierarchy contains incompatible required service more than once: "+vals[i].name()); rsers.put(vals[i].name(), rsis); if(!configinfo.hasRequiredService(reqs[j].name())) RequiredServiceInfo rsi = new RequiredServiceInfo(reqs[j].name(), reqs[j].type(), reqs[j].multiple(), Object.class.equals(reqs[j].multiplextype())? null: reqs[j].multiplextype(), binding, nfprops);
rsis[j] = new RequiredServiceInfo(reqs[j].name(), reqs[j].type(), reqs[j].multiple(), Object.class.equals(reqs[j].multiplextype())? null: reqs[j].multiplextype(), binding, nfprops); configinfo.setRequiredServices(rsis);
if(rsers.containsKey(vals[i].name())) RequiredServiceInfo old = (RequiredServiceInfo)rsers.get(vals[i].name()); if(old.isMultiple()!=rsis.isMultiple() || !old.getType().getType(cl).equals(rsis.getType().getType(cl))) throw new RuntimeException("Extension hierarchy contains incompatible required service more than once: "+vals[i].name()); rsers.put(vals[i].name(), rsis); if(!configinfo.hasRequiredService(reqs[j].name())) RequiredServiceInfo rsi = new RequiredServiceInfo(reqs[j].name(), reqs[j].type(), reqs[j].multiple(), Object.class.equals(reqs[j].multiplextype())? null: reqs[j].multiplextype(), binding, nfprops, Arrays.asList(reqs[j].tags()));