public static IndexedValue<DependencyDescriptor,Listener<DependencyChange>> buildLifecycleDependency(Configuration<String> a) { if(a == null){ throw new NullPointerException(); } Configuration<String> conf = a.getPropertyValue( Configuration.class, CONFIG_DEPENDENCY_DESCRIPTOR); Listener changeListener = a.getPropertyValue( Listener.class, CONF_DEPENDENCY_CHANGE_LISTENER); if(conf == null){ throw new NullPointerException(); } DependencyDescriptor desc = buildDescriptor(conf); if(desc == null){ throw new NullPointerException(); } return new BasicIndexedValue(desc, changeListener); }