private void processFile ( final ResolveTask r ) { final List < XMLFilter > filters = new ArrayList <> ( ) ; final ConkeyrefFilter conkeyrefFilter = new ConkeyrefFilter ( ) ; conkeyrefFilter . setLogger ( logger ) ; conkeyrefFilter . setJob ( job ) ; conkeyrefFilter . setKeyDefinitions ( r . scope ) ; conkeyrefFilter . setCurrentFile ( job . tempDirURI . resolve ( r . in . uri ) ) ; conkeyrefFilter . setDelayConrefUtils ( delayConrefUtils ) ; filters . add ( conkeyrefFilter ) ; filters . add ( topicFragmentFilter ) ; final KeyrefPaser parser = new KeyrefPaser ( ) ; parser . setLogger ( logger ) ; parser . setJob ( job ) ; parser . setKeyDefinition ( r . scope ) ; parser . setCurrentFile ( job . tempDirURI . resolve ( r . in . uri ) ) ; filters . add ( parser ) ; try { logger . debug ( "Using " + ( r . scope . name != null ? r . scope . name + " scope" : "root scope" ) ) ; if ( r . out != null ) { logger . info ( "Processing " + job . tempDirURI . resolve ( r . in . uri ) + " to " + job . tempDirURI . resolve ( r . out . uri ) ) ; xmlUtils . transform ( new File ( job . tempDir , r . in . file . getPath ( ) ) , new File ( job . tempDir , r . out . file . getPath ( ) ) , filters ) ; } else { logger . info ( "Processing " + job . tempDirURI . resolve ( r . in . uri ) ) ; xmlUtils . transform ( new File ( job . tempDir , r . in . file . getPath ( ) ) , filters ) ; } // validate resource-only list normalProcessingRole . addAll ( parser . getNormalProcessingRoleTargets ( ) ) ; } catch ( final DITAOTException e ) { logger . error ( "Failed to process key references: " + e . getMessage ( ) , e ) ; } }
Process key references in a topic . Topic is stored with a new name if it s been processed before .