protected Vector<?> _create(Vector<String> markerNames,String prefix,Properties properties,ProgressSupport progressSupport,boolean matchInOutVectorSize){
  int size=markerNames.size();
  Vector<Object> vector=new Vector<Object>(size);
  if (progressSupport != null) {
    progressSupport.fireUpdate(ProgressEvent.UPDATE,"Creating Components",100,0);
  }
  for (int i=0; i < size; i++) {
    String componentName=PropUtils.getScopedPropertyPrefix(prefix) + markerNames.elementAt(i);
    String classProperty=componentName + DotClassNameProperty;
    String className=properties.getProperty(classProperty);
    if (className == null) {
      logger.warning("Failed to locate property \"" + componentName + "\" with class \""+ classProperty+ "\"\n  Skipping component \""+ componentName+ "\"");
      if (matchInOutVectorSize) {
        vector.add(componentName);
      }
      continue;
    }
    if (progressSupport != null) {
      progressSupport.fireUpdate(ProgressEvent.UPDATE,"Creating Components",size,i);
    }
    Object component=create(className,componentName,properties);
    if (component != null) {
      vector.add(component);
      if (logger.isLoggable(Level.FINE)) {
        logger.fine("ComponentFactory: [" + className + "("+ i+ ")] created");
      }
    }
 else {
      if (matchInOutVectorSize) {
        vector.add(componentName);
      }
      logger.info("[" + componentName + " : "+ className+ "("+ i+ ")] NOT created. -- Set logging flag to FINE/FINER for details.");
    }
  }
  if (progressSupport != null) {
    progressSupport.fireUpdate(ProgressEvent.UPDATE,"Configuring...",size,size);
  }
  return vector;
}

protected Vector < ? > _create ( Vector < String > markerNames , String prefix , Properties properties , ProgressSupport progressSupport , boolean matchInOutVectorSize ) { int size = markerNames . size ( ) ; Vector < Object > vector = new Vector < Object > ( size ) ; if ( progressSupport != null ) { progressSupport . fireUpdate ( ProgressEvent . UPDATE , "Creating Components" , 100 , 0 ) ; } for ( int i = 0 ; i < size ; i ++ ) { String componentName = PropUtils . getScopedPropertyPrefix ( prefix ) + markerNames . elementAt ( i ) ; String classProperty = componentName + DotClassNameProperty ; String className = properties . getProperty ( classProperty ) ; if ( className == null ) { logger . warning ( "Failed to locate property \"" + componentName + "\" with class \"" + classProperty + "\"\n  Skipping component \"" + componentName + "\"" ) ; if ( matchInOutVectorSize ) { vector . add ( componentName ) ; } continue ; } if ( progressSupport != null ) { progressSupport . fireUpdate ( ProgressEvent . UPDATE , "Creating Components" , size , i ) ; } Object component = create ( className , componentName , properties ) ; if ( component != null ) { vector . add ( component ) ; if ( logger . isLoggable ( Level . FINE ) ) { logger . fine ( "ComponentFactory: [" + className + "(" + i + ")] created" ) ; } } else { if ( matchInOutVectorSize ) { vector . add ( componentName ) ; } logger . info ( "[" + componentName + " : " + className + "(" + i + ")] NOT created. -- Set logging flag to FINE/FINER for details." ) ; } } if ( progressSupport != null ) { progressSupport . fireUpdate ( ProgressEvent . UPDATE , "Configuring..." , size , size ) ; } return vector ; }
given a vector of marker name strings , and a properties object , look in the properties object for the markername . class property to get a class name to create each object . then , if the new objects are propertyconsumers , use the marker name as a property prefix to get properties for that object out of the properties .
