/* BBMvtxFilter.m				 
 *
 * This format filter does handle read/write of molecules in the
 * MoleViewer Text (.mvt) fileformat.
 *
 * For interface-info see the header file. The comments in this file mostly
 * cover only the real implementation details.
 *
 * Written by: 		Thomas Engel
 * Created:    		15.03.1994 (Copyleft)
 * Last modified: 	14.05.1994
 */

#import "BBMvtxFilter.h"
#import "BBFileFilterManager.h"
#import "../BBAppManager.h"
#import "../AtomLibrary.subproj/BBAtomLibraryManager.h"

#import "../BBBeaker.h"
#import "../BBMolecule.h"
#import "../BBAtom.h"
#import "../BBBond.h"

#import <misckit/MiscString.h>
#import "../MiscString_ExtendedParsing.h"

#define MYBUFFERSIZE		500
#define COMMENTTOKEN		"#"
#define ELLIPSEDATATOKEN	"ELLIPSE"

#define SINGLEBONDTOKEN		"S"
#define DOUBLEBONDTOKEN		"D"
#define AROMATICBONDTOKEN	"A"

// I hate statics but here they might be useful.
// The other variables have been added to the intercase to allow debugging.

static char lineBuffer[MYBUFFERSIZE];
static FILE	*inStream;

@implementation BBMvtxFilter

- (float)canReadFile:(const char*)filename
{
	// Let's see if we can handle the file. Well this is a stupid check.
	// Right now we only check the file extention. If its "mvt" we
	// will do it.
	// Normally we should return (0, 0.5, 1) according to the percentage of
	// data we understand. More a fuzzy logic with MAYBE.
	
	id		pathString;
	id		aString;
	float	answer;
	
	pathString = [MiscString new];
	[pathString setPath:filename];
	aString = [pathString fileExtension];
	
	if( [aString casecmp:"beaker"] == 0 )
			answer = (float)YES;
	else	answer = (float)NO;
	
	[pathString free];
	[aString free];
	
	return answer;
}

- readBeaker:aBeaker fromFile:(const char*)filename
{	
	// Well all we do is unarchive the stored Beaker hirarchie.
	// So lets free the beaker we got passed along and simple of 
}

- writeBeaker:aBeaker toFile:(const char *)filename
{
	return self;
}

@end

/*
 * History: 30.10.94 Switched to the MiscString.
 *
 *			14.05.94 Changes to work with new BB... objects.
 *
 *			15.03.94 A basic implementation.
 *
 *
 * Bugs: - We could check the MVTX Magic word instead of relying on the file-
 *		   extension.
 *
 *		 - Does not handle Eliptic, charge and labeling info (15.03.94)
 */
