public String toString() { return "ComponentRequirement{" + "role='" + getRole() + "'" + ", " + "roleHint='" + getRoleHint() + "', " + "fieldName='" + getFieldName() + "'" + "}"; }
/** * Returns a human-friendly key, suitable for display. * @return a human-friendly key */ public String getHumanReadableKey() { StringBuilder key = new StringBuilder(); key.append( "role: '").append( getRole() ).append( "'" ); if ( getRoleHint() != null ) { key.append( ", role-hint: '" ).append( getRoleHint() ).append( "'. " ); } if ( getFieldName() != null ) { key.append( ", field name: '" ).append( getFieldName() ).append( "' " ); } return key.toString(); }
recipe.setProperty(name, requirementRecipe); } else { recipe.setAutoMatchProperty(requirement.getRole(), requirementRecipe);
public boolean canCreate(Type expectedType) { if (!autoMatch) { return true; } Class<?> propertyType = toClass(expectedType); // Never auto match array, map or collection if (propertyType.isArray() || Map.class.isAssignableFrom(propertyType) || Collection.class.isAssignableFrom(propertyType) || requirement instanceof ComponentRequirementList) { return false; } // if the type to be created is an instance of the expected type, return true try { ComponentRegistry componentRegistry = container.getComponentRegistry(); return componentRegistry.getComponentDescriptor(propertyType, requirement.getRole(), requirement.getRoleHint()) != null; } catch (Exception e) { } return false; }
protected PropertyDescriptor findMatchingPropertyDescriptor( ComponentRequirement requirement, PropertyDescriptor[] propertyDescriptors ) { PropertyDescriptor retValue = null; String property = requirement.getFieldName(); if ( property != null ) { retValue = getPropertyDescriptorByName( property, propertyDescriptors ); } else { String role = requirement.getRole(); retValue = getPropertyDescriptorByType( role, propertyDescriptors ); } return retValue; }
public void addComponentDescriptor( ComponentDescriptor<?> componentDescriptor ) throws CycleDetectedInComponentGraphException { String key = getDAGKey( componentDescriptor.getRole(), componentDescriptor.getRoleHint() ); List<ComponentRequirement> requirements = componentDescriptor.getRequirements(); for ( ComponentRequirement requirement : requirements ) { try { if ( requirement instanceof ComponentRequirementList ) { for ( String hint : ( (ComponentRequirementList) requirement ).getRoleHints() ) { dag.addEdge( key, getDAGKey( requirement.getRole(), hint ) ); } } else { dag.addEdge( key, getDAGKey( requirement.getRole(), requirement.getRoleHint() ) ); } } catch ( CycleDetectedException e ) { throw new CycleDetectedInComponentGraphException( "Cyclic requirement detected", e ); } } }
String role = requirement.getRole(); String hint = requirement.getRoleHint(); String mappingType = requirement.getFieldMappingType();
String role = requirement.getRole(); List<String> roleHints = null; if (requirement instanceof ComponentRequirementList) {
public String toString() { return "ComponentRequirement{" + "role='" + getRole() + "'" + ", " + "roleHint='" + getRoleHint() + "', " + "fieldName='" + getFieldName() + "'" + "}"; }
public String toString() { return "ComponentRequirement{" + "role='" + getRole() + "'" + ", " + "roleHint='" + getRoleHint() + "', " + "fieldName='" + getFieldName() + "'" + "}"; }
/** * Returns a human-friendly key, suitable for display. * @return a human-friendly key */ public String getHumanReadableKey() { StringBuilder key = new StringBuilder(); key.append( "role: '").append( getRole() ).append( "'" ); if ( getRoleHint() != null ) { key.append( ", role-hint: '" ).append( getRoleHint() ).append( "'. " ); } if ( getFieldName() != null ) { key.append( ", field name: '" ).append( getFieldName() ).append( "' " ); } return key.toString(); }
/** * Returns a human-friendly key, suitable for display. * @return a human-friendly key */ public String getHumanReadableKey() { StringBuffer key = new StringBuffer(); key.append( "role: '").append( getRole() ).append( "'" ); if ( getRoleHint() != null ) { key.append( ", role-hint: '" ).append( getRoleHint() ).append( "'. " ); } if ( getFieldName() != null ) { key.append( ", field name: '" ).append( getFieldName() ).append( "' " ); } return key.toString(); }
public void addComponentRequirement( ComponentRequirement rd, Object rv ) throws ComponentConfigurationException { if ( !descriptor.getRequirements().contains( rd ) ) { throw new ComponentConfigurationException( "Requirement: " + rd.getHumanReadableKey() + " is not listed in this component's descriptor." ); } references.put( rd.getRole() + "_" + rd.getRoleHint(), rv ); }
static Requirement newRequirement( final ClassSpace space, final ComponentRequirement cr ) { return new RequirementImpl( space.deferLoadClass( cr.getRole() ), cr.isOptional(), Collections.singletonList( cr.getRoleHint() ) ); }
private static MojoRequirement toMojoRequirement(ComponentRequirement requirement) { MojoRequirement result = new MojoRequirement(); result.setFieldName(requirement.getFieldName()); result.setRole(requirement.getRole()); result.setRoleHint(requirement.getRoleHint()); return result; }
private static MojoRequirement toMojoRequirement(ComponentRequirement requirement) { MojoRequirement result = new MojoRequirement(); result.setFieldName(requirement.getFieldName()); result.setRole(requirement.getRole()); result.setRoleHint(requirement.getRoleHint()); return result; }
public boolean canCreate(Type expectedType) { if (!autoMatch) { return true; } ClassRealm realm = (ClassRealm) Thread.currentThread().getContextClassLoader(); Class propertyType = toClass(expectedType); // Never auto match array, map or collection if (propertyType.isArray() || Map.class.isAssignableFrom(propertyType) || Collection.class.isAssignableFrom(propertyType) || requirement instanceof ComponentRequirementList) { return false; } // if the type to be created is an instance of the expceted type, return true try { ComponentDescriptor descriptor = ((MutablePlexusContainer) container).getComponentRepository().getComponentDescriptor(requirement.getRole(), requirement.getRoleHint(), realm); String typeName = descriptor.getImplementation(); Class actualClass = realm.loadClass(typeName); if (RecipeHelper.isAssignable(expectedType, actualClass)) { return true; } } catch (Exception e) { } return false; }
public void addComponentDescriptor( ComponentDescriptor componentDescriptor ) throws CompositionException { String key = getDAGKey( componentDescriptor.getRole(), componentDescriptor.getRoleHint() ); List requirements = componentDescriptor.getRequirements(); for ( Iterator iterator = requirements.iterator(); iterator.hasNext(); ) { ComponentRequirement requirement = (ComponentRequirement) iterator.next(); try { if ( requirement instanceof ComponentRequirementList ) { Iterator iter = ( (ComponentRequirementList) requirement ).getRoleHints().iterator(); while (iter.hasNext()) { String hint = (String) iter.next(); dag.addEdge( key, getDAGKey( requirement.getRole(), hint ) ); } } else { dag.addEdge( key, getDAGKey( requirement.getRole(), requirement.getRoleHint() ) ); } } catch ( CycleDetectedException e ) { throw new CompositionException( "Cyclic requirement detected", e ); } } }
private void writeRequirements( XMLWriter w, List requirements ) { if ( requirements == null || requirements.size() == 0 ) { return; } w.startElement( "requirements" ); for ( Iterator j = requirements.iterator(); j.hasNext(); ) { ComponentRequirement cr = (ComponentRequirement) j.next(); w.startElement( "requirement" ); element( w, "role", cr.getRole() ); element( w, "role-hint", cr.getRoleHint() ); element( w, "field-name", cr.getFieldName() ); w.endElement(); } w.endElement(); }