diff --git a/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java b/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java index 423ba04afdb88db7984e73b4c40985e22422bb98..1601cb6d1f64a83b96fb446b2ceeff321ebf0e53 100644 --- a/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java +++ b/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) INRIA Rhône-Alpes, 2006 + * Copyright (C) INRIA Rhône-Alpes, 2006-2007 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -392,12 +392,16 @@ public class AServProtocolManager { } // Put all the local metadata in parameters Parameters params = new BasicParameters(); + params.setParameter( "file1", al.getFile1() ); + params.setParameter( "file2", al.getFile2() ); + params.setParameter( "level", al.getLevel() ); + params.setParameter( "type", al.getType() ); Parameters extensions = al.getExtensions(); for ( Enumeration e = extensions.getNames(); e.hasMoreElements(); ){ String name = (String)e.nextElement(); params.setParameter( name, extensions.getParameter( name ) ); } - return new AlignmentMetadata(newId(),mess,myId,mess.getSender(),"dummy//",params); + return new AlignmentMetadata(newId(),mess,myId,mess.getSender(),id,params); } /********************************************************************* @@ -408,7 +412,22 @@ public class AServProtocolManager { *********************************************************************/ public Message cut( Message mess ){ - return new AlignmentId(newId(),mess,myId,mess.getSender(),"dummy//",(Parameters)null); + // Retrieve the alignment + String id = (String)mess.getParameters().getParameter("id"); + Alignment al = null; + try { + al = alignmentCache.getAlignment( id ); + } catch (Exception e) { + return new UnknownAlignment(newId(),mess,myId,mess.getSender(),id,(Parameters)null); + } + // get the cut parameters here + //al = al.clone(); + try { al.cut( "hard", (double).5 ); } + catch (AlignmentException e) { + return new ErrorMsg(newId(),mess,myId,mess.getSender(),"dummy//",(Parameters)null); + } + String newId = alignmentCache.recordNewAlignment( al, true ); + return new AlignmentId(newId(),mess,myId,mess.getSender(),newId,(Parameters)null); } public Message harden( Message mess ){ @@ -429,11 +448,13 @@ public class AServProtocolManager { // Copy the alignment } // Invert it + //try { al = al.clone().inverse(); } try { al.inverse(); } catch (AlignmentException e) { return new ErrorMsg(newId(),mess,myId,mess.getSender(),"dummy//",(Parameters)null); } - return new AlignmentId(newId(),mess,myId,mess.getSender(),"dummy//",(Parameters)null); + String newId = alignmentCache.recordNewAlignment( al, true ); + return new AlignmentId(newId(),mess,myId,mess.getSender(),newId,(Parameters)null); } public Message meet( Message mess ){