class JobMeta extends AbstractMeta implements Cloneable, Comparable<JobMeta>, XMLInterface, ResourceExportInterface, RepositoryElementInterface,
    LoggingObjectInterface {

  public void lookupRepositoryReferences( Repository repository ) throws KettleException {
    KettleException lastThrownException = null;
    Map<String, RepositoryObjectType> notFoundedReferences = new HashMap<>();
    for ( JobEntryCopy copy : jobcopies ) {
      if ( copy.getEntry().hasRepositoryReferences() ) {
        try {
          copy.getEntry().lookupRepositoryReferences( repository );
        } catch ( IdNotFoundException e ) {
          lastThrownException = e;
          String path = e.getPathToObject();
          String name = e.getObjectName();
          String key = StringUtils.isEmpty( path ) || path.equals( "null" ) ? name : path + "/" + name;
          notFoundedReferences.put( key, e.getObjectType() );
        }
      }
    }
    if ( lastThrownException != null && !notFoundedReferences.isEmpty() ) {
      throw new LookupReferencesException( lastThrownException, notFoundedReferences );
    }
  }

  public  JobMeta();
  public  JobMeta( String fname, Repository rep );
  public  JobMeta( String fname, Repository rep, OverwritePrompter prompter );
  @Deprecated public  JobMeta( VariableSpace parentSpace, String fname, Repository rep, OverwritePrompter prompter );
  public  JobMeta( VariableSpace parentSpace, String fname, Repository rep, IMetaStore metaStore,
      OverwritePrompter prompter );
  public  JobMeta( InputStream inputStream, Repository rep, OverwritePrompter prompter );
  public  JobMeta( Node jobnode, Repository rep, OverwritePrompter prompter );
  public  JobMeta( Node jobnode, Repository rep, boolean ignoreRepositorySharedObjects, OverwritePrompter prompter );

}