private Object openBySpecificType( Assembler a, Resource root, Mode mode, Resource type ) { Assembler toUse = assemblerFor( type ); Class<? extends Assembler> aClass = toUse == null ? null : toUse.getClass(); Frame frame = new Frame( root, type, aClass ); try { if (toUse == null) throw new NoImplementationException( this, root, type ); else return toUse.open( a, root, mode ); } catch (AssemblerException e) { throw e.pushDoing( frame ); } catch (Exception e) { AssemblerException x = new AssemblerException( root, "caught: " + e.getMessage(), e ); throw x.pushDoing( frame ); } }
private Object openBySpecificType( Assembler a, Resource root, Mode mode, Resource type ) { Assembler toUse = assemblerFor( type ); Class<? extends Assembler> aClass = toUse == null ? null : toUse.getClass(); Frame frame = new Frame( root, type, aClass ); try { if (toUse == null) throw new NoImplementationException( this, root, type ); else return toUse.open( a, root, mode ); } catch (AssemblerException e) { throw e.pushDoing( frame ); } catch (Exception e) { AssemblerException x = new AssemblerException( root, "caught: " + e.getMessage(), e ); throw x.pushDoing( frame ); } }