}
  protected boolean isSelfPropelled (Task t, Asset directObject) {    GLMAsset baseAsset =       (directObject instanceof AggregateAsset) ?       (GLMAsset) ((AggregateAsset)directObject).getAsset() :       (GLMAsset) directObject;	    MovabilityPG move_prop = baseAsset.getMovabilityPG();    if (move_prop != null) {      String cargocatcode = move_prop.getCargoCategoryCode();      if ((cargocatcode != null) && (cargocatcode.charAt(0) == 'R')) {	if (isDebugEnabled())	  debug (getName() + ".isSelfPropelled - found self-propelled vehicle on task " + t.getUID());	return true;      }    }    else if (complainAboutMissingMovabilityPG) {      error (getName() + ".isSelfPropelled - asset " + baseAsset + 	     " is missing its movability PG.");    }    return false;  }