|
47 | 47 | public abstract class AbstractCommand implements Runnable {
|
48 | 48 | protected static final Logger LOG = LoggerFactory.getLogger( AbstractCommand.class );
|
49 | 49 |
|
50 |
| - protected Try<AspectContext> loadAndResolveModel( final File input, final ExternalResolverMixin resolverConfig ) { |
| 50 | + protected Try<VersionedModel> loadAndResolveModel( final File input, final ExternalResolverMixin resolverConfig ) { |
51 | 51 | final Try<VersionedModel> versionedModel;
|
52 | 52 | if ( resolverConfig.commandLine.isBlank() ) {
|
53 | 53 | versionedModel = AspectModelResolver.loadAndResolveModel( input );
|
54 | 54 | } else {
|
55 | 55 | final AspectModelUrn urn = fileToUrn( input.getAbsoluteFile() );
|
56 | 56 | versionedModel = new AspectModelResolver().resolveAspectModel( new ExternalResolverStrategy( resolverConfig.commandLine ), urn );
|
57 | 57 | }
|
58 |
| - return versionedModel.flatMap( model -> { |
59 |
| - final AspectModelUrn urn = fileToUrn( input.getAbsoluteFile() ); |
60 |
| - return AspectModelLoader.getSingleAspect( model, aspect -> aspect.getName().equals( urn.getName() ) ) |
61 |
| - .map( aspect -> new AspectContext( model, aspect ) ); |
62 |
| - } ); |
| 58 | + return versionedModel; |
63 | 59 | }
|
64 | 60 |
|
65 | 61 | protected AspectContext loadModelOrFail( final String modelFileName, final ExternalResolverMixin resolverConfig ) {
|
66 | 62 | final File inputFile = new File( modelFileName );
|
67 |
| - final Try<AspectContext> context = loadAndResolveModel( inputFile, resolverConfig ); |
| 63 | + final Try<VersionedModel> versionedModel = loadAndResolveModel( inputFile, resolverConfig ); |
| 64 | + final Try<AspectContext> context = versionedModel.flatMap( model -> { |
| 65 | + final AspectModelUrn urn = fileToUrn( inputFile.getAbsoluteFile() ); |
| 66 | + return AspectModelLoader.getSingleAspect( model, aspect -> aspect.getName().equals( urn.getName() ) ) |
| 67 | + .map( aspect -> new AspectContext( model, aspect ) ); |
| 68 | + } ); |
| 69 | + |
68 | 70 | return context.recover( throwable -> {
|
69 | 71 | // Model can not be loaded, root cause e.g. File not found
|
70 | 72 | if ( throwable instanceof IllegalArgumentException ) {
|
|
0 commit comments